并非所有参数都在字符串格式化操作中转换



我正在从Zed Shaw的" Learn 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)

是什么导致此错误?

此行看起来错误:

print ("Do you like me?") % (user_name)

更改语句

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

您将变量作为参数,但您没有该论点的占位符。这就是为什么它不能在格式化期间将参数转换为字符串。

我理解的问题是

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

以及您不将参数传递给脚本的事实,该脚本应该绑定到 user_name varible(这就是为什么您会得到未定义的原因)。

这样调用脚本:

$ python filename.py Muhammad

最新更新