首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在嵌套的while循环中从random.choice获得不同的结果

如何在嵌套的while循环中从random.choice获得不同的结果
EN

Stack Overflow用户
提问于 2019-06-03 06:15:56
回答 1查看 74关注 0票数 -1

这是一个石头剪刀程序迷你游戏,但是random.choice只从列表中选择一个,即使它在嵌套循环中重复选择。

我试过寻找其他答案,但大多数都是关于使用循环的,其他的对我的情况来说还不够。

代码语言:javascript
复制
              rpsloop = True
              while rpsloop:
                  #credit to https://thehelloworldprogram.com/python/python-game-rock-paper-scissors/ for help
                  aiselc = ["rock","paper","scissors"]
                  computer = random.choice(aiselc)
                  print("type exit to leave")
                  player = input("rock, paper, scissors?")
                  if player == computer:
                    print("Tie!")
                    print("-------------------------")
                    continue
                  elif player == "rock":
                    if computer == "paper":
                     print("You lose!", computer, "covers", player)
                     print("-------------------------")

                     continue
                    else:
                     print("You win!", player, "smashes", computer)
                     print("-------------------------")
                     continue
                  elif player == "Paper":
                    if computer == "Scissors":
                     print("You lose!", computer, "cut", player)
                     print("-------------------------")
                     continue
                    else:
                     print("You win!", player, "covers", computer)
                     continue
                  elif player == "Scissors":
                    if computer == "Rock":
                     print("You lose...", computer, "smashes", player)
                     print("-------------------------")
                     continue
                    else:
                     print("You win!", player, "cut", computer)
                     print("-------------------------")
                     continue
                  else:
                       break
          else:
              break

我希望电脑能挑选石头、布或剪刀。它选择一个并保留该值,即使在循环之后也是如此。但是,它在每次执行时都会选择另一个值。

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 06:38:22

请记住,在Python语言中使用==比较字符串时,会进行精确的比较。这意味着在比较字符串时要考虑字母的大小写。例如,Scissorsscissors将被视为不相等。

我高度怀疑你所有的选择都是小写的。这意味着如果输入scissorspaper,用于检查玩家是否进入Scissorsif语句将不会执行。最终会发生的是,由于字符串比较的大小写敏感特性,您的循环将退出,因为您输入的内容不会被任何其他if语句处理。这就是为什么rock只执行而其他if语句不执行的原因。

具体来说,请注意,在if语句中,rock是小写的,但ScissorsPaper的第一个字母是大写的。

因此,对于这种实现,请更改if语句,使字符串实际上是小写的。

代码语言:javascript
复制
elif player == "paper":
     if computer == "scissors":
...
...

elif player == "scissors":
    if computer == "rock":
...
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56419327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档