如何让我的程序只接受 python 2.x 中的某些输入
How do I get my program to only accept certain inputs in python 2.x
我希望这个程序只接受 "yes ,"y", "Yes"
中的任何一个作为输入文本,但出于某种原因,当我输入其中一个时没有任何反应,下面的循环似乎没有 运行:
import time
print ("Welcome to my first ever RPG! created 10/07/2016")
time.sleep(2)
begin = raw_input("Would you like to start the game?")
Start = False
if begin == ("yes" , "y" , "Yes" ):
Start == True
while Start == True:
player_name = raw_input("What would you like to name your character")
print ("welcome " + player_name.capitalize())
(PS:首选最简单的解决方案,我是 python)
的新手
您可以使用您原来的解决方案并像这样更改它(不推荐):
if begin.strip() == "yes" or begin.strip() == "y" or begin.strip() == "Yes":
或者只检查元组中的包含:
if begin.strip() in ("yes" , "y" , "Yes" ):
甚至更好:
if begin.strip().lower().startswith('y'):
.strip()
处理用户可能输入的任何空格。
而你也想改变
Start == True
到
Start = True
因为前一行是相等测试而不是赋值,所以在你的情况下 Start
总是 False。
begin
是一个字符串,("yes" , "y" , "Yes" )
是一个元组。因此,begin == ("yes" , "y" , "Yes" )
永远不会为真。但是,元组中有三个字符串可以与 begin
进行比较。这样做的详细方法是写:
for element in ("yes" , "y" , "Yes" ):
if element == begin:
Start = True
Python 有一种使用 in
关键字以更少的代码行执行此操作的简便方法:
if begin in ("yes" , "y" , "Yes" ):
Start = True
请注意,我还将 Start == True
更改为 Start = True
,因为 ==
仅用于比较,您可能需要使用 =
完成的赋值。
捕捉用户输入的更多变体("Yes"、"YES"、"yES"、"y"、"Y" 等):
begin = begin.strip().lower()
if begin in ("y", "yes"):
Start = True
我希望这个程序只接受 "yes ,"y", "Yes"
中的任何一个作为输入文本,但出于某种原因,当我输入其中一个时没有任何反应,下面的循环似乎没有 运行:
import time
print ("Welcome to my first ever RPG! created 10/07/2016")
time.sleep(2)
begin = raw_input("Would you like to start the game?")
Start = False
if begin == ("yes" , "y" , "Yes" ):
Start == True
while Start == True:
player_name = raw_input("What would you like to name your character")
print ("welcome " + player_name.capitalize())
(PS:首选最简单的解决方案,我是 python)
的新手您可以使用您原来的解决方案并像这样更改它(不推荐):
if begin.strip() == "yes" or begin.strip() == "y" or begin.strip() == "Yes":
或者只检查元组中的包含:
if begin.strip() in ("yes" , "y" , "Yes" ):
甚至更好:
if begin.strip().lower().startswith('y'):
.strip()
处理用户可能输入的任何空格。
而你也想改变
Start == True
到
Start = True
因为前一行是相等测试而不是赋值,所以在你的情况下 Start
总是 False。
begin
是一个字符串,("yes" , "y" , "Yes" )
是一个元组。因此,begin == ("yes" , "y" , "Yes" )
永远不会为真。但是,元组中有三个字符串可以与 begin
进行比较。这样做的详细方法是写:
for element in ("yes" , "y" , "Yes" ):
if element == begin:
Start = True
Python 有一种使用 in
关键字以更少的代码行执行此操作的简便方法:
if begin in ("yes" , "y" , "Yes" ):
Start = True
请注意,我还将 Start == True
更改为 Start = True
,因为 ==
仅用于比较,您可能需要使用 =
完成的赋值。
捕捉用户输入的更多变体("Yes"、"YES"、"yES"、"y"、"Y" 等):
begin = begin.strip().lower()
if begin in ("y", "yes"):
Start = True