python-客观题-错题集

1、位操作

 向左位移‘<<’ 操作符将执行按位的“左移”,即左操作数的值被右操作数给出的位数移动到左:#2 = 0b10
 2 << 2
 #输出: 8
 #8 = 0b1000

 bin(2 << 2)
 #输出: 0b1000执行1的左位移位相当于乘以27 << 1
 #输出: 14执行n的左位移位相当于乘以2**n :3 << 4
 #输出: 48

2、 Python 负数取余问题

print(-123%10)   # 输出 7
 
print(-123%-10)  # 输出 -3
这里面第二条是我们一般意义上的取余操作。这里也特别标注一下,如果涉及到负数取余要用上述解决办法。

那么我们看第一条,结果等于7。这个结果有点让人摸不到头脑,不过这个结果与Python的底层机制有关。

在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a//n]

这里r是余数,a是被除数,n是除数。

不过在“a//n”这一步,当a是负数的时候,我们上面说了,会向下取整,也就是说向负无穷方向取整。这也就得到:

-123%10 = -123 - 10 * (-123 // 10) = -123 - 10 * (-13) = 7

这里还不得不提的是

print(123%-10)

这个情况,结果为:

-7

3、

答案:512

4、
122
“字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同的情况下,就比第二个字符串,以此类推。
5、
124
集合可以使用大于(>)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)、大于等于(>=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。

6、
125

该对象将始终返回 True,除非:

对象为空、比如 []、()、{}
对象为 False
对象为 0
对象为 None

7、
129

8、
130
可以把不同进制的字符串转为十进制整数
9、
140

10、没明白

11、不明白
142

image.png

12、
145

13、花括号可能是集合或字典。
146

14、符合一项即为真
147

15、"3.14"是一字符串,不在元组参数中。所以此题答案为False
image.png

16、不明白
149

17、hex() 函数用于将一个指定数字转换为 16 进制数。
image.png

18、oct() 函数将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示。
image.png

19、bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
154

20、sep=’ ‘: 表示当输入多个打印的值时,各个值之间分割方式, 默认空格,可以自定义
155

21、求一个整数的各个数字之和,可以先str转为字符串,然后map映射为整数列表,最后内置函数sum求和。
158

22、Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
159

eval() 函数用来执行一个字符串表达式,并返回表达式的值。
eval

23、
image.png

24、^异或运算
164

25、
166

26、
167

27、参数只能是一个对象
170

28、
170
#算式分解
>>> eval("3*2"+"22")
666
>>> "3*2"+"22"
'3*222'
>>> eval('3*222')
666
>>> 

29、

189

30、
196

31、
200

32、
202

33、
203

34、
204

35、
image.png

36、求复数的虚部
212

37、and中含0,返回0; 均为非0时,返回后一个值
212

38、可哈希的数据类型,即不可变的数据结构(数字类型(int,float,bool)字符串str、元组tuple、自定义类的对象)。
221

39、
222

40、
233

41、
251

42、
252

42、这个题的实验结果很诡异!
254

43、拉链函数zip,
256

44、zip_long------打了鸡血的zip,最长优先,不够补None
https://blog.csdn.net/qq_34355232/article/details/101287305
image.png

45、集合不能相加
259

46、集合的运算符& | -
272

47、字符串转为列表,会拆解每一个字符。
283

48、remove() 函数用于移除列表中某个值的第一个匹配项。
list.remove(obj)
obj -- 列表中要移除的对象。
283

49、【Python内置hash函数为什么运行两次值不一样】
python的字符串hash算法并不是直接遍历字符串每个字符去计算hash,而是会有一个secret prefix和一个secret suffix,可以认为相当于是给字符串加盐后做hash,可以规避一些规律输入的情况

显然这个secret前后缀的值会直接影响计算结果,而且它有一个启动时随机生成的机制,只不过,在2.x版本中,这个机制默认是关闭的,前后缀每次启动都设置为0,除非你改了相关环境变量来要求随机,而在3.x中修改了默认行为,如果你不配置环境变量,则默认是随机一个前后缀值,这样每次启动都会不同

这个环境变量是PYTHONHASHSEED,无论在2.x还是3.x中,配置为一个正整数,将作为随机种子;配置为0,则secret前后缀默认清零(和2.x默认行为就一样了),配置为空串或“random”,则表示让进程随机生成(和3.x默认行为一样)

具体为啥要这么做,猜测一个是为了安全性(防字符串hash表的攻击,比如php曾经碰到的攻击),另一个可能也是强调不要依赖一些内建结果,因为这种算法可能随着版本而更新,避免有些用户不看文档,误以为是永远不变的
289

50、
301

51、
303

52、
306

53、
309

54、
310

55、
311

56、
316

57、
319

58、
311

59、
322

60、列表的索引值,
326

61、.sort()是排序,默认升序,.reverse()是反转列表
339

62、
363

63、
image.png

364

64、切片式修改值必须带括号
365

65、
366

66、以列表中的字符串排序
371

67、将元素逐个转为字符,比较第一位字符的内码大小。
372

68、
373

69、
374

70、
387

71、不明白
390

72、
393

73、
402

74、
403

75、字典的keys()方法返回一个视图对象。不能索引但可以和集合进行运算。
409

76、字典的values()方法返回一个视图对象。不能和集合进行运算。很奇怪
410

77、index索引一个值第一次出现的位置。
415

78、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,enumerate(sequence, [start=0]),返回 enumerate(枚举) 对象。
416

79、enumerate(sequence, [start=0]),start下标起始值
416

80、列表拆解1
417

81、列表拆解2
image.png

82、列表切片知识点
420

83、
420

84、集合的运算
452

85、random.choice() 方法返回一个列表,元组或字符串的随机项。
471

86、random.sample(seq,k) 随机选择返回不重复的k和元素 random.sample(list,k=2).
random.choices(seq,k) 随机选择返回重复的k和元素 random.choices(list,k=2)
472-473

87、random.shuffle()随机打散
474

88、列表
487

89、输出
501

90、列表生成式
504

91、列表
506

92、序列、推导式
507
image.png

93、序列、推导式
509

94、序列推导式
509

95、列表的反转,参考下题理解
529

96、列表,考察列表方法和内置函数的返回值。
532
>>> x.sort()==sorted(x)
False
>>> x==sorted(x)
True
>>> a=x.sort()     #x.sort()是对x直接进行反转,返回值是None
>>> a
>>> type(a)
<class 'NoneType'>
>>> b=sorted(x)   #sorted(x)返回值是x反转后的结果列表。,两个返回值不一样,所以是False
>>> b
[0, 2, 3, 5]
>>> 

97、字典 fromkeys()方法 https://www.runoob.com/python/att-dictionary-fromkeys.html
dict.fromkeys(seq[, value]) Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

544

98、求集合交集set.intersection(set1, set2 ... etc)https://www.runoob.com/python3/ref-set-intersection.html
545

99、字典和集合
561

100、eval .join sorted()用法https://blog.csdn.net/weixin_36242131/article/details/114935306
566

101、最诡异的题
568

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容