python小白求助~

年三十打兔子 14天前 8

用了while循环和for循环做了个简单练习,我输入5次,for循环到2次时跳出了,但是我输入3次时就不跳。。。。怎么都看不出来哪里错了,求大佬解答下~~[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-# Create on 2020/10/14import reimport randomuser_win = 0computer_win = 0ku = {1: '拳头', 2: '剪刀', 3: '布'}while True:    game_count = input('猜拳游戏:玩几局?\n')    if re.sub(r'\d', '', game_count) == '' and game_count != '':        game_count = int(game_count)        for i in range(game_count):            user_input = input('猜拳游戏(%s次机会):\n1:拳头\n2:剪刀\n3:布\n请输入>:' % game_count)            computer = random.choice(list(ku.keys()))            if len(user_input) == 0:                print('不能为空,你浪费了一次机会')                game_count -= 1            elif re.sub(r'\d', '', user_input) == '':                user_input = int(user_input)                if (user_input == 1 and computer == 2) or (user_input == 2 and computer == 3) or \                        (user_input == 3 and computer == 1):                    print(f'你出了{ku[user_input]},电脑出{ku[computer]},你赢了电脑')                    user_win += 1                    game_count -= 1                elif user_input == computer:                    print('你出了%s,电脑出%s,平局' % (ku[user_input], ku[computer]))                    game_count -= 1                elif user_input > 3 or user_input < 1:                    print('请遵守规则,你浪费了一次机会')                    game_count -= 1                else:                    print('你出了{0},电脑出{1},电脑赢了你'.format(ku[user_input], ku[computer]))                    computer_win += 1                    game_count -= 1                finish = (int(game_count / 2) + 1)                if user_win == finish or computer_win == finish:                    break            else:                print('请遵守游戏规则,你浪费了一次机会')                game_count -= 1        if game_count == 0:            break    else:        print('请决定游戏局数')if computer_win > user_win:    print('电脑赢%s局,你赢%s局,电脑获胜' % (computer_win, user_win))elif computer_win == user_win:    print('电脑赢%s局,你赢%s局,游戏平局,请再接再厉' % (computer_win, user_win))else:    print('电脑赢%s局,你赢%s局,恭喜获胜' % (computer_win, user_win))

也在学习英语,看到好多人在求0基础学英语拼读天才,不知道效果怎么样?想同求一份看看感谢大佬!
最新回复 (3)
  • Maxhaha 14天前
    引用 2
    你应该在38行下面加上 game_count = 0
  • Maxhaha 13天前
    引用 3
    没看懂你的38行是干啥的  用户赢或者电脑赢就应该跳出循环么?跳出循环  game_count 就不能是0了啊  就不能走43行代码了
  • 楼主 年三十打兔子 12天前
    引用 4
    Maxhaha 发表于 2020-10-16 09:07
    你应该在38行下面加上 game_count = 0

    谢谢大佬提醒!在整理时感觉逻辑都是错的……也加备注了(自己看都费劲。。。)
  • 游客
    5
返回