面试题总结
1、下面代码的输出结果
def add(n, i): return n+i def test(): for i in range(4): yield i g = test() for n in [1, 10]: g = (add(n, i) for i in g) print(list(g))
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[20, 21, 22, 23]
这个题目结果主要就在于n的值
2、下列表达式中返回True的是:
A、3>2>2
B、'abc'>'xyz'
C、0x56>56
D、(3, 2)>('a', 'b')
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
C
B 字符串可以比大小,按首字母ASCII码值比较,依次往下比,中文字符也是可以比大小的,按照Unicode值比较
D 元祖不能比大小
3、若k为整型,下述while循环执行的次数为:
k = 1000 while k>1: print k k = k / 2
A、9 B、10 C、11 D、100
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
A
首先,python2和python3的除法是不一样的,python2是地板除,而python3是取近似值,是有小数位的
此题没有明确说明是python2和python3,但是从代码中print k是可以判断出,这是使用的python2来写的,所以按照python2来做,结果是A
ps:如果按照python3来做,结果应该是B
4、关于python中的复数,下列说法错误的是:
A、表示复数的语法是real+image j
B、实部和虚部都是浮点数
C、虚部必须后缀j且必须是小写
D、方法conjugate返回复数的共轭复数
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
C
j不区分大小写
B 注意实部和虚部都是浮点数
5、L = range(100)
1)取第一到第三个元素
2)取倒数第二个元素
3)取后十个元素
4)把L复制给L1用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
注意:遇到range都是坑,一定记得转换!!! 1)list(L[:3]) 先取值后转换,range也可以用数组下标取值和切片 2)L[98]或L[-2] 3)list(L[-10:]) 或 list(L[90:]) 或 list(L[-1:-11:-1]) 最后一种记得切片最后一个参数传-1 4)L1 = list(L) 或 list(L[:])