我正在学习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中运行它,似乎会将错误视为无效语法。有什么想法吗?
答案 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关心缩进。因此,缩进if
和else
语句中的块(对于所有块语句也是如此)。
?
不需要转义,所以不要逃避它。 \\
需要在字符串文字中进行转义,如果您使用其中一个引号,则"
和'
需要转义(三引号字符串文字不要求除非你连续3个,在这种情况下逃避一个就足够了;你不必在'
字面中逃避""
,反之亦然)
如果您使用的是Python 2,那很棒。如果您使用的是Python 3,input
会给出一个字符串,所以x = int(input("..."))
转换为int。
除非您在上一次elif
之后有更多语句,否则只需使用else
。另外,x == 18
时会发生什么? x < 18
和x > 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检查进行比较,则会失败。
另请注意,缩进非常重要,如果排列不正确会导致错误。尝试使用或者两者兼而有之,以保持简单。