1.Python常用的数据结构的类型及其特性?

  • 数值类型:

    • 整数(int): 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
    • 浮点型(float): 浮点型由整数部分与小数部分组成
    • 复数((complex)):复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
  • 列表(List): 是一个可变容器模型,可以存储任意类型的变量。List简单的来时就是两个中括号[ ]抱起来的有序集合,里面的元素可以是任意类型。
  • 元组(tuple):是由( )小括号包起来的不可更改的有序数列,元组的元素不可变,元组的元素可变。
  • 字典(dict): 字典是一个无序的序列,它的每一项(item)都是一个键(key)值(value)对.
  • 集合(set): 集合数学里的集合,是一个无序,互异的序列。

2.已知AList = [1,2,3,1,2],对AList列表元素去重,写出具体过程。

对列表去重有四种方法,如下代码:

def func1(one_list):  ''''' 使用集合 '''  return list(set(one_list))  def func2(one_list):  ''''' 使用字典的方式 '''  return {}.fromkeys(one_list).keys()  def func3(one_list):  ''''' 使用列表推导的方式 '''  temp_list=[]  for one in one_list:  if one not in temp_list:  temp_list.append(one)  return temp_list  def func4(one_list):  ''''' 使用排序的方法 '''  result_list=[]  temp_list=sorted(one_list)  i=0  while i<len(temp_list):  if temp_list[i] not in result_list:  result_list.append(temp_list[i])  else:  i+=1  return result_list  if __name__ == '__main__':  AList=[1,2,3,1,2]  print func1(AList)  print func2(AList)  print func3(AList)  print func4(AList)

3.选出一下表达式表述正确的选项:

A:{1:0, 2:0,3:0}
B:{”a“:0, "b":0, "c":0}
C: {(1,2):0, (2,3):0}
D: {[1,2]:0, [2,3]:0}

答案:首先,字典的键(key)必须的唯一的,但值(value)则不必。值(value)可以取任何数据类型,但键(key)必须是不可变的,如:字符串、数字、元组
所以,以上的正确选项是:ABC

4. 已知:

AList = [1,2,3]
BSet = {1,2,3}
  • (1) 从AList 和 BSet中 查找 4,最坏时间复杂度那个大?
  • (2) 从AList 和 BSet中 插入 4,最坏时间复杂度那个大?

5.已知:

A = {1,2,3}
B = {1,2,4}
  • (1) 求A 和 B 的 交集?

    • A & B
  • (2) 求A 和 B 的 并集?

    • A | B
  • (3) 求A 和 B 的 差集?

    • A - B

6. 已知ip = ”192.168.0.100“提取ip的各部分并写入列表的实现过程。

ip_list = ip.split(".")

7. 已知 AList = [“a”,”b”,”c”]将AList转换成”a,b,c“的实现过程。

Alist = ["a","b","c"]
Astr = ",".join(Alist)

8. ADist = {”a“:0,”b”:1, “c”:2}判断”h“ 是否是ADist的key?(写出具体的实现过程)

ADict = {"a":0, "b":1, "c":1}for key in ADict.keys():if "h" is key:print("存在")
else:print("不存在")

9. Python的进程、线程、协程有什么区别?

概念:

  • 进程:

    进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。
  • 线程:

    线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。
  • 协程:

    协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。

区别:
进程与线程比较:

线程是指进程内的一个执行单元,也是进程内的可调度实体。线程与进程的区别:
1) 地址空间:线程是进程内的一个执行单元,进程内至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间
2) 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
3) 线程是处理器调度的基本单位,但进程不是
4) 二者均可并发执行
5) 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

协程与线程进行比较:

1) 一个线程可以多个协程,一个进程也可以单独拥有多个协程,这样python中则能使用多核CPU。2) 线程进程都是同步机制,而协程则是异步3) 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态

10. 已知 AStr = ”123456“

  • (1)如何获取最后两个字符?

    Astr = "123456"
    print(Astr[-2:])   
  • (2)如何获取第2个和第3个字符?

    Astr = "123456"
    print(Astr[1:3])

11. python2中字符串编码有几种,与Python3有什么区别?字节和字符编码分别是什么意思?

在Python2中,字符串字面量对应于8位的字符或面向字节编码的字节字面量。
这些字符串的一个重要限制是它们无法完全地支持国际字符集和Unicode编码。
为了解决这种限制,Python2对Unicode数据使用了单独的字符串类型。
要输入Unicode字符串字面量,要在第一个引号前加上前最``'u'``。
Python2中还有一种称为字节字面量的字符串类型,它是指一个已经编码的字符串字面量,
在Python2中字节字面量和普通字符串没有差别,因为在Python2中普通字符串实际上就是已经编码(非Unicode)的字节字符串。
在Python3中,不必加入这个前缀字符,否则是语法错误,这是因为所有的字符串默认已经是Unicode编码了。
如果使用-U选项运行解释器,Python2会模拟这种行为(即所有字符串字面量将被作为Unicode字符对待,u前缀可以省略)。
在Python3中,字节字面量变成了与普通字符串不同的类型。

字节和字符编码分别是什么意思
一个字符不等价于一个字节,字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示。一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数。这里所说的不同的表示方法就是指字符编码,比如字母A-Z都可以用ASCII码表示(占用一个字节),也可以用UNICODE表示(占两个字节),还可以用UTF-8表示(占用一个字节)。字符编码的作用就是将人类可识别的字符转换为机器可识别的字节码,以及反向过程。
UNICDOE才是真正的字符串,而用ASCII、UTF-8、GBK等字符编码表示的是字节串。关于这点,我们可以在Python的官方文档中经常可以看到这样的描述"Unicode string" , " translating a Unicode string into a sequence of bytes"
我们写代码是写在文件中的,而字符是以字节形式保存在文件中的,因此当我们在文件中定义个字符串时被当做字节串也是可以理解的。但是,我们需要的是字符串,而不是字节串。一个优秀的编程语言,应该严格区分两者的关系并提供巧妙的完美的支持。JAVA语言就很好,以至于了解Python和PHP之前我从来没有考虑过这些不应该由程序员来处理的问题。遗憾的是,很多编程语言试图混淆“字符串”和“字节串”,他们把字节串当做字符串来使用,PHP和Python2都属于这种编程语言。最能说明这个问题的操作就是取一个包含中文字符的字符串的长度:
- 对字符串取长度,结果应该是所有字符串的个数,无论中文还是英文
- 对字符串对应的字节串取长度,就跟编码(encode)过程使用的字符编码有关了(比如:UTF-8编码,一个中文字符需要用3个字节来表示;GBK编码,一个中文字符需要2个字节来表示)

12. 爬虫过程中碰到js加载后的数据,除了常规的模拟浏览器比如phantomjs之外,还有什么好的应对方法?

  1. 找到js的位置

    • event listener中观察绑定事件,点击进入js的位置
    • search all files中搜索 url地址中或者是参数中的关键字
  2. 分析js的过程:

    添加断点,重新刷新页面,能够在页面上看到每一步的返回结果,能够跳转到函数的位置,观察其中的函数的执行过程

芸品绿-PythonWeb开发工程师相关推荐

  1. .NET开发工程师(中兴微品)

    岗位职责: 1.负责功能模块的设计模型.数据库设计等总体模块设计: 2.负责指导开发工程师完成功能实现,并对编码质量进行监控: 3.负责系统性能优化.疑难技术问题解决: 4.配合项目经理达成项目目标 ...

  2. 奇虎360WEB平台部招贤纳士之产品经理、开发工程师

    部门介绍 招聘部门:WEB平台部 WEB平台部是奇虎360的技术支持部门,为公司各业务线提供互联网行业全方位的技术支持和解决方案.WEB平台部包含业内知名的前端团队奇舞团,测试团队Qtest,基础研发 ...

  3. 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)

    本期招聘企业--深信服科技   公司简介 深信服科技股份有限公司是一家专注于企业级网络安全.云计算.IT基础设施与物联网的产品和服务供应商,拥有深信服智安全.信服云和深信服新IT三大业务品牌,与子公司 ...

  4. 招聘:JAVA软件开发工程师

    招聘:java软件开发工程师 本公司所有新创办的创业型小公司. 研发团队6-7个人. 工作地点:厦门软件园二期观日路 现需招聘java软件开发工程师2-3名 要求: 1.有良好的沟通能力.团队合作精神 ...

  5. 大数据开发工程师到底是干嘛的?日常做什么呢?

    最近后台收到很多私信,内容大都差不多,总结下来就是: 目前在学习大数据专业,想提前了解一下大数据开发工程师的工作职责是怎么的?需要提前准备些什么?大数据分了哪些岗位? 笔者已从事数据开发工作三年有余, ...

  6. IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略

    IT:后端进阶技术路线图(初级→中级→高级).后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介.技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略 目录 后端 ...

  7. 我是一个尽量少用国产软件的软件开发工程师

    [作者] 网名: 猪头三 站点: http://www.x86asm.com Email: 643439947@qq.com QQ: 643439947 编程生涯: 2001-至今[15年] 职业生涯 ...

  8. 测试开发工程师常见面试题

    1. CPU 和 GPU的区别 CPU 力气大啥P事都能干,还要协调. GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟 ...

  9. python全栈开发工程师招聘_如何当一名优雅的Python全栈开发工程师?

    上海达内Python培训好就业吗?这就要看看Python的发展前景了.python前景当然不错,数据分析.机器学习.爬虫.运维.Web,都是很好的方向--那么还有一个问题,Python入门难不难?其实 ...

最新文章

  1. .NET 4.0 Interop新特性ICustomQueryInterface (转载)
  2. 修改ActiveProcessLinks链表隐藏进程
  3. java模拟国际象棋游戏_java国际象棋小游戏
  4. css+隐藏+左侧菜单栏,放在网页左侧的DIV+CSS隐藏菜单代码
  5. vb6实现union数据结构_数据结构与算法——并查集(不相交集合)
  6. Codeforces 474C Captain Marmot 给定4个点和各自旋转中心 问旋转成正方形的次数
  7. T SQL + 正则表达式
  8. springboot security
  9. android Log工具框架,LogUtils让你摆脱TAG的魔爪
  10. Git 可视化管理工具 - Sourcetree 使用指南
  11. stata15中文乱码_Stata14打开13数据乱码处理办法
  12. 360桌面隐藏应用 android代码,360手机桌面上的隐藏应用怎么设置?
  13. AHCI模式安装XP以及驱动下载
  14. Faster rcnn 配置时出现bTest Key Error
  15. 外国程序员求助:快 40 了,不知道以后该怎么办
  16. windows配置代理
  17. 【东南大学主办: IEEE ICSIP 2022】信号与图像处理热门主题,7月邀您相约苏州
  18. 特价机票退票费高达80% 律师称航班延误应补偿-特价机票-退票费-霸王条款
  19. 新浪cn邮箱设置收件和发件服务器信息,新浪cn邮箱如何设置
  20. LINUX下,C语言MALLOC可能达到的最大空间测试

热门文章

  1. LeetCode不浪费原料的汉堡制作方案
  2. STM32F103C8T6实现串口通信
  3. 算法入门模拟-剪刀石头布
  4. html给页面添加艺术型边框,如何为2016word的页面设置艺术型页面边框
  5. Tracup已证明,高效敏捷的沟通与协作可提升IT生产力
  6. 外卖红包领取公众号简单搭建
  7. Pair project(刘昊岩11061156 黄明源11061186)
  8. [转]ZBrush3官方中文教程 一
  9. Eclipse安装Kotlin插件后,新建找不到Kotlin文件
  10. java节假日算法_「国家法定节假日」java 国家法定节假日和双休日判断工具类 - seo实验室...