Python 如何退出此程序中的循环
我最近开始使用python,在这个基于文本的游戏中,我似乎无法退出while循环。我尝试将循环从while更改为for a循环和If Else循环,但我无法找到退出它的方法。我希望它退出循环,并在用户输入的数字与系统的随机数字匹配时打印下面写的文本Python 如何退出此程序中的循环,python,while-loop,Python,While Loop,我最近开始使用python,在这个基于文本的游戏中,我似乎无法退出while循环。我尝试将循环从while更改为for a循环和If Else循环,但我无法找到退出它的方法。我希望它退出循环,并在用户输入的数字与系统的随机数字匹配时打印下面写的文本 import random def batting (): print("You can enter a number between 1 and 10") bat = input() sys_ball = random
import random
def batting ():
print("You can enter a number between 1 and 10")
bat = input()
sys_ball = random.randint(1,10)
print (sys_ball)
score_board = (bat + bat)
batting ()
while bat != sys_ball:
batting ()
def balling ():
print ("Ok! Start balling with a number between 1 and 10!")
user_ball = input()
sys_bat = random.randint(1,2)
print (sys_bat)
balling ()
while user_ball != sys_bat:
balling ()
def oddeve ():
print("Welcome to finger cricket! Type 1 to start batting and 2 to start balling!")
odd_eve = input()
if odd_eve == ('1'):
batting ()
print ("You win! You scored".join(score_board))
else:
balling()
print ("You win! You defeated me")
oddeve ()
仔细看,您的函数递归地调用自己
def batting (): # <- 1
print("You can enter a number between 1 and 10")
bat = input()
sys_ball = random.randint(1,10)
print (sys_ball)
score_board = (bat + bat)
batting () # <- 2
while bat != sys_ball:
batting ()
def balling (): # <- 1
print ("Ok! Start balling with a number between 1 and 10!")
user_ball = input()
sys_bat = random.randint(1,2)
print (sys_bat)
balling () # <- 2
while user_ball != sys_bat:
balling ()
因此,停止递归调用该函数。一旦输入“batting”或“balling”,鉴于这些函数以调用自身结束,您永远无法逃脱。在某些地方,您需要函数返回某些内容的条件,而不仅仅是再次调用自身。次要问题,bat!=sys_ball将始终为真,因为它们是两种不同的类型:bat是字符串,sys_ball是int。看起来您可能会在while循环之前额外调用击球函数和击球函数,这将导致它反复运行函数,永远不会到达while循环。如果你不明白的话,我可以再深入一点,提供一个答案。顺便说一句,欢迎光临!如果需要建议,请查看和。在将来,请提供一个测试,以便您和我们更容易调试您的代码。我说这是因为奥德维和这个问题无关,而且投球和击球实际上是一样的。非常感谢大家!代码正在运行!下次我会记住道德问题!再次非常感谢
def batting (): # <- 1
print("You can enter a number between 1 and 10")
bat = input()
sys_ball = random.randint(1,10)
print (sys_ball)
score_board = (bat + bat)
batting () # <- 2
while bat != sys_ball:
batting ()
def balling (): # <- 1
print ("Ok! Start balling with a number between 1 and 10!")
user_ball = input()
sys_bat = random.randint(1,2)
print (sys_bat)
balling () # <- 2
while user_ball != sys_bat:
balling ()