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

如何在石头剪刀布Python游戏中使用while语句?

如何用while循环实现石头剪刀布的重复对局功能

现有一段仅支持单次对局的石头剪刀布Python代码,要实现可重复游戏的功能,只需用while循环包裹核心对局逻辑,并添加继续游戏的判断环节即可。

修改后的完整代码

print("来玩石头剪刀布吧!")
print("""代替石头输入: r 
代替布输入: p
代替剪刀输入: s\n""")

play_again = True
while play_again:
    user1 = input("用户1 -> ")
    user2 = input("用户2 -> ")
    print()

    if user1=="r":
        if user2=="r":
            print("叮!平局")
        elif user2=="p":
            print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用布包住了石头")
        elif user2=="s":
            print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用石头砸碎了剪刀")
        else:
            print("\033[030m""无效输入""\033[0m")
    elif user1=="p":
        if user2=="r":
            print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用布包住了石头")
        elif user2=="p":
            print("咔擦!平局")
        elif user2=="s":
            print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用剪刀剪碎了布")
        else:
            print("\033[030m""无效输入""\033[0m")
    elif user1=="s":
        if user2=="r":
            print("用户1", "\033[031m""输了""\033[0m", "用户2", "\033[032m""赢了""\033[0m", "用石头砸碎了剪刀")
        elif user2=="p":
            print("用户2", "\033[031m""输了""\033[0m", "用户1", "\033[032m""赢了""\033[0m", "用剪刀剪碎了布")
        elif user2=="s":
            print("唰!平局")    
        else:
            print("\033[030m""无效输入""\033[0m")
    
    # 询问是否继续游戏
    choice = input("\n要不要再来一局?(输入y继续,其他退出) ").strip().lower()
    if choice != 'y':
        play_again = False
        print("游戏结束!")

关键修改点

  • 用while play_again:包裹核心的输入、胜负判断逻辑,通过play_again布尔变量控制循环的开始与结束
  • 在每轮对局结束后添加用户选择环节,根据输入决定是否开启下一轮游戏
  • 保留原有的胜负判定和颜色输出逻辑,仅调整循环结构实现重复游戏功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:45:36