1、位操作
向左位移‘<<’ 操作符将执行按位的“左移”,即左操作数的值被右操作数给出的位数移动到左:#2 = 0b10
2 << 2
#输出: 8
#8 = 0b1000
bin(2 << 2)
#输出: 0b1000执行1的左位移位相当于乘以27 << 1
#输出: 14执行n的左位移位相当于乘以2**n :3 << 4
#输出: 48
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
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、
18930、 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曾经碰到的攻击),另一个可能也是强调不要依赖一些内建结果,因为这种算法可能随着版本而更新,避免有些用户不看文档,误以为是永远不变的 28950、 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 为字典所有键对应的初始值。
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
网友评论