使用list和tuple
列表
代码语言:python代码运行次数:0复制classmates = ['Michael', 'Bob', 'Tracy']
#列表元素个数
len(classmates)
#列表的索引
classmates[0]
#列表的追加和删除末尾
classmates.append('Adam')
classmates.insert(1, 'Jack') #指定插入
classmates.pop()
classmates.pop(1) #删除位置1
#列表的元素替换
classmates[1] = 'Sarah'
元组
但是tuple一旦初始化就不能修改
代码语言:python代码运行次数:0复制classmates = ('Michael', 'Bob', 'Tracy')
#只有一个元素要这么定义消除数字歧义
t = (1,)
条件判断
注意冒号和缩进
代码语言:python代码运行次数:0复制age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
#简写
if x:
print('True')
#只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False
input输入的返回数据类型是字符串,不能和整数进行条件判断,需要借助int()
match语句的模式匹配
if判断有时比较麻烦,可以利用match语句;case _表示“任意值”;case非常灵活
代码语言:python代码运行次数:0复制score = 'B'
match score:
case 'A':
print('score is A.')
case 'B':
print('score is B.')
case 'C':
print('score is C.')
case _: # _表示匹配到其他任何情况
print('score is ???.')
#复杂匹配
age = 15
match age:
case x if x < 10:
print(f'< 10 years old: {x}')
case 10:
print('10 years old.')
case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
print('11~18 years old.')
case 19:
print('19 years old.')
case _:
print('not sure.')
#匹配列表
args = ['gcc', 'hello.c', 'world.c']
# args = ['clean']
# args = ['gcc']
match args:
# 如果仅出现gcc,报错:
case ['gcc']:
print('gcc: missing source file(s).')
# 出现gcc,且至少指定了一个文件:
case ['gcc', file1, *files]:
print('gcc compile: ' file1 ', ' ', '.join(files))
# 仅出现clean:
case ['clean']:
print('clean')
case _:
print('invalid command.')
循环
for...in循环
代码语言:python代码运行次数:0复制sum = 0
for x in range(101): #range(i)成的序列是从0开始小于i的整数
sum = sum x
print(sum)
while循环
代码语言:python代码运行次数:0复制#计算100内奇数之和
sum = 0
n = 99
while n > 0:
sum = sum n
n = n - 2
print(sum)
break语句和continue语句配合if语句
代码语言:python代码运行次数:0复制#计算100内奇数之和
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n 1
print('END')
#只打印奇数,这里跳过了偶数
n = 0
while n < 10:
n = n 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
大多数循环并不需要用到break和continue语句
使用dict和set
字典
代码语言:python代码运行次数:0复制d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d['Michael'] #查询键-值(key-value)
# 如果不存在则会返回None,不会显示在交互界面
d.get('Thomas')
#指定和删除value
d.get('Thomas', -1)
d.pop('Bob')
dict的key必须是不可变对象,所以字符串、整数等都是不可变的,可以放心地作为key。而list是可变的,就不能作为key
set
一组key的集合,但不存储value,没有重复的key,同样不可以放入可变对象
set可以看成数学意义上的无序和无重复元素的集合
代码语言:python代码运行次数:0复制s = {1, 2, 3}
#重复元素在set中自动被过滤
s = {1, 1, 2, 2, 3, 3}
s.add(4) #add(key),添加元素到set中
s.remove(4) #remove(key)方法可以删除元素
s1 & s2 #交集
s1 | s2 #并集
注意字符的不可变对象性质: