如果python中的字符串语句?

时间:2011-07-20 13:44:33

标签: python conditional-statements

我是初学者并一直在关注http://en.wikibooks.org/wiki/Python_Programming/Conditional_Statements,但我无法理解这里的问题。这很简单,如果用户输入y它应该打印这将进行计算,虽然我在IF上得到语法错误==“y”

answer = str(input("Is the information correct? Enter Y for yes or N for no"))
proceed="y" or "Y" 
If answer==proceed:
print("this will do the calculation"):
else:
exit()

6 个答案:

答案 0 :(得分:40)

即使您在代码中修复了错误的if和不正确的缩进,它也无法正常工作。要根据一组字符串检查字符串,请使用in。以下是您的操作方法(请注意if全部为小写,并且if块中的代码缩进一级。)

一种方法:

if answer in ['y', 'Y', 'yes', 'Yes', 'YES']:
    print("this will do the calculation")

另:

if answer.lower() in ['y', 'yes']:
    print("this will do the calculation")

答案 1 :(得分:9)

If应为if。你的程序应该是这样的:

answer = raw_input("Is the information correct? Enter Y for yes or N for no")
if answer.upper() == 'Y':
    print("this will do the calculation")
else:
    exit()

另请注意,缩进很重要,因为它标记了Python中的块。

答案 2 :(得分:6)

Python是一种区分大小写的语言。所有Python关键字都是小写的。使用if,而不是If

此外,请勿在调用print()后放置冒号。另外,缩进print()exit()调用,因为Python使用缩进而不是括号来表示代码块。

而且,proceed = "y" or "Y"不会做你想要的。使用proceed = "y"if answer.lower() == proceed:或类似内容。

还有一个事实是,只要输入值不是单个字符“y”或“Y”,您的程序就会退出,这与备用情况下“N”的提示相矛盾。不要使用else子句,而是事先使用elif answer.lower() == info_incorrect:info_incorrect = "n"。然后只是重新提示响应或其他东西,如果输入值是其他东西。


如果你现在学习的方式有这么多麻烦,我建议你阅读Python文档中的教程。 http://docs.python.org/tutorial/index.html

答案 3 :(得分:6)

你想:

answer = str(raw_input("Is the information correct? Enter Y for yes or N for no"))
if answer == "y" or answer == "Y":
  print("this will do the calculation")
else:
  exit()

或者

answer = str(raw_input("Is the information correct? Enter Y for yes or N for no"))
if answer in ["y","Y"]:
  print("this will do the calculation")
else:
  exit()

注意:

  1. 这是“如果”,而不是“如果”。 Python区分大小写。
  2. 缩进很重要。
  3. python命令末尾没有冒号或分号。
  4. 您希望raw_input不是input; input侵犯了输入。
  5. “或”如果计算结果为true,则给出第一个结果,否则给出第二个结果。因此"a" or "b"评估为"a",而0 or "b"评估为"b"。见The Peculiar Nature of and and or

答案 4 :(得分:2)

proceed = "y", "Y"
if answer in proceed:

另外,你不想要

answer = str(input("Is the information correct? Enter Y for yes or N for no"))

你想要

answer = raw_input("Is the information correct? Enter Y for yes or N for no")

input()评估作为Python表达式输入的内容,raw_input()返回一个字符串。

编辑:这只适用于Python 2.在Python 3上,input很好,尽管str()包装仍然是多余的。

答案 5 :(得分:-1)

Python区分大小写,需要适当的缩进。您需要使用小写“if”,正确缩进您的条件并且代码有错误。 proceed将评估为y