python中字符串的If语句?

2024-04-25 09:59:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初学者,一直在看http://en.wikibooks.org/wiki/Python_Programming/Conditional_Statements,但我不能理解这里的问题。很简单,如果用户输入y,它应该会打印出来,这将进行计算,尽管我在if answer=“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()

Tags: orthe用户answerorghttpforwiki
3条回答

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中标记一个块。

即使修复了代码中大小写错误的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")

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

相关问题 更多 >