运行python时说要键入版权_笨办法学Python 习题 14: 提示和传递

让我们使用 argv 和 raw_input 一起来向用户提一些特别的问题。下一节习题你会学习如何读写文件,这节练习是下节的基础。在这道习题里我们将用略微不同的方法使用 raw_input,让它打出一个简单的 > 作为提示符。这和一些游戏中的方式类似,例如 Zork 或者 Adventure 这两款游戏。# -*- coding:utf-8 -*-

import sys

script, user_name = sys.argv

prompt = '>'

print "Hi %s, I'm the %s script." % (user_name, script)

print "I'd like to ask you a few questions."

print "Do you like me %s?" % user_name

likes = raw_input(prompt)

print "Where do you live %s" % user_name

lives = raw_input(prompt)

print "What kind of computer do you have?"

computer = raw_input(prompt)

print """

Alright, so you said %r about liking me.

You live in %r. Not sure where that is.

And you have a %r computr. Nice.

""" % (likes, lives, computer)

我们将用户提示符设置为变量 prompt,这样我们就不需要在每次用到 raw_input 时重复输入提示用户的字符了。而且如果你要将提示符修改成别的字串,你只要改一个位置就可以了。

非常顺手吧。

你应该看到的结果

当你运行这个脚本时,记住你需要把你的名字赋给这个脚本,让 argv 参数接收到你的名称。C:\Users\xx>python  D:\python\----python\习题14.py Zed

Hi Zed, I'm the D:\python\----python\习题14.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' computr. Nice.

加分习题

1、查一下 Zork 和 Adventure 是两个怎样的游戏。 看看能不能下载到一版,然后玩玩看。

2、将 prompt 变量改成完全不同的内容再运行一遍。C:\Users\风月>python  D:\python\----python\习题14.py Pala

Hi Pala, I'm the D:\python\----python\习题14.py script.

I'd like to ask you a few questions.

Do you like me Pala?

>>>YES

Where do you live Pala

>>>China

What kind of computer do you have?

>>>ASUS

Alright, so you said 'YES' about liking me.

You live in 'China'. Not sure where that is.

And you have a 'ASUS' computr. Nice.

3、给你的脚本再添加一个参数,让你的程序用到这个参数。

4、确认你弄懂了三个引号 """ 可以定义多行字符串,而 % 是字符串的格式化工具。

常见问题回答

运行时出现 SyntaxError: invalid syntax

再次说明,你应该使用命令行,而不是 python 环境去运行脚本。如果你先输了 python 然后试图输入 python ex14.py Zed 就会出现这个错误,你这是在 python 里运行 python。关掉 窗口,重新运行 python ex14.py Zed。

修改命令提示符是什么意思?

看这句变量定义 prompt = '> ',将它改成一个不同的值。这个应该难不倒你,只是修改一 个字符串而已,前面的 13 个习题都是围绕字符串来的,自己花时间搞定。

发生错误 ValueError: need more than 1 value to unpack.

记得上次我说过,你应该到“你应该看到的结果”部分重复我的动作。集中精力到我的输入,以及 为什么我提供了一个命令行参数。

我可以用双引号定义 prompt 变量的值吗?

当然可以,试试看就知道了。

你有台 Tandy 计算机?

我小时候有过。

运行时出现 NameError: name 'prompt' is not defined。

要么拼错了 prompt 要么漏写了这一行。回去比较你写的和我写的东西,从最后一行开始直至第 一行。

怎样从 IDLE 中运行?

不要使用 IDLE。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值