面试题 和 python 2与3的期区别

  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()

posted @ 2018-01-25 13:39  wzqwer  阅读(700)  评论(0编辑  收藏  举报