notes
整型(int):
Python 中可以处理任意大小的整数
1. 二进制(如0b100,换算成十进制是4)
2. 八进制(如0o100,换算成十进制是64)
3. 十进制(100)
4. 十六进制(0x100,换算成十进制是256)
赋值运算符:=
我们称之为海象运算符,大家可以猜一猜它为什么叫这个名字。海象运算符也是将运算符右侧的值赋值给左边的变量,与赋值运算符不同的是,运算符右侧的值也是整个表达式的值
- 逻辑运算符有三个,分别是
and、or和not; 比较运算符的优先级高于赋值运算符 - ** 为幂运算
分支结构:
if elif else
- match-case:
1.
match x:
case 0:
case 1:
case _:
2. 带有
_的case语句在代码中起到通配符的作用,如果前面的分支都没有匹配上,代码就会来到case _。case _的是可选的,并非每种分支结构都要给出通配符选项。如果分支中出现了case _,它只能放在分支结构的最后面,如果它的后面还有其他的分支,那么这些分支将是不可达的。 3. 可合并,如:case 401 | 403 | 404: description = 'Not Allowed' - 循环结构
time.sleep(1)表示程序休眠 1 秒- for-in loop ;
- use _ if the loop variable not used in loop
- 3 ways : range(100) ;range(1,101); range(1,101,2)左闭右开
- while loop :可以用break跳出/用continue进入下一轮循环
列表
- 创建:
items=[1,2,34],items2 = ['Python', 'Java', 'Go', 'Kotlin'] list函数可以将其他序列变成列表,如:items4 = list(range(1, 10))items5 = list(‘hello’)`+运算符实现两个列表的拼接;*运算符实现列表的重复,*运算符会将列表元素重复指定的次数;in或not in运算符判断一个元素在不在列表中,print(29 in items6) # True ; print(99 in items6) # False- 索引:
[]的元素位置可以是0到N - 1的整数,也可以是-1到-N的整数,分别称为正向索引和反向索引,其中N代表列表元素的个数。对于正向索引,[0]可以访问列表中的第一个元素,[N - 1]可以访问最后一个元素;对于反向索引,[-1]可以访问列表中的最后一个元素,[-N]可以访问第一个元素 - 切片运算是形如
[start:end:stride]的运算符start代表访问列表元素的起始位置end代表访问列表元素的终止位置(终止位置的元素无法访问)stride则代表了跨度,简单的说就是位置的增量,比如我们访问的第一个元素在start位置,那么第二个元素就在start + stride位置,当然start + stride要小于end- 如果
start值等于0,那么在使用切片运算符时可以将其省略;如果end值等于N,N代表列表元素的个数,那么在使用切片运算符时可以将其省略;如果stride值等于1,那么在使用切片运算符时也可以将其省略 print(items8[-2:-6:-1])反向遍历- 可以通过切片操作修改列表中的元素, 如
items8[1:3] = ['x', 'o']
append在尾部添加元素;insert:插入到某个位置
languages = ['Python', 'Java', 'C++']
languages.append('JavaScript')
print(languages) # ['Python', 'Java', 'C++', 'JavaScript']
languages.insert(1, 'SQL')
print(languages) # ['Python', 'SQL', 'Java', 'C++', 'JavaScript']
languages = ['Python', 'SQL', 'Java', 'C++', 'JavaScript']
if 'Java' in languages:
languages.remove('Java')
if 'Swift' in languages:
languages.remove('Swift')
print(languages) # ['Python', 'SQL', C++', 'JavaScript']
languages.pop()
temp = languages.pop(1)
print(temp) # SQL
languages.append(temp)
print(languages) # ['Python', C++', 'SQL']
languages.clear()
print(languages) # []- 使用 Python 中的
del关键字后面跟要删除的元素, 如`del items[1] - index函数用于查找索引,count函数用于统计元素出现次数;如:
print(items.index('Python'))# 从索引位置3开始查找'Java' print(items.index('Java', 3)) sort()实现排序;reverse()实现列表反转- 列表生成式
1.
items = [i for i in range(1, 100) if i % 3 == 0 or i % 5 == 0]2.nums2 = [num ** 2 for num in nums1]
元组(tuple)
- 元组是不可变类型
()表示空元组,但是如果元组中只有一个元素,需要加上一个逗号,否则()就不是代表元组的字面量语法,而是改变运算优先级的圆括号- 打包和解包操作:多个用逗号分隔的值赋给一个变量时,多个值会打包成一个元组类型;当我们把一个元组赋值给多个变量时,元组会解包成多个值然后分别赋给对应的变量
- 星号表达式:可以让一个变量接收多个值;用星号表达式修饰的变量会变成一个列表,列表中有0个或多个元素;其次,在解包语法中,星号表达式只能出现一次。
- 解包语法对所有的序列都成立,这就意味着我们之前讲的列表、
range函数构造的范围序列甚至字符串都可以使用解包语法。 - 交换变量的值:直接
a, b, c = b, c, a - 可以和列表互换,如
list(infos)ortuple(frts)
集合
集合并不支持索引运算。另外,集合的互异性决定了集合中不能有重复元素
支持in和not in成员运算
底层是用了哈希存储
创建
用{ }语法,且至少有一个元素,也可用 Python 内置函数set来创建一个集合
集合中的元素必须是hashable类型,所谓hashable类型指的是能够计算出哈希码的数据类型,通常不可变类型都是hashable类型,如整数(int)、浮点小数(float)、布尔值(bool)、字符串(str)、元组(tuple)等。可变类型都不是hashable类型
二元运算
集合的交集、并集、差集、对称差等运算,这些运算可以通过运算符来实现,也可以通过集合类型的方法来实现,代码如下所示。
set1 = {1, 2, 3, 4, 5, 6, 7}
set2 = {2, 4, 6, 8, 10}
# 交集
print(set1 & set2) # {2, 4, 6}
print(set1.intersection(set2)) # {2, 4, 6}
# 并集
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8, 10}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7, 8, 10}
# 差集
print(set1 - set2) # {1, 3, 5, 7}
print(set1.difference(set2)) # {1, 3, 5, 7}
# 对称差
print(set1 ^ set2) # {1, 3, 5, 7, 8, 10}
print(set1.symmetric_difference(set2)) # {1, 3, 5, 7, 8, 10}字典
创建字典可以使用{}字面量语法;字典的{}中的元素是以键值对的形式存在的,每个元素由:分隔的两个值构成,:前面是键,:后面是值,代码如下所示。
person = {
'name': '王大锤',
'age': 55,
'height': 168,
'weight': 60,
'addr': '成都市武侯区科华北路62号1栋101',
'tel': '13122334455',
'emergence contact': '13800998877'
}
print(person)