我在这个基本的python代码中做错了什么?

时间:2018-03-13 21:15:21

标签: python python-3.x

我正在测试语句和我是否遇到了这种困境。我不明白我做错了什么,以及为什么它需要一个字符串而不是一个整数。这是我的代码。

# If the entered age was over 21 print "have a drink" otherwise print the other one.
age = input(int("what's your age?:\n\t"))
if age >= 21 :
    print("have a drink")
else:
    print("you're just a lad!")

1 个答案:

答案 0 :(得分:1)

当你有嵌套的函数调用时,它们会从里到外执行,每个结果都作为包含它的下一个结果的参数。所以:

age = input(int("what's your age?:\n\t"))

相当于:

temp = int("what's your age?:\n\t")
age = input(temp)

以这种方式编写时,您可以看到赋予input()的参数是int()返回的整数。另外,你给int()的参数不是可以有意义地转换为整数的东西。

正确的语法是:

age = int(input("what's your age?:\n\t"))

首先调用input(),然后将响应转换为整数。