我正在从Zed Shaw的“学习python艰难的方式”练习14,但遇到了这个问题。我甚至尝试过复制粘贴书中的代码,但它总是给我这个错误。这是我的代码:
from sys import argv
script, user_name = argv
prompt = ' >'
print ("Hi %s I'm the %s script.") % (user_name, script)
print "I'd like to ask you some questions"
print ("Do you like me?") % (user_name)
likes = raw_input(prompt)
print ("Where do you live %s") % (user_name)
lives = raw_input(prompt)
print ("What computer do you use %s") % user_name
uses = raw_input(prompt)
print """
Alright so I asked you if you liked me and you said %r. You live in %r and you use
%r computer. Thanks
""" % (likes, lives, uses)
导致此错误的原因是什么?
答案 0 :(得分:0)
这一行看起来不对:
print ("Do you like me?") % (user_name)
答案 1 :(得分:0)
更改声明
print("Do you like me? %s") % (user_name)
您将变量作为参数,但您没有参数的占位符。这就是为什么它不能在格式化过程中将参数转换为字符串。
答案 2 :(得分:0)
据我所知,问题出在这行
print("Do you like me? %s") % (user_name)
以及您没有将参数传递给脚本的事实,该参数应该绑定到 user_name 变量(这就是为什么未定义的原因)。
像这样调用脚本:
$ python filename.py Muhammad