为什么我在此ifelse语句中收到“不正确”的输出?

时间:2019-02-11 01:53:59

标签: python if-statement conditional-statements boolean-logic

我是python的新手,正在尝试通过做一些小型项目来学习。

我正在尝试编写一个显示四个属性名称的程序, 要求用户识别不是铁路的财产。应该告知用户选择是否正确。

properties = "Reading,","Pennsylvania","B & O","Short Line"
question = str(input("Which is not a railroad?")) **Short Line**
if properties == "Short Line":
    print("correct")
else:
    print("incorrect")

但是,我的最终输出显示为“不正确”,我在做什么错了?

铁路的四个属性 是宾夕法尼亚州雷丁市 B&O和短线。 哪个不是铁路?短线 正确。 Short Line是一家巴士公司。

3 个答案:

答案 0 :(得分:0)

将您看到的代码与我看到的内容结合起来。

首先,不确定实际代码中是否确实包含**Short Line**,但是如果您要尝试注释,请使用#这样,它将不会在运行时被解释。

第二,在其他答案中,您正在检查要拉入数组的属性。您应该检查存储在问题中的输入。

properties = "Reading,","Pennsylvania","B & O","Short Line"
question = str(input("Which is not a railroad?")) # **Short Line**
if question == "Short Line": # replaced properties with question
    print("correct")
else:
    print("incorrect")
print(properties)
print(question)

我发现,当我无法理解为什么某项功能无法正常工作时,我会抛出一些打印语句以查看变量的作用。

答案 1 :(得分:0)

您可能想循环捕获用户,否则您将不得不经常运行代码以找到正确的答案(除非这是所需的行为,否则可以保留它)。另外,请注意您可能要大写或小写,因为用户可能会以“短线”(小写“ L”)形式提供答案,并且代码将返回不正确的形式。当然,这取决于您将接受什么作为答案。

样品

print ("Reading,Pennsylvania,B & O, or Short Line. Which is not a railroad?")
user_input = input("Please provide an answer: ")
# != the loop will close once the user inputs short line in any form
# The upper.() will convert a user_input string to all caps 
while user_input.upper() != "SHORT LINE":
  print ("Incorrect, Please try again.")
  user_input = input("Which one is not a railroad? ")

print ("Correct")

答案 2 :(得分:-1)

为您点缀它

print( "Reading, Pennsylvania, B & O, and Short Line. Which is not a railroad?" )
print("Which is not a railroad?")
answer = input()
if answer == "Short Line":
    print("correct")
else:
    print("incorrect")