You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环调用输入函数直至在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)

关键修改说明

  1. 补充了player_guess函数:负责处理用户输入,确保输入是0-2之间的整数,避免非法输入导致程序报错
  2. 重构check_guess函数:移除了guess参数,改为内部循环调用player_guess,直到用户猜对藏球的杯子
  3. 添加必要的导入:原代码缺少from random import shuffle,补充后才能正常使用打乱列表功能
  4. 优化交互提示:让用户更清楚需要输入什么,猜错时给出明确的重试提示

内容的提问来源于stack exchange,提问作者buri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:15:29