使用if,else,elif时,需要些很长一段代码;针对某个变量匹配若干情况可以使用match
x = 'B'
if x == 'A':
print('x is A.')
elif x == 'B':
print('x is B.')
elif x == 'C':
print('x is C.')
else:
print('无.')
可以改为:
x = 'B'
match x:
case 'A':
print('x is A.')
case 'B':
print('x is B.')
case 'C':
print('x is C.')
case _: # _表示匹配到其他任何情况
print('无')
match还可以匹配多个值和范围:
age = 15
match age:
case x if x < 10:
print(f'{x} 小于10 years old')
case 10:
print('10 years old')
case 11|12|13|14|15|16:
print('11-16')
case 17|18:
print('要成年了')
case _:
print('没有未成年的限制了')
match还可以匹配列表:
a = ['a','b.com','c.txt','d.txt']
match a :
case['a']:
print('仅仅只有a')
case['a',domain,*files]:
print('a: ' + domain +','+','.join(files)) #','.join(files)表示用,来连接files
case _:
print('错误')