函数不适用于输入参数值

时间:2013-11-30 21:47:21

标签: function if-statement input python-3.x

我正在为学校做点什么,出于某种原因,这个函数调用了所有剩下的功能,但是不起作用。你应该能够从列表中选择一个函数,它将执行该函数。当我将该函数称为调用者(3)或任何其他实际数字时,它将正常工作。或者如果我说x = 3然后说调用者(x)它也可以。不起作用的是我要求x = input('whatever')调用者(x)。它只吐出任何东西或“没有”,它真的很烦人。

我重新设计了前两个函数,这样就可以在不复制整个代码的情况下实际调用。如果有人能弄清楚发生了什么,我会爱上一些帮助。

def name_major():
    print('This one works')

def age_int():
    print('This one works too')

def caller(slct):
    select = slct
    if select == 1:
        name_major()
    elif select == 2:
        age_int()
    elif select == 3:
        n = randint(0,4)
        name_greet(randname[n])
    elif select == 4:
        messager('Bring out your dead! ', randint(1,8))
    elif select == 5:
        print('Function #5')
        get_biggest(randint(0,15),randint(0,15))
    elif select == 6:
        print('Function #6')
        wrd = input('Please enter a word or phrase: ')
        print('"' + str(wrd) + '" has', cap_counter(wrd), 'capital letters in it.')
    elif select == 7:
        n1 = randint(0,20)
        n2 = randint(0,20)
        n3 = randint(0,20)
        print(the_middler(n1,n2,n3))
    elif select == 8:
        run_all()

    x = input('give value')
    caller(x)

1 个答案:

答案 0 :(得分:0)

input返回一个字符串,然后将其与一系列整数进行比较。您需要将其设为int,或将比较目标设为字符串。

比较

>>> x = input("give value: ")
give value: 17
>>> x
'17'
>>> type(x)
<class 'str'>
>>> x == 17
False
>>> x == '17'
True

>>> x = int(input("give value: "))
give value: 18
>>> x
18
>>> type(x)
<class 'int'>
>>> x == 18
True