From fff4b711770d521091496b99957a8c64aa6db871 Mon Sep 17 00:00:00 2001 From: feilong Date: Wed, 22 Dec 2021 03:21:13 +0800 Subject: [PATCH] fix bug --- .../match_01.json" | 3 +- .../match_01.md" | 100 ++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 "data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.md" diff --git "a/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.json" "b/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.json" index ee43462..3cc8177 100644 --- "a/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.json" +++ "b/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.json" @@ -1,5 +1,6 @@ { - "source": "match_01.py", + "author": "huanhuilong", + "source": "match_01.md", "depends": [], "exercise_id": 221, "type": "code_options" diff --git "a/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.md" "b/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.md" new file mode 100644 index 0000000..5c7b159 --- /dev/null +++ "b/data/3.python\351\253\230\351\230\266/7.\351\253\230\347\272\247\346\225\231\347\250\213/4.\347\273\223\346\236\204\345\214\226\346\250\241\345\274\217\345\214\271\351\205\215/match_01.md" @@ -0,0 +1,100 @@ +# Python 结构化模式匹配(1) + +Python 3.10 引入了结构化模式匹配。请使用 Python 3.10+ 版本测试本代码。 + +## template + +```python +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('command', choices=['push', 'pull', 'commit']) + args = parser.parse_args() + + match args.command: + case 'push': + print('pushing') + case 'pull': + print('pulling') + case _: + parser.error(f'{args.command!r} not yet implemented') +``` + +## 答案 + +```python +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('command', choices=['push', 'pull', 'commit']) + args = parser.parse_args() + + match args.command: + case 'push': + print('pushing') + case 'pull': + print('pulling') + case _: + parser.error(f'{args.command!r} not yet implemented') +``` + +## 选项 + +### A + +```python +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('command', choices=['push', 'pull', 'commit']) + args = parser.parse_args() + + switch args.command: + case 'push': + print('pushing') + case 'pull': + print('pulling') + case _: + parser.error(f'{args.command!r} not yet implemented') +``` + +### B + +```python +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('command', choices=['push', 'pull', 'commit']) + args = parser.parse_args() + + match args.command: + case 'push': + print('pushing') + case 'pull': + print('pulling') + default: + parser.error(f'{args.command!r} not yet implemented') +``` + +### C + +```python +import argparse + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('command', choices=['push', 'pull', 'commit']) + args = parser.parse_args() + + match args.command: + if 'push': + print('pushing') + elif 'pull': + print('pulling') + else _: + parser.error(f'{args.command!r} not yet implemented') +``` -- GitLab