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、
6、
该对象将始终返回 True,除非:
对象为空、比如 []、()、{}
对象为 False
对象为 0
对象为 None
7、8、
9、
10、没明白
11、不明白
12、
13、花括号可能是集合或字典。
14、符合一项即为真
15、"3.14"是一字符串,不在元组参数中。所以此题答案为False
16、不明白
17、hex() 函数用于将一个指定数字转换为 16 进制数。
18、oct() 函数将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示。
19、bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
20、sep=’ ‘: 表示当输入多个打印的值时,各个值之间分割方式, 默认空格,可以自定义
21、求一个整数的各个数字之和,可以先str转为字符串,然后map映射为整数列表,最后内置函数sum求和。
22、Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
23、
24、^异或运算
25、
26、
27、参数只能是一个对象
28、
#算式分解
>>> eval("3*2"+"22")
666
>>> "3*2"+"22"
'3*222'
>>> eval('3*222')
666
>>>
29、
30、
31、
32、
33、
34、
35、
36、求复数的虚部
37、and中含0,返回0; 均为非0时,返回后一个值
38、可哈希的数据类型,即不可变的数据结构(数字类型(int,float,bool)字符串str、元组tuple、自定义类的对象)。
39、
40、
41、
42、
42、这个题的实验结果很诡异!
43、拉链函数zip,
44、zip_long------打了鸡血的zip,最长优先,不够补None
https://blog.csdn.net/qq_34355232/article/details/101287305
45、集合不能相加
46、集合的运算符& | -
47、字符串转为列表,会拆解每一个字符。
48、remove() 函数用于移除列表中某个值的第一个匹配项。
list.remove(obj)
obj -- 列表中要移除的对象。
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曾经碰到的攻击),另一个可能也是强调不要依赖一些内建结果,因为这种算法可能随着版本而更新,避免有些用户不看文档,误以为是永远不变的50、
51、
52、
53、
54、
55、
56、
57、
58、
59、
60、列表的索引值,
61、.sort()是排序,默认升序,.reverse()是反转列表
62、
63、
64、切片式修改值必须带括号
65、
66、以列表中的字符串排序
67、将元素逐个转为字符,比较第一位字符的内码大小。
68、
69、
70、
71、不明白
72、
73、
74、
75、字典的keys()方法返回一个视图对象。不能索引但可以和集合进行运算。
76、字典的values()方法返回一个视图对象。不能和集合进行运算。很奇怪
77、index索引一个值第一次出现的位置。
78、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,enumerate(sequence, [start=0]),返回 enumerate(枚举) 对象。
79、enumerate(sequence, [start=0]),start下标起始值
80、列表拆解1
81、列表拆解2
82、列表切片知识点
83、
84、集合的运算
85、random.choice() 方法返回一个列表,元组或字符串的随机项。
86、random.sample(seq,k) 随机选择返回不重复的k和元素 random.sample(list,k=2).
random.choices(seq,k) 随机选择返回重复的k和元素 random.choices(list,k=2)
87、random.shuffle()随机打散
88、列表
89、输出
90、列表生成式
91、列表
92、序列、推导式
93、序列、推导式
94、序列推导式
95、列表的反转,参考下题理解
96、列表,考察列表方法和内置函数的返回值。
>>> 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
99、字典和集合
100、eval .join sorted()用法https://blog.csdn.net/weixin_36242131/article/details/114935306
101、最诡异的题