nei 发表于 2024-4-16 11:59

python模式匹配

本帖最后由 nei 于 2024-4-16 12:03 编辑

使用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('错误')

qylisten 发表于 2024-4-16 16:06

学习了,感谢!!

1e3e 发表于 2024-4-16 16:21

认真学习了,感谢您的分享

shengforever 发表于 2024-4-16 16:44

学习了,不错
页: [1]
查看完整版本: python模式匹配