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.json" "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.json"
index dea68692b3e37146ddb83b81eae497bc4e0984f4..b6dcf0b1b4bd0400b5d6d02c4be5af351e53f375 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.json"
+++ "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.json"
@@ -1,19 +1,5 @@
 {
-  "one_line": {
-    "while True:": [
-      "while:"
-    ],
-    "target = install.get(ret)": [
-      "target = install[ret]"
-    ],
-    "if target is None:": [
-      "if target is not None:"
-    ],
-    "print(\"* {}: {} 系统\".format(p, install[p]['platform']))": [
-      "print(\"* {}: {} 系统\".format(p))"
-    ]
-  },
-  "source": "install.py",
+  "source": "install.md",
   "depends": [],
   "exercise_id": 31,
   "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/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"
new file mode 100644
index 0000000000000000000000000000000000000000..982fa292c1d84ee4c21034d1b786b7a70a70b22b
--- /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/3.\345\256\211\350\243\205Python/install.md"
@@ -0,0 +1,164 @@
+# Python 安装交互式查询程序
+
+Python 历史上有几个重要的版本节点:
+
+* January 1994,Python1.0 发布
+* 2000年10月16日,Python2.0 发布
+* 2010年7月3日,Python2.7 发布,这是Python2.x的最后一个版本,Python2.x 和 Python3.x不兼容
+* 2008年12月3日,Python3.0 发布,Python3引入多个和Python2.x不兼容的特性,Python 从2.x到3.x的迁移经历了比较长的时间,编程语言版本不兼容有时候会是个致命错误(例如Perl6),好在Python挺过来了。
+* 2021年10月5号,Python3.10 发布,这是目前到2021年为止最新的版本
+* 而最新的开发中版本是 Python3.11
+
+不同平台对Python环境的默认支持是不同的:
+
+* Windows 平台没有默认安装 Python
+* Linux/Mac 平台大部分默认安装了 Python2.7
+
+一般建议安装Python3.x 版本进行学习或开发。不同平台的安装信息如下:
+
+```python
+install = {
+    "Windows": "请下载 Windows 安装包安装:https://www.python.org/downloads/windows/",
+    "CentOS": "使用yum包管理器,执行命令:yum install -y python3",
+    "Ubuntu": "使用apt-get包管理器,执行命令:apt-get install -y python3",
+    "MacOS": "安装brew包管理器,然后执行命令: brew install python3",
+}
+```
+
+基于这个信息,我们可以编写一个交互式Python程序,**要求支持用户操作**:
+
+* 反复输入平台快捷键字符查询不同平台应该如何快速安装 Python3.x 版本
+* 按`q`退出查询
+
+```python
+if __name__ == '__main__':
+    install = {
+        "Windows": "请下载 Windows 安装包安装:https://www.python.org/downloads/windows/",
+        "CentOS": "使用yum包管理器,执行命令:yum install -y python3",
+        "Ubuntu": "使用apt-get包管理器,执行命令:apt-get install -y python3",
+        "MacOS": "安装brew包管理器,然后执行命令: brew install python3",
+    }
+
+    shortcut_keys = {}
+    for platform in install:
+        key = platform[0].lower()
+        shortcut_keys[key] = platform
+    
+    # TODO(You): 请在此添加Python3.x安装文档交互式查询代码
+```
+
+以下是交互式执行的操作样例:
+
+```bash
+请选择安装平台[w/c/u/m, 按q退出]:w
+Windows: 请下载 Windows 安装包安装:https://www.python.org/downloads/windows/
+请选择安装平台[w/c/u/m, 按q退出]:c
+CentOS: 使用yum包管理器,执行命令:yum install -y python3
+请选择安装平台[w/c/u/m, 按q退出]:u
+Ubuntu: 使用apt-get包管理器,执行命令:apt-get install -y python3
+请选择安装平台[w/c/u/m, 按q退出]:m
+MacOS: 安装brew包管理器,然后执行命令: brew install python3
+请选择安装平台[w/c/u/m, 按q退出]:q
+```
+
+以下选对对`Python3.x安装文档交互式查询代码`的实现<span style="color:red">错误</span>的是?
+
+## template
+
+```python
+if __name__ == '__main__':
+    install = {
+        "Windows": "请下载 Windows 安装包安装:https://www.python.org/downloads/windows/",
+        "CentOS": "使用yum包管理器,执行命令:yum install -y python3",
+        "Ubuntu": "使用apt-get包管理器,执行命令:apt-get install -y python3",
+        "MacOS": "安装brew包管理器,然后执行命令: brew install python3",
+    }
+
+    shortcut_keys = {}
+    for platform in install:
+        key = platform[0].lower()
+        shortcut_keys[key] = platform
+
+    while True:
+        ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+        platform = shortcut_keys.get(ret)
+
+        if ret == 'q':
+            break
+
+        if platform is None:
+            print("不支持的平台")
+            continue
+
+        doc = install.get(platform)
+        print(f"{platform}: {doc}")
+```
+
+## 答案
+
+```python
+while True:
+    ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+    platform = shortcut_keys.get(ret)
+
+    if ret == 'q':
+        break
+    
+    if platform is None:
+        print("不支持的平台")
+        break
+    
+    doc = install.get(platform)
+    print(f"{platform}: {doc}")
+```
+
+## 选项
+
+### guard 模式
+
+```python
+while True:
+    ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+    if ret == 'q':
+        break
+    platform = shortcut_keys.get(ret)
+    if platform is None:
+        print("不支持的平台")
+    else:
+        doc = install.get(platform)
+        print(f"{platform}: {doc}")
+```
+
+### if-else模式
+
+```python
+while True:
+    ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+    if ret != 'q':
+        platform = shortcut_keys.get(ret)
+        if platform is not None:
+            doc = install.get(platform)
+            print(f"{platform}: {doc}")
+        else:
+            print("不支持的平台")
+    else:
+        break
+```
+
+### 优先正文逻辑
+
+```python
+while True:
+    ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+    platform = shortcut_keys.get(ret)
+
+    if ret == 'q':
+        break
+    
+    if platform is None:
+        print("不支持的平台")
+        continue
+    
+    doc = install.get(platform)
+    print(f"{platform}: {doc}")
+```
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.py" "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.py"
index e53568a3d1a20578149202c75e4f8647d2d80325..2572ea6257f6db88adff1c7ea0d5d09cedf04b81 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.py"
+++ "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.py"
@@ -1,38 +1,31 @@
 # -*- coding: UTF-8 -*-
 # 作者:幻灰龙
-# 标题:安装Python
+# 标题:Python 安装交互式查询程序
 # 描述:交互式提示程序,用户选择对应平台后,能正确输出对应平台上的安装包下载连接
 
-def test():
+if __name__ == '__main__':
     install = {
-        "w": {
-            "platform": "Window",
-            "desc": "请下载 Windows 安装包安装:https://www.python.org/downloads/windows/"
-        },
-        "l": {
-            "platform": "Linux",
-            "desc": "请下载 Linux 的 Python 源码安装:https://www.python.org/downloads/source/",
-        },
-        "m": {
-            "platform": "MacOS",
-            "desc": "请下载 Mac 的安装包:https://www.python.org/downloads/macos/,或者使用 brew install python 安装",
-        }
+        "Windows": "请下载 Windows 安装包安装:https://www.python.org/downloads/windows/",
+        "CentOS": "使用yum包管理器,执行命令:yum install -y python3",
+        "Ubuntu": "使用apt-get包管理器,执行命令:apt-get install -y python3",
+        "MacOS": "安装brew包管理器,然后执行命令: brew install python3",
     }
 
-    print("Python 可以在全平台上安装,例如:")
-    for p in install:
-        print("* {}: {} 系统".format(p, install[p]['platform']))
+    shortcut_keys = {}
+    for platform in install:
+        key = platform[0].lower()
+        shortcut_keys[key] = platform
 
     while True:
-        ret = input("请选择安装平台[w/l/m]:")
-        target = install.get(ret)
-        if target is None:
-            print("不支持的平台")
-        else:
-            print("安装平台:{}".format(target['platform']))
-            print("安装说明:{}".format(target['desc']))
+        ret = input("请选择安装平台[w/c/u/m, 按q退出]:")
+        platform = shortcut_keys.get(ret)
+
+        if ret == 'q':
             break
 
+        if platform is None:
+            print("不支持的平台")
+            continue
 
-if __name__ == '__main__':
-    test()
+        doc = install.get(platform)
+        print(f"{platform}: {doc}")