1
  method = input("Is it currently raining? ")
if method=="Yes" :
  print("You should take the bus.")
else: distance = input("How far in km do you want to travel? ")
if distance == > 2:
    print("You should walk.")
elif distance ==  < 10 :
  print("You should take the bus.")
else: 
  print("You should ride your bike.")

Nvm,我修复了它..对于那些有同样问题并且正在学习 Grok 的人来说,这只是一个缩进问题,我忘了写 int ......

4

2 回答 2

2

您需要为每次比较指定要比较的内容,所以

elif distance <=2 and >=10 

应该:

elif distance <=2 and distance >=10:

(有更聪明的方法可以做到这一点,但以上是最快的解决方法)

于 2013-07-21T23:14:46.657 回答
2

因此,既然您添加了第二个问题,我将添加第二个答案:)

在 Python 3 中,该input()函数总是返回一个字符串,如果不先进行转换,就无法比较字符串和整数(Python 2 在这里有不同的语义)。

>>> distance = input()
10
>>> distance
'10' <- note the quotes here
>>> distance < 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()

要将字符串转换为整数值,请使用int(string)

>>> distance = int(distance)
>>> distance
10 <- no quotes here
>>> distance < 10
False

(另请注意,您上面的代码片段存在缩进问题——无论您回答“是”与否,您最终都会出现在“if distance < 2”行。要解决此问题,您必须缩进所有应该在“else”分支以同样的方式。)

于 2013-07-22T17:19:03.190 回答