使用python将if和elif语句放在输入或类似的下面

时间:2017-09-19 23:39:32

标签: python

我正在学习https://sololearn.com的python(不知道这是否是学习python的好地方,但似乎相当不错)而且我想知道它们是某种类似的(这是一个只是一个例子btw无法识字)

x = input("What is your age\?")
if x > 18:
print("You are welcome")
elif x < 18:
print("You are underaged, try again later")

如果我尝试在IDLE中运行它,似乎会将错误视为无效语法。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可能会尝试将字符串与数字进行比较:

if x > 18:

要解决此问题,请尝试以下方法:

x = int(input("What is your age\?"))
if x > 18:
   print("You are welcome")
elif x < 18:
    print("You are underaged, try again later")

这将确保您从输入中获取的数字始终为整数。

答案 1 :(得分:0)

压痕

Python关心缩进。因此,缩进ifelse语句中的块(对于所有块语句也是如此)。

逃避事情

?不需要转义,所以不要逃避它。 \\需要在字符串文字中进行转义,如果您使用其中一个引号,则"'需要转义(三引号字符串文字不要求除非你连续3个,在这种情况下逃避一个就足够了;你不必在'字面中逃避"",反之亦然)

输入

如果您使用的是Python 2,那很棒。如果您使用的是Python 3,input会给出一个字符串,所以x = int(input("..."))转换为int。

如果......其他

除非您在上一次elif之后有更多语句,否则只需使用else。另外,x == 18时会发生什么? x < 18x > 18都是假的,所以什么都不会发生。没有18岁用户的消息......:P

所以,最终的代码看起来像这样:

x = input("What is your age?") # replace with `int(input(...))` in Python 3
if x > 18:
    print("You are welcome")
else:
    print("You are underaged, try again later")

答案 2 :(得分:0)

上面的代码似乎很好,但它也取决于python版本。在python 2.x中,input()尝试将用户输入计算为适当的数据类型,但是在python 3.x中,input()的工作方式类似于python 2.x中的raw_input(),即。它接受字符串并保持这种方式。因此,如果您尝试将字符串与条件的int检查进行比较,则会失败。

另请注意,缩进非常重要,如果排列不正确会导致错误。尝试使用或者两者兼而有之,以保持简单。