我正在尝试学习python,我正在关注第3课的视频教学并使用最新的Pycharm IDE。
我的屏幕看起来像是教练的屏幕,但是我可以通过太长时间盯着它看隧道视觉。我的代码在我的崩溃时完美执行。我错过了什么?
错误讯息:
line 6, in <module>
balance = float(input("OK, ", name, ". Please enter the cost of the ", item, ": "))
TypeError: input expected at most 1 arguments, got 5
直到第6行的程序的第一部分:
# Get information from user
print("I'll help you determine how long you will need to save.")
name = input("What is your name? ")
item = input("What is it that you are saving up for? ")
balance = float(input("OK, ", name, ". Please enter the cost of the ", item, ": "))
pycharm版本是:
PyCharm Community Edition 2016.1.4 Build#PC-145.1504,建于5月 25,2016 JRE:1.8.0_77-b03 x86 JVM:Java HotSpot(TM)服务器VM by 甲骨文公司
现在,我只是盲目或者是否存在可能在我的版本和教师版本之间稍作更新的问题,他正在教python 3。
非常感谢任何人都可以提出任何帮助。
答案 0 :(得分:2)
在Python中,input
运算符只接受一个输入(您想要显示的字符串)。同样在Python中,字符串连接是使用+
运算符完成的。在当前操作中,您传递的是5个单独的字符串,而不是您要使用的1个字符串。将该行代码更改为:
balance = float(input("OK, "+ name +". Please enter the cost of the" + item + ": "))
答案 1 :(得分:0)
print ("I'll help you determine how long you will need to save.")
name = raw_input("What is your name? ")
item = raw_input("What is it that you are saving up for? ")
balance = float(raw_input("OK, "+ name +". Please enter the cost of the "+ item +": "))
print name
print item
print balance
答案 2 :(得分:0)
稍微重写可能会澄清
input_message = "OK, {name}. Please enter the cost of the {item}: ".format(name=name, item=item)
balance = float(input(input_message))
input
的参数应该只是一个字符串,我使用format
构建https://docs.python.org/2/library/string.html#format-examples
你传递了5个物体,比如说:
"OK, "
name
". "Please enter the cost of the "
item
": "
因此TypeError
考虑到你应该验证要转换成浮点数的实际输入,如果我键入&#34; foobar&#34;作为输入,上面的行将给出ValueError
,您可以自己检查。
答案 3 :(得分:0)
尝试使用字符串格式运算符%s
。 %
是一个保留字符,您可以将其放入输入字符串中。如果可能,%
后面的s将变量格式化为字符串。如果您需要一个整数,只需使用%d
。然后按照%
balance = float(input("OK %s. Please enter the cost of the %s: " %(name,item)))
你必须要小心,不要将整数或浮点数更改为字符串,除非你想要这样做,我不建议在输入语句中这样做。