簡體   English   中英

While循環Python中的計數器問題

[英]Issues with counters in while loop 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

歡迎來到StackOverflow!

在您的if statements您實際上並沒有增加計數。 您需要win = win + 1loss = loss + 1

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

現在,您還可以執行一些“速記”語法。 loss += 1等於loss = loss + 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM