我正在关注一个学习 python 的初学者程序。我正在努力寻找一种更好的方法来使用具有多种可能性的“if”语句。我正在编写一个基于文本的基本游戏,用户可以在其中选择三个不同的难度级别:简单、中等、困难。我只是想编写接受 1、2 或 3 的代码来告诉程序运行哪个级别。我想确保用户输入是这些选项之一,而不是“4”或“一个”。
下面是我写的相关代码:
selected_level = 0
selected_level = raw_input("\n Please select a level by entering 1, 2, or 3 : ")
print selected_level
if selected_level == 1 or selected_level == 2 or selected_level == 3:
print "Pass"
else:
print "Fail"
break
我现在要做的就是测试“if”语句是否有效。但是,无论我输入什么输入,它都会打印输入,然后打印“Fail”,这告诉我它永远不会进入“if”语句的第一部分。
我已经尝试使用输入 1、2、3、4、1 等对此进行测试,它总是跳到“else”语句。有没有更好的方法来编写具有多个或值的“if”语句?
请您参考如下方法:
您的问题是 raw_input 返回一个字符串,但 if 语句正在与整数进行比较。
“1”不等于 1。
尝试检查 if selected_level == "1"... "2"... etc. 它应该可以工作。
我会比较字符串而不是将输入转换为 int,因为如果用户键入意外的内容,程序会崩溃。
还有一个更简洁的检查:
if selected_level in ("1", "2", "3"):
print "Pass"
