首页 > 解决方案 > 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()

我很感激任何帮助。谢谢

标签: pythonwhile-loopcounter

解决方案


每次编写variable + 1时,都不会更改变量。例如在:

def compare():
  if choice == "rock" and opp == "paper":
    print("You lose!")
    loss+1

loss+1什么都不做,即没有赋值。

您需要将值分配给您的变量。例如 :loss += 1


推荐阅读