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

Blackjack游戏Python代码while循环重复输出输入提示问题修复

解决二十一点游戏中重复提示要牌的问题

你的代码在每次执行if和elif判断时都调用了input(),导致玩家每输入一次操作,控制台就会重复弹出提示语句。从你给出的控制台输出能看到,玩家输入y后,提示又重复出现了一次,这就是多次调用input造成的问题。

问题代码片段

while again:
    if input("Type 'y' to get another card, type 'n' to pass:") == "n":
        print(l_dealer_cards)
        again = False
    elif input("Type 'y' to get another card, type 'n' to pass:") == "y":
        player_cards()
        # 后续代码省略

修改方案

把input()的调用移到循环最开头,只获取一次用户的选择,再用这个选择值做判断,就能让提示只显示一次。

修改后的代码片段

while again:
    # 仅获取一次用户输入,避免重复弹出提示
    choice = input("输入'y'要牌,输入'n'停牌:")
    if choice == "n":
        print(l_dealer_cards)
        again = False
    elif choice == "y":
        player_cards()
        # 后续代码省略

修改后控制台输出示例

你的手牌: [4, 9], 当前点数: 13 
电脑的首张牌: 10
输入'y'要牌,输入'n'停牌:y
你的手牌: [4, 9, 10], 当前点数: 23 
超过21点,你输了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:50:44