第一次尝试Python

2024-04-23 23:38:52 发布

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

我刚开始用Python编写代码。我没有任何其他编程语言的经验,所以我希望这个论坛将是一个伟大的地方,我学习有关编码!所以这里是:

import random

bankroll = 10
bankroll2 = 10

def player():
    player1 = random.randrange(0, 5)
    player2 = random.randrange(0, 5)
    if player1 > player2:
        print "Player 1 throws a :", player1
        print "Player 2 throws a :", player2
        print "Player 1 Win"
        bankroll + 1
        bankroll2 -1
        print bankroll
        print bankroll2
    elif player1 < player2:
        print "Player 1 throws a :", player1
        print "Player 2 throws a :", player2
        print "Player 2 Win"
        print bankroll
        print bankroll2
    else:
        print "Player 1 throws a :", player1
        print "Player 2 throws a :", player2
        print "It's a tie!"
        print bankroll
        print bankroll2
    print ""



player()
player()
player()
player()
player()
player()
player()

现在的资金总是重新启动到10,我明白为什么,但我不知道如何避免它。我的目标是跟踪资金。你知道吗

如果有人能给我指出正确的方向,我将不胜感激。你知道吗


Tags: 代码random经验编程语言winplayer资金print
3条回答

要将bankroll设置为不同的值,请使用赋值运算符(=),例如bankroll = bankroll + 5。还有一些类似的增广赋值运算符,如bankroll += 5。你知道吗

现在,赋值给函数中的变量使其成为局部变量,全局变量则在该函数中被忽略。因此,您还必须告诉Python它是一个全局函数,不需要在该函数中使用global bankroll的本地函数。你知道吗

如果不更改bankroll任何地方,bankroll + 1将一个值添加到bankroll然后返回值,但不更改bankroll

试试bankroll = bankroll + 1,或者用更短的形式bankroll += 1bankroll2相同,请尝试bankroll2 += -1

当然,如果你坚持在模块中使用全局变量:

def player():
    global bankroll
    global bankroll2
    # This will allow your function to access and change the bankroll vars you defined 

也许在下一个项目中,您可以尝试OOP来避免使用globals,因为您的代码很快就会变得混乱,请尝试以下Avoid using global without confusing new programming students in Python?

在这里使用class Player似乎很方便,因为您需要实例化player1、player2等

bankroll + 1只计算,但不处理结果。您需要将它赋回一个变量,例如bankroll = bankroll + 1,或者(更简洁地说)bankroll += 1。你知道吗

然而,这导致了一个新的问题:player是一个有自己局部变量作用域的函数。因此,您应该将起始银行卷传递给它,并从中返回结果:

def player(br1, br2):
    player1 = random.randrange(0, 5)
    player2 = random.randrange(0, 5)
    if player1 > player2:
        print "Player 1 throws a :", player1
        print "Player 2 throws a :", player2
        print "Player 1 Win"
        br += 1
        br2 -= 1
        print br
        print br2
    # etc.
    return br, br2

那就叫它bankroll, bankroll2 = player(bankroll, bankroll2)。你知道吗

相关问题 更多 >