1.3 python2与python3的一些区别
大环境下的区别:
python2:
1,源码都含有php,Java,C,等语言的规范陋习,
2,重复代码特别多.
python3:
源码很规范,清晰,简单,符合python的宗旨.
版本区别
python3:英文,中文没有问题. 默认编码:utf-8
python3中输入用 input
python2:英文没问题,中文报错? 默认编码:ascii
为了显示中文,解决办法: 首行: # -*- encoding:utf-8 -*-
python3.5以前字典是无序的 3.6及以后是有序的 global关键字,nonlocal
python2中输入用 raw_input
global关键字 只有这一个
python2输出的时候 print后加不加括号都行
python2的迭代器有range 和 xrange
python3 print后面必须用括号
python3只有range
元祖,
a = (1) a1 = ("B") a2 = (1,) a3 = ("B",) print(a,type(a)) print(a1,type(a1)) print(a2,type(a2)) print(a3,type(a3))
结果:
面试题
1.怎么一行代码实现a,b值互换
a,b=b,a
2 . print(a,b)
x or y if x 为 True,则值是x ;else:值是y.and 与or相反
5>3and4 输出 4
5>3 or 4 True
ps:优先级 ()>not>and>or
2. 列表和元祖转换成字符串 里面元素必须都是字符转格式 有其他格式就不行
q = ("1","2","3") q1= "_".join(q) print(q1) q = ("1",[2,],"3") q1= "_".join(q) print(q1)
结果:
字符串转换成列表和元祖 把字符串遍历添加到列表或元祖
a = "123" b = list(a) c = tuple(a) print(b,c)
结果
深浅 copy
对于赋值来说,内存地址是想同的
浅层copy 第一层元素是独立的,第二层的是相同的
深层copy 所有元素都是独立的
切片时浅层copy
当元组只有一个元素组成并且没有','
则该元素是什么数据类型,整体就是什么数据类型.
tu = (1) tu1 = (1,) tu2 = ('alex') tu3 = ('alex',) print(tu,type(tu)) print(tu1,type(tu1)) print(tu2,type(tu2)) print(tu3,type(tu3))
结果:
# 50,alist 的最终值是_______________删除列表和字典删除是按索引______.
# (经典题,答案可能不是你想的那样。)
alist = [2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,]
# l=alist.__iter__()
for var in alist:
if var % 2 == 0:
print(var)
alist.remove(var)
print(alist)
结果:
# 63,下面代码打印的结果是___报错 local variable 'arr' referenced before assignment #局部变量的引用喂赋值的ARR
arr = [1,2,3]
def bar():
arr = arr + [5]
print(aa)
bar()