满足条件时回路无法终止
问题描述:
为什么满足所需条件时回路无法终止? 我将不胜感激深入的解释,而不是为我纠正的代码。满足条件时回路无法终止
def get_name(name_type):
return raw_input("Please enter you're {}name: \n".format(name_type))
def UserName():
result = get_name("Fore"), get_name("Middle"), get_name("Sur")
return " ".join(result)
print("You're UserName is : " + UserName())
while True:
def Base():
return int(raw_input("Please select a base number: \n"))
def Power():
return int(raw_input("Please select a power number: \n"))
def result():
return Base()*Power()
print result()
cont = raw_input("Would you like to quit? yes/no > ")
while cont.lower() not in ("yes","no"):
cont = raw_input("Would you like to quit? yes/no > ")
if cont=="no":
break
答
现在它的作用:
def get_name(name_type):
return raw_input("Please enter you're {}name: \n".format(name_type))
def UserName():
result = get_name("Fore"), get_name("Middle"), get_name("Sur")
return " ".join(result)
print("You're UserName is : " + UserName())
print
cont = 'no'
while cont != 'yes':
def Base():
return int(raw_input("Please select a base number: \n"))
def Power():
return int(raw_input("Please select a power number: \n"))
def result():
return Base()*Power()
print result()
cont = raw_input("Would you like to quit? yes/no > ")
while cont.lower() not in ("yes","no"):
cont = raw_input("Would you like to quit? yes/no > ")
if cont=="yes":
break
答
你内部的两个while循环。 你想摆脱这两个如果用户想要退出,否则只能从内之一:搬出while循环的条件,那么它应该工作:
from sys import exit
...
while True:
def Base():
return int(raw_input("Please select a base number: \n"))
def Power():
return int(raw_input("Please select a power number: \n"))
def result():
return Base()*Power()
print result()
cont = raw_input("Would you like to quit? yes/no > ")
while cont.lower() not in ("yes","no"):
cont = raw_input("Would you like to quit? yes/no > ")
if cont=="yes":
break
下一个忠告与你的问题没有任何关系,但无论如何我会给它:在每个循环迭代中,没有必要定义Base
,Power
和Result
函数。只需将值赋给变量,并直接打印:
base = int(raw_input("Please select a base number: \n"))
power = int(raw_input("Please select a power number: \n"))
print base*power
答
你break
语句嵌套在内while
循环内,因此它被打破这个循环,而不是while True
循环。我觉得移动的条件语句进行内部循环和改变逻辑if discont=='yes'
(注:重命名的变种,以更准确的描述)会给你想要的东西:
while True:
...
discont = raw_input("Would you like to quit? yes/no > ").lower()
while discont not in ("yes","no"):
discont = raw_input("Would you like to quit? yes/no > ").lower()
if discont=="yes":
break
因为你不破的时候'续= = “是”'? – L3viathan