Python 不打破while循环
我做了一些代码,将滚动两个骰子,并询问用户多少次。之后,它会询问用户是否想要再次播放。出于某种原因,它不会在应该的时候打破while循环 代码如下:Python 不打破while循环,python,Python,我做了一些代码,将滚动两个骰子,并询问用户多少次。之后,它会询问用户是否想要再次播放。出于某种原因,它不会在应该的时候打破while循环 代码如下: import random again = True rolls = 0 while again == True: rolls = float(raw_input("How many times would you like the dice to roll?")) while rolls >= 1: dice
import random
again = True
rolls = 0
while again == True:
rolls = float(raw_input("How many times would you like the dice to roll?"))
while rolls >= 1:
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
print dice1 , dice2
rolls = rolls - 1
again = raw_input("Would you like to play again?")
if again == "Yes" or "Y" or "yes" or "y":
again = True
else:
again = False
你们有谁能帮我吗
if again == "Yes" or "Y" or "yes" or "y":
这不是你想的那样。评估结果如下:
if (again == "Yes") or ("Y") or ("yes") or ("y"):
非空字符串在逻辑上是True
,因此整个语句将始终是True
。您需要再次将与每个可能的值进行比较
if again in ("Yes", "Y", "yes", "y"):
# or
if again == "Yes" or again == "Y" or again == "yes" or again == "y":
这不是你想的那样。评估结果如下:
if (again == "Yes") or ("Y") or ("yes") or ("y"):
非空字符串在逻辑上是True
,因此整个语句将始终是True
。您需要再次将与每个可能的值进行比较
if again in ("Yes", "Y", "yes", "y"):
# or
if again == "Yes" or again == "Y" or again == "yes" or again == "y":
问题在于这一行:
if again == "Yes" or "Y" or "yes" or "y":
其结果是:
if (again == "Yes") or "Y" or "yes" or "y":
换句话说,这永远是真的。你是说:
if again in ("Yes", "Y", "yes", "y"):
问题在于这一行:
if again == "Yes" or "Y" or "yes" or "y":
其结果是:
if (again == "Yes") or "Y" or "yes" or "y":
换句话说,这永远是真的。你是说:
if again in ("Yes", "Y", "yes", "y"):
线路
if again == "Yes" or "Y" or "yes" or "y":
是错误的,并且总是会返回正确的。要修复它,请将其更改为
if again == "Yes" or again == "Y" or again == "yes" or again == "y":
这是因为非空字符串总是真实的。由于您只是在第一个表达式中再次比较字符串,因此在其他表达式中,您只需检查字符串“Y”是否为空。由于该字符串是硬编码的,因此它始终为真
这样做也可能更整洁
#Uppercase the input and then check if user said yes
if again.upper() in ("YES","Y"):
do_the_thing()
线路
if again == "Yes" or "Y" or "yes" or "y":
是错误的,并且总是会返回正确的。要修复它,请将其更改为
if again == "Yes" or again == "Y" or again == "yes" or again == "y":
这是因为非空字符串总是真实的。由于您只是在第一个表达式中再次比较字符串,因此在其他表达式中,您只需检查字符串“Y”是否为空。由于该字符串是硬编码的,因此它始终为真
这样做也可能更整洁
#Uppercase the input and then check if user said yes
if again.upper() in ("YES","Y"):
do_the_thing()
问题在你的陈述中
if again == "yes" or "Y" or "yes" or "y"
python中的语句求值为True,除非它们等于0或不等于False
你必须这么做
if again == "Yes" or again == "Y" or again == "yes" etc.
这是因为或“Y”或“yes”总是计算为True。问题在于您的语句
if again == "yes" or "Y" or "yes" or "y"
python中的语句求值为True,除非它们等于0或不等于False
你必须这么做
if again == "Yes" or again == "Y" or again == "yes" etc.
这是因为或“Y”或“yes”总是计算为True。以下工作:
import random
again = True
rolls = 0
while again == True:
rolls = float(raw_input("How many times would you like the dice to roll?"))
while rolls >= 1:
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
print dice1 , dice2
rolls = rolls - 1
again = raw_input("Would you like to play again?")
# It correct and more short
again = True if again in ("Yes", "Y", "yes", "y") else False
以下工作:
import random
again = True
rolls = 0
while again == True:
rolls = float(raw_input("How many times would you like the dice to roll?"))
while rolls >= 1:
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
print dice1 , dice2
rolls = rolls - 1
again = raw_input("Would you like to play again?")
# It correct and more short
again = True if again in ("Yes", "Y", "yes", "y") else False
python版本2.7.3和while rolls>=1表示rolls大于或等于1 python版本2.7.3和while rolls>=1表示rolls大于或等于1 Hanks Dude!很好,谢谢你,伙计!效果很好。