思考题
1、python是怎样诞生的?python之父是谁?
答:吉多.范罗苏姆(python之父)打算开发一个新的解释程序,作为ABC语言的一种继承,1991年第一个Python解释器诞生,它是用C语言实现的,并且能够调用C语言的库文件。
2、Python和C++的区别在哪里?即为什么要学Python,C++不香吗?
答:
c语言是编译型语言,经过编译后生成机器代码,然后再运行,执行速度 快,不能跨平台,一般用于操作系统,驱动等底层开发。
Python是编译型还是解释型这个界限并不明显,但大致上可以理解为解释型语言,执行速度慢,由于Python虚拟机,Python是可以跨平台的,Python高度集成适合于软件的快速开发。
3、相较于python2 ,python3做了哪些大的改进?
答:
1、python引入了asyncio来进行异步IO编成
2、print 在python2是关键词,python3是函数
3、编码问题,python3不再有Unicode对象,str即为unicode
4、除法的变化。python3除法返回浮点数5/2=2.5
5、类型注释(type hint)
6、优化的super(),直接调用父类的方法
7、高级的解包操作,如a,b,c=range(10)
8、限定关键字参数,参数特别多的时候指定参数以防搞混
9、python3重新跑出异常不会丢失栈信息
10、一切返回迭代器
11、新增内置库enum,mock,asyncio,ipaddress,concurrent,futures等
12、新增yield from链接生成器
13、生成的pyc文件统一放到pycache
14、一些内置库修改。urllib,selector等
15、性能优化
练习题
1、怎样对python中的代码进行注释?
答:#或者’’’’’’ ‘’’’’‘或者‘’‘ ‘’’
2、python有哪些运算符,这些运算符的优先级是怎样的?
答:算数运算符:+,-,,/,%(取余),//(整除),(幂运算)
比较运算符:<,>,,!=,>=,<=
逻辑运算符:and, or, not
位运算符:~(按位取反),&(按位与),`(按位或),^(按位异或), <<(左移),>>(右移)
三元运算符:if else
其他运算符:in(存在)not in(不存在)is(是)not is (不是)
***3、in,not in与和!=的区别*
答
1、is, is not 对比的是两个变量的内存地址
==, != 对比的是两个变量的值
2、比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
3、对比的两个变量,指向的是地址可变的类型(list,dict等),则两者是有区别的。
4、python中包含哪些数据类型?这些数据类型之间如何转化?
答:
整型,浮点型,布尔类型,字符串
转化:
转换为整型 int(x, base=10)
转换为字符串 str(object=’’)
转换为浮点型 float(x)
练习题:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
尝试使用位运算解决此题。
题目说明:
“”"
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
“”"
class Solution:
def singleNumber(self, nums: List[int]) -> int:
# your code here
答:
example1= [2] * 2 + [1]*1
a, b, c = 0, 0, 0
for d in nums:
c_ = (~a & ~b & ~c & d) + (~a & b & ~c & d) + (~a & ~b & c & ~d) + (~a & b & c & ~d)
c = c_
print( c)
example2=[1,2]*2+[4]*1
a, b, c = 0, 0, 0
b_ = (~a & ~b & c & d) + (~a & b & ~c & d) + (~a & b & ~c & ~d) + (~a & b & c & ~d)
b=b_
print(b)