From 7815cbda1f279d7a4b267c55124bdec911108c1d Mon Sep 17 00:00:00 2001 From: feilong Date: Fri, 19 Nov 2021 12:18:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B6=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function.md" | 2 +- .../install.md" | 4 +- .../repl.png" | Bin 0 -> 54708 bytes .../run.json" | 16 +- .../run.md" | 276 ++++++++++++++++++ .../run.py" | 44 +-- 6 files changed, 302 insertions(+), 40 deletions(-) create mode 100644 "data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/repl.png" create mode 100644 "data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.md" diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/2.\347\250\213\345\272\217\350\256\276\350\256\241\346\200\235\346\203\263/function.md" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/2.\347\250\213\345\272\217\350\256\276\350\256\241\346\200\235\346\203\263/function.md" index 3fccb41..5bb326d 100644 --- "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/2.\347\250\213\345\272\217\350\256\276\350\256\241\346\200\235\346\203\263/function.md" +++ "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/2.\347\250\213\345\272\217\350\256\276\350\256\241\346\200\235\346\203\263/function.md" @@ -157,7 +157,7 @@ def parse_profile(creator): def parse_creators(creators): profiles = [] for creator in creators: - profile = parse_creator(creator) + profile = parse_profile(creator) profiles.append(profile) return profiles ``` diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/3.\345\256\211\350\243\205Python/install.md" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/3.\345\256\211\350\243\205Python/install.md" index 982fa29..ab0737c 100644 --- "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/3.\345\256\211\350\243\205Python/install.md" +++ "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/3.\345\256\211\350\243\205Python/install.md" @@ -14,7 +14,7 @@ Python 历史上有几个重要的版本节点: * Windows 平台没有默认安装 Python * Linux/Mac 平台大部分默认安装了 Python2.7 -一般建议安装Python3.x 版本进行学习或开发。不同平台的安装信息如下: +一般建议安装Python3.x 版本进行学习或开发。下面的`Python字典`给出了不同平台的安装信息: ```python install = { @@ -61,7 +61,7 @@ MacOS: 安装brew包管理器,然后执行命令: brew install python3 请选择安装平台[w/c/u/m, 按q退出]:q ``` -以下选对对`Python3.x安装文档交互式查询代码`的实现错误的是? +以下选项中对`Python3.x安装文档交互式查询代码`的实现错误的是? ## template diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/repl.png" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/repl.png" new file mode 100644 index 0000000000000000000000000000000000000000..6b1c4df13bc3227537113ea34cc8583e7b77cbc6 GIT binary patch literal 54708 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 Q_!oqR%3b9Kq;=%~0J1#ixc~qF literal 0 HcmV?d00001 diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.json" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.json" index e89dfe7..c17a62e 100644 --- "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.json" +++ "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.json" @@ -1,19 +1,5 @@ { - "one_line": { - "break": [ - "continue" - ], - "if has_learn_i and has_learn_f": [ - "if has_learn_i or has_learn_f" - ], - "elif": [ - "else if" - ], - "item = run.get(ret)": [ - "item = run[ret]" - ] - }, - "source": "run.py", + "source": "run.md", "depends": [], "exercise_id": 32, "type": "code_options" diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.md" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.md" new file mode 100644 index 0000000..bf1e7af --- /dev/null +++ "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.md" @@ -0,0 +1,276 @@ +# 操作系统如何运行程序 + +人和操作系统如何交互?最早Ken Thompson设计Unix的时候,使用的是命令解释器,命令解释器接受用户的命令,然后解释他们并执行。 + +`Shell`是人和机器交互的界面,分为`GUI`和`命令行(CLI)`两种方式,这里重点介绍命令行的方式。概念`Shell`路易斯·普赞(Louis Pouzin)在1964年至1965年间首次提出,随后在Multics(MULTiplexed Information and Computing System)项目中首次被实现出来。肯·汤普逊(Ken Thompson)以Multics上的shell为范本实现的第一个Unix壳层(Unix shell):`Thompson shell`。AT&T贝尔实验室的史蒂夫·伯恩在1977年实现了`Bourne shell`,或`sh`,它是Version 7 Unix默认的Unix shell,替代执行文件同为sh的Thompson shell。微软的Windows操作系统也提供了命令行壳层的功能,它们是Windows 95 / 98下的`command.com`、Windows NT内核下的`cmd.exe`以及`PowerShell`。 + +下面的`Python 列表`包含了常见Unix系统常见的`shell`: + +```python +shells = [ + 'Bourne shell(sh)', + 'Almquist shell(ash)', + 'Debian Almquist shell(dash)', + 'Bourne-Again shell(bash)', + 'Korn shell(ksh)', + 'Z shell(zsh)', + 'C shell(csh)', + 'TENEX C shell(tcsh)', + 'EMACS shell (eshell)', + 'Es shell(es)', + 'esh (Unix) – Easy Shell', + 'friendly interactive shell(fish)', + 'rc shell(rc)– shell for Plan 9 from Bell Labs and Unix', + 'scsh(Scheme Shell)', + 'Stand-alone Shell(sash)', + 'BeanShell(bsh,bsh.Interpreter , bsh.Console)', + 'Rhino JavaScript壳层(org.mozilla.javascript.tools.shell.Main)' +] +``` + +通过shell,我们可以让操作系统执行Python程序。而Python是解释型语言,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。有两种执行Python程序的方式,下面的`Python 字典`包含了这两种方式的信息: + +```python +run = { + "repl": { + "title": "交互式编程( Interactive )", + "desc": [ + "打开终端,输入 python 回车", + "进入 Python 交互式命令行", + "输入 print('monkey king is coding!')" + ] + }, + "source": { + "title": "Python 源代源文件( File )", + "desc": [ + "使用你喜欢的编辑器拷贝本练习的代码, 保存为run.py", + "打开终端,cd 到 run.py 保存的目录", + "输入 python run.py" + ] + } +} +``` + +交互式命令行通常也称`REPL`,表示`Read-Eval-Print-Loop`,顾名思义是:`读取`-`评估`-`打印`-`循环`的意思。当你在`shell`环境里输入`python`并回车,就进入了`Python的REPL环境`,程序总是: + +1. 等待用户输入 Python 代码 +2. 当收到回车信号后就读取(`Read`)用户输入的 Python 代码 +3. 解释读取到的 Python 代码(`Eval`) +4. 打印Python 代码的解释结果(`Print`) +5. 回到步骤1,循环(`Loop`)该过程 + +实际上,我们在之前的习题里已经见过这样的程序,经过重新认识后,现在可以再次编写一个这样的`REPL`程序,**功能需求如下**: + +* 提示用户选择想要了解的Python 的两种运行方式 +* 用户选择后输出对应Python 运行方式的基本说明,如果用户输入错误则提示后让用户重新选择 +* 循环该过程直到用户输入`q`退出 +* 最后输出用户学习了几种运行方式 + +基本代码框架如下: + +```python +if __name__ == '__main__': + run = { + "i": { + "title": "交互式编程( Interactive )", + "desc": [ + "打开终端,输入 python 回车", + "进入 Python 交互式命令行", + "输入 print('monkey king is coding!')" + ] + }, + "f": { + "title": "Python 源代源文件( File )", + "desc": [ + "使用你喜欢的编辑器拷贝本练习的代码, 保存为run.py", + "打开终端,cd 到 run.py 保存的目录", + "输入 python run.py" + ] + } + } + + print("有两种基本的方式运行 Python") + for s in run: + item = run.get(s) + print("* {}: {}".format(s, item['title'])) + + has_learn_i = False + has_learn_f = False + + # TODO(You): 请在此实现代码 + + if has_learn_i and has_learn_f: + print("[2/2]您已完成两种 Python 运行方式的学习") + elif has_learn_f: + print("[1/2]您已完成 Python 源代码方式运行学习") + elif has_learn_i: + print("[1/2]您已完成 Python 交互式命令行运行学习") + else: + print("[0/2]您似乎跳过了运行方式的学习?期待下次光临!") +``` + +程序的示例操作过程如下: + +```bash +有两种基本的方式运行 Python +* repl: 交互式编程( Interactive ) +* source: Python 源代源文件( File ) +请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):r +0. 打开终端,输入 python 回车 +1. 进入 Python 交互式命令行 +2. 输入 print('monkey king is coding!') +请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):s +0. 使用你喜欢的编辑器拷贝本练习的代码, 保存为run.py +1. 打开终端,cd 到 run.py 保存的目录 +2. 输入 python run.py +请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):q +[2/2]您已完成两种 Python 运行方式的学习 +``` + +以下选项是对代码中`TODO`部分的多种实现,你能找出实现错误的选项吗? + +## template + +```python +if __name__ == '__main__': + run = { + "repl": { + "title": "交互式编程( Interactive )", + "desc": [ + "打开终端,输入 python 回车", + "进入 Python 交互式命令行", + "输入 print('monkey king is coding!')" + ] + }, + "source": { + "title": "Python 源代源文件( File )", + "desc": [ + "使用你喜欢的编辑器拷贝本练习的代码, 保存为run.py", + "打开终端,cd 到 run.py 保存的目录", + "输入 python run.py" + ] + } + } + + print("有两种基本的方式运行 Python") + shoutcut_keys = {} + for name in run: + key = name[0].lower() + shoutcut_keys[key] = name + item = run.get(name) + print("* {}: {}".format(name, item['title'])) + + has_learn_repl = False + has_learn_source = False + + while True: + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") + if ret == 'q': + break + elif ret == 'r': + has_learn_repl = True + elif ret == 's': + has_learn_source = True + + name = shoutcut_keys.get(ret) + if name is None: + print("[错误] 不支持的运行方式") + else: + item = run.get(name) + desc = item['desc'] + for i in range(0, len(desc)): + print("{}. {}".format(i, desc[i])) + + if has_learn_repl and has_learn_source: + print("[2/2]您已完成两种 Python 运行方式的学习") + elif has_learn_source: + print("[1/2]您已完成 Python 源代码方式运行学习") + elif has_learn_repl: + print("[1/2]您已完成 Python 交互式命令行运行学习") + else: + print("[0/2]您似乎跳过了运行方式的学习?期待下次光临!") +``` + +## 答案 + +```python +while True: + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") + if ret == 'r' or ret == 's': + has_learn_repl = ret=='r' + has_learn_source = ret=='s' + desc = run.get(shoutcut_keys.get(ret))['desc'] + for i in range(0, len(desc)): + print("{}. {}".format(i, desc[i])) + elif ret != 'q': + print("[错误] 不支持的运行方式") + break + else: + pass +``` + +## 选项 + +### 普通实现 + +```python +while True: + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") + if ret == 'q': + break + elif ret == 'r': + has_learn_repl = True + elif ret == 's': + has_learn_source = True + + name = shoutcut_keys.get(ret) + if name is None: + print("[错误] 不支持的运行方式") + else: + item = run.get(name) + desc = item['desc'] + for i in range(0, len(desc)): + print("{}. {}".format(i, desc[i])) +``` + +### 合并错误处理 + +```python +while True: + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") + + name = shoutcut_keys.get(ret) + if name is None: + if ret=='q': + break + else: + print("[错误] 不支持的运行方式") + continue + + has_learn_repl = ret=='r' + has_learn_source = ret=='s' + + desc = run.get(name)['desc'] + for i in range(0, len(desc)): + print("{}. {}".format(i, desc[i])) +``` + +### 极简模式 + +```python +while True: + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") + if ret == 'r' or ret == 's': + if ret=='r': + has_learn_repl = True + else: + has_learn_source = True + item = run.get(shoutcut_keys.get(ret)) + desc = item['desc'] + for i in range(0, len(desc)): + print("{}. {}".format(i, desc[i])) + elif ret == 'q': + break + else: + print("[错误] 不支持的运行方式") +``` diff --git "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.py" "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.py" index 2620f8f..cbdbb5e 100644 --- "a/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.py" +++ "b/data/1.python\345\210\235\351\230\266/1.\351\242\204\345\244\207\347\237\245\350\257\206/4.\350\277\220\350\241\214\346\226\271\345\274\217/run.py" @@ -3,9 +3,9 @@ # 标题:Python 运行方式 # 描述:提示用户选择想要了解的Python 的两种运行方式,选择后输出对应方式的基本说明,最后输出用户学习了几种运行方式 -def test(): +if __name__ == '__main__': run = { - "i": { + "repl": { "title": "交互式编程( Interactive )", "desc": [ "打开终端,输入 python 回车", @@ -13,7 +13,7 @@ def test(): "输入 print('monkey king is coding!')" ] }, - "f": { + "source": { "title": "Python 源代源文件( File )", "desc": [ "使用你喜欢的编辑器拷贝本练习的代码, 保存为run.py", @@ -24,39 +24,39 @@ def test(): } print("有两种基本的方式运行 Python") - for s in run: - item = run.get(s) - print("* {}: {}".format(s, item['title'])) + shoutcut_keys = {} + for name in run: + key = name[0].lower() + shoutcut_keys[key] = name + item = run.get(name) + print("* {}: {}".format(name, item['title'])) - has_learn_i = False - has_learn_f = False + has_learn_repl = False + has_learn_source = False while True: - ret = input("请选择你想了解的 Python 运行方式(输入:i/f选择,输入 q 退出):") + ret = input("请选择你想了解的 Python 运行方式(输入:r/s选择,输入 q 退出):") if ret == 'q': break - elif ret == 'i': - has_learn_i = True - elif ret == 'f': - has_learn_f = True + elif ret == 'r': + has_learn_repl = True + elif ret == 's': + has_learn_source = True - item = run.get(ret) - if item is None: + name = shoutcut_keys.get(ret) + if name is None: print("[错误] 不支持的运行方式") else: + item = run.get(name) desc = item['desc'] for i in range(0, len(desc)): print("{}. {}".format(i, desc[i])) - if has_learn_i and has_learn_f: + if has_learn_repl and has_learn_source: print("[2/2]您已完成两种 Python 运行方式的学习") - elif has_learn_f: + elif has_learn_source: print("[1/2]您已完成 Python 源代码方式运行学习") - elif has_learn_i: + elif has_learn_repl: print("[1/2]您已完成 Python 交互式命令行运行学习") else: print("[0/2]您似乎跳过了运行方式的学习?期待下次光临!") - - -if __name__ == '__main__': - test() -- GitLab