我是初学者并一直在关注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()
答案 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()
注意:
input
侵犯了输入。"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