医生程序 - 蟒蛇

时间:2014-04-29 09:06:17

标签: python

以下是我正在制作的一个简短的医生计划,这是一个开始,不幸的是,它不起作用。这是我收到的错误 - 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

2 个答案:

答案 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: ")