python-3.x - 如果语句未正确打印
问题描述
我不确定为什么,但对于 if 语句,它没有正确打印消息。每当我运行程序时,它只运行 else 语句,而不运行其余的 if 语句
import random
import sys
def main():
while True:
aimove = random.randint(1, 3)
print("|//////////////|")
print("| 1 - Rock |")
print("| 2 - Paper |")
print("| 3 - Scissors |")
print("|//////////////|")
usermove = input("Choose your move")
# decides who wins or loses
if aimove == "1" and usermove == "2":
print("you won!")
elif aimove == "1" and usermove == "1":
print("you tied")
elif aimove == "1" and usermove == "3":
print("you lost")
elif aimove == "2" and usermove == "3":
print("you won!")
elif aimove == "2" and usermove == "2":
print("you tied")
elif aimove == "2" and usermove == "1":
print("you lost")
elif aimove == "3" and usermove == "1":
print("you won!")
elif aimove == "3" and usermove == "3":
print("you tied")
elif aimove == "3" and usermove == "1":
print("you lost")
else:
sys.exit()
# Print messages of match
print("User aimove: " + str(usermove))
print("Opponent aimove: " + str(aimove))
main()
解决方案
random.randint
给出一个整数,而不是一个字符串。因此,如果您将字符串与 int 进行比较,它将永远不会相同。
您可以像 Russ J 在评论中所说的那样删除每个数字周围的引号,或者,您可以将其转换为str()
import random
import sys
def main():
while True:
aimove = str(random.randint(1, 3))
print("|//////////////|")
print("| 1 - Rock |")
print("| 2 - Paper |")
print("| 3 - Scissors |")
print("|//////////////|")
usermove = input("Choose your move")
# decides who wins or loses
if aimove == "1" and usermove == "2":
print("you won!")
elif aimove == "1" and usermove == "1":
print("you tied")
elif aimove == "1" and usermove == "3":
print("you lost")
elif aimove == "2" and usermove == "3":
print("you won!")
elif aimove == "2" and usermove == "2":
print("you tied")
elif aimove == "2" and usermove == "1":
print("you lost")
elif aimove == "3" and usermove == "1":
print("you won!")
elif aimove == "3" and usermove == "3":
print("you tied")
elif aimove == "3" and usermove == "1":
print("you lost")
else:
sys.exit()
# Print messages of match
print("User aimove: " + str(usermove))
print("Opponent aimove: " + str(aimove))
main()
推荐阅读
- javascript - 两个包含图像的滚动同步 div - 如何防止事件适得其反?
- python - Bayer Demosaicing VideoCaptured python中的帧
- amazon-web-services - 在 Amazon SNS 控制面板中创建平台应用程序的选项在哪里?
- python - Python:使用 subprocess.Popen 执行一个长时间运行的进程,将其杀死并访问其输出
- symfony - Symfony - 记录到服务中的多个日志文件
- git - 远程存储库中的 .gitignore 项目会被 git clone 复制到本地项目存储库中吗?
- java - Spring boot Cloud Embedding Config Server 从 Git repo 获取每个请求的属性
- php - 在 Woocommerce 中只允许为特定产品类别购买一种产品
- azure - 在未显示的循环中列出 blob
- node.js - MongoDB 搜索在某些情况下失败