以下是我正在制作的一个简短的医生计划,这是一个开始,不幸的是,它不起作用。这是我收到的错误 - TypeError:输入最多需要1个参数,得到4
least = 0
most = 100
while True:
try:
levelofpain = int(input("How much is it hurting on a scale of", (least), "to", (most)))
while llevelofpain < least or levelofpain > most:
print ("Please enter a number from", (least), "to", (most))
levelofpain = int(input("How much is it hurting on a scale of", (least), "to", (most)))
break
except ValueError:
print ("Please enter a number from", (least), "to", (most))
提前致谢!
P.S。使用python 3.3
答案 0 :(得分:2)
错误消息是不言自明的 - 您将四个参数传递给input(...)
,只接受一个参数。
修复方法是将参数转换为单个字符串。
levelofpain = int(input(
"How much is it hurting on a scale of {} to {}? ".format(least, most)))
答案 1 :(得分:0)
对于格式化字符串,您可能希望使用Python的.format()
函数。看看这个问题:String Formatting in Python 3
在Python中格式化字符串有两种主要方法,使用.format
类的str
方法的新方法,以及使用%
符号的旧C样式方法:
<强> str.format():强>
"This is a string with the numbers {} and {} and {0}".format(1, 2)
C样式格式(%):
"This is another string with %d %f %d" % (1, 1.5, 2)
我强烈建议不要使用C风格格式,而是使用现代功能版本。我不推荐的另一种方法是用你自己的定义替换输入函数:
old_input = input
def input(*args):
s = ''.join([str(a) for a in args])
return old_input(s)
input("This", "is", 1, 2, 3, "a test: ")