python - while循环Python中的计数器问题
问题描述
我目前在我的代码中遇到问题,我正在尝试创建一个石头剪刀布游戏。我的计数方法似乎不起作用(当程序循环时,输赢计数器都为 0),所以我希望能得到一些帮助。我对 Python 和堆栈溢出相当陌生,所以请记住这一点。对不起,长长的代码墙:
import random
import time
win=0
loss=0
def compare():
if choice == "rock" and opp == "paper":
print("You lose!")
loss+1
elif choice == "paper" and opp == "scissors":
print("You lose!")
loss+1
elif choice== "scissors" and opp == "rock":
print("you lose")
loss+1
elif choice == "scissors" and opp == "paper":
print("you win")
win+1
elif choice == "rock" and opp =="scissors":
print("you win")
win+1
elif choice == "paper" and opp == "rock":
print("you win!")
win+1
else:
print("...")
op=["rock","paper","scissors"]
phrase=["Rock paper scissors shoot!","janken bo!", "pierre-feuille-ciseaux!","papier, kamień, nożyczki!"]
while True:
print ("You have",win,"wins and",loss,"losses")
choice=input(random.choice(phrase)).lower()
if choice not in op:
print("Rock paper or scissors")
continue
else:
print()
opp=random.choice(op)
print (opp)
compare()
while opp==choice:
choice=input(random.choice(phrase)).lower()
time.sleep(1)
opp=random.choice(op)
print (opp)
compare()
我很感激任何帮助。谢谢
解决方案
每次编写variable + 1
时,都不会更改变量。例如在:
def compare():
if choice == "rock" and opp == "paper":
print("You lose!")
loss+1
loss+1
什么都不做,即没有赋值。
您需要将值分配给您的变量。例如 :loss += 1
推荐阅读
- java - Java - 向大查询重复插入一行数据问题
- python - 我的标准缩放器输出 ValueError: could not convert string to float
- r - How to customize x axis tick labels for ggplot2 object created by plot() method
- code-coverage - Powermock 在 Maven 中具有 jacoco 代码覆盖率
- c - 有没有办法在我的 64 位 PC 中使用 minGW 编译 x64 程序?
- facebook - 如何获取 Facebook Facebook 公共页面内容访问权限只是为了提取数据?
- amazon-web-services - AWS RDS 多主写入多个区域
- node.js - 我应该使用带有节点 js 的 sequelize 或 DB 驱动程序进行原始查询吗?
- visual-studio-code - 3D 打印机 TwoTrees Sapphire Plus 的 PlatformIO (Marlin) 的 VSCode 编译失败
- ssh - 有没有办法验证在 Paramiko 中达到最大数据包大小时连接是否断开?