如何循环调用输入函数直至在check_guess函数中选中正确杯子
找球游戏:实现循环猜球直至正确的功能
我正在学习Python函数交互内容,目前在制作“找球游戏”,需求是在check_guess函数中循环获取用户输入,直至用户选中藏有球的正确杯子。以下是现有代码及修改后的完整实现:
现有代码
打乱列表函数
def shuffle_list(mylist): shuffle(mylist) return mylist
初始杯子列表(3个杯子,一个藏球)
mylist = ['','O','']
判断猜测结果的函数
def check_guess(mylist, guess): if mylist[guess] == 'O': print('Correct') else: print('Wrong Guess') print(mylist)
现有执行流程
#INITIAL LIST mylist = ['','O',''] #SHUFFLE LIST mixedup_list = shuffle_list(mylist) #USER GUESS guess = player_guess() #CHECK GUESS check_guess(mixedup_list,guess)
完整实现代码(含循环猜球逻辑)
from random import shuffle def shuffle_list(mylist): shuffle(mylist) return mylist def player_guess(): # 确保用户输入合法的杯子编号(0、1、2) while True: user_input = input("请输入猜测的杯子编号(0、1、2):") if user_input.isdigit(): guess = int(user_input) if 0 <= guess <= 2: return guess print("输入无效,请输入0、1或2之间的数字") else: print("输入无效,请输入数字") def check_guess(mylist): # 循环获取用户猜测,直到猜对为止 while True: guess = player_guess() if mylist[guess] == 'O': print('猜对了!🎉') break else: print('猜错了,再试一次!') # 启动游戏 if __name__ == "__main__": initial_list = ['','O',''] shuffled_list = shuffle_list(initial_list) check_guess(shuffled_list)
关键修改说明
- 补充了
player_guess函数:负责处理用户输入,确保输入是0-2之间的整数,避免非法输入导致程序报错 - 重构
check_guess函数:移除了guess参数,改为内部循环调用player_guess,直到用户猜对藏球的杯子 - 添加必要的导入:原代码缺少
from random import shuffle,补充后才能正常使用打乱列表功能 - 优化交互提示:让用户更清楚需要输入什么,猜错时给出明确的重试提示
内容的提问来源于stack exchange,提问作者buri
相关产品推荐
相关产品推荐

