Python知识点的总结,也是Python笔试中的重点考核内容!必知!
1、简述解释型和编译型编程语言?
概念:
- 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
- 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
- 编译型语言,执行速度快、效率高;依赖编译器、跨平台性差些。如C、C++、Delphi、Pascal,Fortran。
- 解释型语言,执行速度慢、效率低;依赖解释器、跨平台性好。如Java、Basic.
2、Python解释器种类以及特点
- CPython
- c语言开发的 使用最广的解释器
- IPython
- 基于cpython之上的一个交互式计时器 交互方式增强 功能和cpython一样
- PyPy
- 目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率
- JPython
- 运行在Java上的解释器 直接把python代码编译成Java字节码执行
- IronPython
- 运行在微软 .NET 平台上的解释器,把python编译成. NET 的字节码
3、python常见的PEP8规范
- 每级缩进用4个空格
- Python 3中不允许混合使用Tab和空格缩进。
- 限制所有行的最大行宽为79字符。
- 在核心Python发布的代码应该总是使用UTF-8(ASCII在Python 2)。
- 推荐绝对路径导入,因为它们通常更可读
4、通过代码实现如下进制转换:
5、python递归的最大层数
得到的最大数字在3925-3929之间浮动,这个是和计算机有关系的,不然也不会是一个浮动的数字了(数学逻辑讲求严谨)
6、三元运算规则以及应用场景
- 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
- 三元运算符的功能与'if....else'流程语句一致,它在一行中书写,代码非常精炼,执行效率更高
- 格式:[on_true] if [expression] else [on_false]
- res = 值1 if 条件 else 值2
7、列举 Python2和Python3的区别
- input
- 问题在控制台上看到的到底是什么
- 打开文件不再支持 file 方法,只能用 open
- range不再返回列表,而是一个可迭代的range对象
- 除法 / 不再是整除,而是得到浮点数,整除需要用双斜杠 //
- urllib和urllib2合并成了urllib,常用的urllib2.urlopen()变成了urllib.request.urlopen()
- 字符串及编码相关有大变动,简单来说就是原来的str变成了新的bytes,原来的unicode变成了新的str。
8、xrange和range的区别
python2中 xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
9、python的read() 、readline()、readlines()、xreadlines()
- read()会读取整个文件,将读取到底的文件内容放到一个字符串变量,返回str类型。
- readline()读取一行内容,放到一个字符串变量,返回str类型。
- readlines() 读取文件所有内容,按行为单位放到一个列表中,返回list类型。
- xreadlines()返回一个生成器,来循环操作文件的每一行。
10、列举布尔值为False的常见值
None、""、0、[]、()、{}
11、字符串、列表、元组、字典每个常用的5个方法(整型,浮点,字符串,布尔型,列表、元组、字典、集合、日期)
字符串:
列表:
元组:
1.用一个可迭代对象生成元组
T = tuple('abc')
对元组进行排序
注意:当对元组进行排序的时候,通常先得将它转换为列表并使得它成为一个可变对象.或者使用sorted方法,它接收任何序列对象.
T = ('c','a','d','b')
tmp = list(T)
tmp.sort() ==> ['a','b','c','d']
T = tunple(tmp)
sorted(T)
字典:
以下实例展示了 fromkeys()函数的使用方法:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
seq = ('Google', 'Runoob', 'Taobao')
dict = dict.fromkeys(seq)
print "新字典为 : %s" % str(dict)
dict = dict.fromkeys(seq, 10)
print "新字典为 : %s" % str(dict)
以上实例输出结果为:
新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}
新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}
通过zip函数构建字典
D = dict(zip(keyslist,valueslist))
通过赋值表达式元组构造字典(键必须是字符串,因为如果不是字符串,构造的时候也会当成是字符串处理)
D = dict(name='Bob',age=42) ==> {'name':'Bob,'age':42}
列出所有的键,值.注意得到的是一个可迭代对象,而不是列表.用的时候需要转换
D.keys()
D.values()
D.items() --> 键 + 值
删除字典(根据键)以及长度
D.pop(key)
len(D)
del D[key]
新增或者是修改键对应的值
D[key] = value # 如果key已经存在则修改,如果不存在就创建.
字典推导式
D = [x:x**2 for x in range(10) if x %2 == 0]