python - 为什么我的while循环没有进入里面的if语句?
问题描述
石头剪刀布 pt 2...
我正在尝试制作一个石头剪刀布游戏,到目前为止我有这个:
from random import randint
print("Rock...")
print("Paper...")
print("Scissors...")
player_wins = 0
computer_wins = 0
while player_wins < 3 and computer_wins < 3:
print(f"{computer_wins} to {player_wins}")
player1 = input("Player 1, make your move: ").lower()
computer_choices = ["rock", "paper", "scissors"]
computer_choice = randint(0, 2)
computer = [computer_choices[computer_choice]]
print(computer)
if player1 == computer:
print("It's a tie!")
elif player1 == "rock":
if computer == "scissors":
print("player1 wins!")
player_wins += 1
elif computer == "paper":
print("computer wins!")
computer_wins += 1
elif player1 == "paper":
if computer == "rock":
print("player1 wins!")
player_wins += 1
elif computer == "scissors":
print("computer wins!")
computer_wins += 1
elif player1 == "scissors":
if computer == "rock":
print("computer wins!")
computer_wins += 1
if computer == "paper":
print("player1 wins!")
player_wins += 1
else:
print("something went wrong")
基本上我想做的是让它接受一个输入,选择一个随机选择,然后比较这些选择。我把前两部分放在了下面,它选择一个选项并接受输入,但它没有在 while 循环内输入 if 语句。它只会永远持续下去。
我在这里做错了什么?
解决方案
计算机选择始终是一个列表,您将其与字符串进行比较。
更改此行:
computer = [computer_choices[computer_choice]] # list with one string item
对此:
computer = computer_choices[computer_choice] # string
游戏在此更改下正常运行。
推荐阅读
- jquery - 使用 jquery 调用引导模式的 Karma 单元测试用例
- windows - 如何在 Visual Studio 中移动项目 .netcore 以在 Mac 上的 Windows 上运行
- c# - 如何跨页面/窗口存储用户输入数据并将其全部显示在没有数据库的页面中
- uipath - UI Path 配置和组织问题
- spring - 如何使用 web.xml 在 Spring Boot 中集成 jar 文件?
- scala - Apache Spark Streaming - 找不到类错误
- jquery - 未捕获的 ReferenceError:在 jQuery 中进行数学计算时未定义数据
- python - 是否有用于编写 R-Style 线性回归点 (.) 以表示所有自变量的 python 操作
- android - Espresso 在旧设备/FirebaseTestLab 上没有存根意图
- sql - 当两个字段都被索引时,SQL“和”运算符如何工作?