(Python)如何使用“n”变量循环执行特定代码区域

2024-09-25 08:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

def player_choice():

    while True:

        roundsplayed = int(input("Choose how many rounds you want to play from 1 to 5! "))

        if roundsplayed < 1 or roundsplayed > 5:
            print ("Please enter a valid number from 1 to 5! ")
            continue
        return player_choice
    else:
        print ("Lets play " + roundsplayed + "rounds! ")

roundsplayed = player_choice()

print ("Let's go go go!")




options = ("r", "p", "s", "l", "sp")
from random import randint
computer = options[randint(0,4)]

for i in range(roundsplayed):

    wins = 0
    loses = 0
    draws = 0

    player = input("""Choose your hand!
    Rock (r)
    Paper (p)
    Scissor (s)
    Lizard (l)
    Spock (s)
    Your Choice: """)



    # if player chooses rock
    if player == "r" and computer == "r":
        print ("You tied!")

    elif player == "r" and computer == "s":
        print ("You crushed them! You Win!")
        wins += 1
        print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

    elif player == "r" and computer == "p":
        print ("You got covered! You lose!")
        loses += 1
        print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

    elif player == "r" and computer == "l":
        print ("You crushed them! You Win!")
        wins += 1
        print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

    elif player == "r" and computer == "sp":
        print ("You got vaporized! You lose!")
        loses += 1
        print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

所以我有这行代码

for i in range(roundsplayed):

wins = 0
loses = 0
draws = 0

player = input("""Choose your hand!
Rock (r)
Paper (p)
Scissor (s)
Lizard (l)
Spock (s)
Your Choice: """)



# if player chooses rock
if player == "r" and computer == "r":
    print ("You tied!")

elif player == "r" and computer == "s":
    print ("You crushed them! You Win!")
    wins += 1
    print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

elif player == "r" and computer == "p":
    print ("You got covered! You lose!")
    loses += 1
    print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

elif player == "r" and computer == "l":
    print ("You crushed them! You Win!")
    wins += 1
    print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

elif player == "r" and computer == "sp":
    print ("You got vaporized! You lose!")
    loses += 1
    print ("Wins: {} Draws: {} Loses: {}".format(wins, draws, loses))

通过输入某个变量或输入,使它重复循环的次数。我把“roundsplayed”变量放在那里,是为了让代码接受用户输入的变量。你知道吗

显然这不起作用,因为代码没有将其定义为整数。你知道吗

也适用于:

 wins = 0
loses = 0
draws = 0

我想让它在循环开始的时候加起来,但显然有一个问题,因为每当它选择重新开始循环时,加起来被重置为0,很可能是由于明显的错误。你知道吗

我希望有人能帮助我,这是我作为一个python学习者需要解决的所有问题,这样我就可以继续我的下一个项目了。你知道吗


Tags: andyouformatifcomputerplayerprintelif
2条回答

为了在不重置变量的情况下使用循环中的变量,请在循环上方(循环外部)声明它们。你知道吗

 wins = 0
    loses = 0
    draws = 0
for i in range(roundsplayed):


    player = input("""Choose your hand!
    Rock (r)
    Paper (p)
    Scissor (s)
    Lizard (l)
    Spock (s)
    Your Choice: """)

如果要将从控制台获得的字符串转换为int,可以使用int()函数。你知道吗

var number = int("1")

https://docs.python.org/2/library/functions.html

要将字符串转换为整数

int("stringhere")

如果不希望每次循环时都重置变量,请将它们从循环中取出。你知道吗

相关问题 更多 >