💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 习题 14: 提示和传递 让我们使用 argv 和 raw_input 一起来向用户提一些特别的问题。下一节习题你会学习如何读写文件,这节练习是下节的基础。在这道习题里我们将用略微不同的方法使用 raw_input,让它打出一个简单的 > 作为提示符。这和一些游戏中的方式类似,例如 Zork 或者 Adventure 这两款游戏。 <table class="highlighttable"><tbody><tr><td class="linenos"> <div class="linenodiv"> <pre> 1&#13; 2&#13; 3&#13; 4&#13; 5&#13; 6&#13; 7&#13; 8&#13; 9&#13; 10&#13; 11&#13; 12&#13; 13&#13; 14&#13; 15&#13; 16&#13; 17&#13; 18&#13; 19&#13; 20&#13; 21</pre> </div> </td> <td class="code"> <div class="highlight"> <pre>from sys import argv&#13; &#13; script, user_name = argv&#13; prompt = '&gt; '&#13; &#13; print "Hi %s, I'm the %s script." % (user_name, script)&#13; print "I'd like to ask you a few questions."&#13; print "Do you like me %s?" % user_name&#13; likes = raw_input(prompt)&#13; &#13; print "Where do you live %s?" % user_name&#13; lives = raw_input(prompt)&#13; &#13; print "What kind of computer do you have?"&#13; computer = raw_input(prompt)&#13; &#13; print """&#13; Alright, so you said %r about liking me.&#13; You live in %r. Not sure where that is.&#13; And you have a %r computer. Nice.&#13; """ % (likes, lives, computer)&#13; </pre> </div> </td> </tr></tbody></table> 我们将用户提示符设置为变量 prompt,这样我们就不需要在每次用到 raw_input 时重复输入提示用户的字符了。而且如果你要将提示符修改成别的字串,你只要改一个位置就可以了。 非常顺手吧。 ### 你应该看到的结果 当你运行这个脚本时,记住你需要把你的名字赋给这个脚本,让 argv 参数接收到你的名称。 ~~~ $ python ex14.py Zed Hi Zed, I'm the ex14.py script. I'd like to ask you a few questions. Do you like me Zed? > yes Where do you live Zed? > America What kind of computer do you have? > Tandy Alright, so you said 'yes' about liking me. You live in 'America'. Not sure where that is. And you have a 'Tandy' computer. Nice. ~~~ ### 加分习题 1. 查一下 Zork 和 Adventure 是两个怎样的游戏。 看看能不能下载到一版,然后玩玩看。 1. 将 prompt 变量改成完全不同的内容再运行一遍。 1. 给你的脚本再添加一个参数,让你的程序用到这个参数。 1. 确认你弄懂了三个引号 """ 可以定义多行字符串,而 % 是字符串的格式化工具。