Task 01
思考题:
-
Python之父是Guido Van Rossum(吉多范罗苏姆),在1989年阿姆斯特丹的圣诞节时,Guido为了打发圣诞节的无趣于是决定开发一个新的脚本解释程序,作为ABC语言的一种继承。
-
Python是脚本语言,执行方式为解释执行,而C++执行方式为编译执行。C++语言较为接触底层,直接操作内存,方便计算机更高效的运行,但Python的优势是编写更加简单,程序更好写,在开发效率上远高于C++,在实现许多功能时有Python是很方便的,C++还这些领域还不够香。
-
▪ python3 引入了 asyncio 来进行异步IO编成
▪ print 在python2 是关键字,python3 是函数
▪ 编码问题,python3 不再有unicode对象, str 即为unicode
▪ 除法的变化。python 3 除法返回浮点数 5/2 = 2.5
▪ 类型注解(type hint)
▪ 优化的super() ,直接调用父类的方法
▪ 高级的解包操作, 如 a, b, *c= range(10)
▪ 限定关键字参数, 参数特别多的时候指定参数以防搞混
▪ python3 重新跑出异常不会丢失栈信息
▪ 一切返回迭代器
▪ 新增yield from 链接生成器
▪ 新增内置库enum,mock, asyncio, ipaddress, concurrent, futures等
▪ 生成的pyc文件统一放到pycache
▪ 一些内置库修改。urllib,selector等
▪ 性能优化
▪ six模块
▪ 2to3等工具转换代码
▪ future
练习题
-
做单行注释时,使用#表示注释,作用于整行;做多行注释时,使用‘‘‘ ’’’或“““ ”””表示区间注释,在三引号之间所有内容都被注释。
-
运算符:
▪ 算数运算符:#+(加)-(减)*(乘)/(除)//(整除)%(取余)**(幂)
▪ 比较运算符:#>(大于)>=(大于等于)<(小于)<=(小于等于)==(等于)!=(不等于)
▪ 逻辑运算符:#and(与)or(或)not(非)
▪ 位运算符:#~(按位取反)&(按位与)(按位或)^(按位异或)<<(左移)>>(右移)
▪ 三元运算符:samll = x if x<y else y
▪ 其他运算符:#in(存在)not in(不存在)is(是)is not(不是)
运算符的优先级:
▪ 一元运算符优于二元运算符。例如3 ** -2
等价于3 ** (-2)
。
▪ 先算术运算,后移位运算,最后位运算。例如1 << 3 + 2 & 7
等价于(1 << (3 + 2)) & 7
。
▪ 逻辑运算最后结合。例如3 < 4 and 4 < 5
等价于(3 < 4) and (4 < 5)
。 -
is和is not对比的是两个变量的地址,而==和!=对比的是两个变量的值,当比较的两个变量指向的都是地址不可变的类型(str等),两者完全等价;若对比的两个变量指向的都是地址可变的类型(list、dict等)、则两者区别对待。
-
Python中包含int(整形)float(浮点型)bool(布尔型);
转换为整形 eg :int(x, base=10)
转换为字符型 eg :str(object=' ')
转换为浮点型: eg :float(x)
leetcode 练习题
class Solution:
def singleNumber(self, nums: List[int]) -> int:
#初始化
judge = 1
n = x = 0
while judge==0 :
#复制一个数组让原数组数据保存
list = List
#提取数组元素
x = List[n]
#删除模板中的对应元素
list & ~(1<<x)
#判断在数组中还有没有该数,若有继续循环否则跳出
judge = (list & (1<<x))
print("the single number is %d" % (x))