我刚开始用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,我明白为什么,但我不知道如何避免它。我的目标是跟踪资金。你知道吗
如果有人能给我指出正确的方向,我将不胜感激。你知道吗
要将
bankroll
设置为不同的值,请使用赋值运算符(=
),例如bankroll = bankroll + 5
。还有一些类似的增广赋值运算符,如bankroll += 5
。你知道吗现在,赋值给函数中的变量使其成为局部变量,全局变量则在该函数中被忽略。因此,您还必须告诉Python它是一个全局函数,不需要在该函数中使用
global bankroll
的本地函数。你知道吗如果不更改
bankroll
任何地方,bankroll + 1
将一个值添加到bankroll
然后返回值,但不更改bankroll
试试
bankroll = bankroll + 1
,或者用更短的形式bankroll += 1
与bankroll2
相同,请尝试bankroll2 += -1
当然,如果你坚持在模块中使用全局变量:
也许在下一个项目中,您可以尝试OOP来避免使用globals,因为您的代码很快就会变得混乱,请尝试以下Avoid using global without confusing new programming students in Python?
在这里使用
class Player
似乎很方便,因为您需要实例化player1、player2等bankroll + 1
只计算,但不处理结果。您需要将它赋回一个变量,例如bankroll = bankroll + 1
,或者(更简洁地说)bankroll += 1
。你知道吗然而,这导致了一个新的问题:
player
是一个有自己局部变量作用域的函数。因此,您应该将起始银行卷传递给它,并从中返回结果:那就叫它
bankroll, bankroll2 = player(bankroll, bankroll2)
。你知道吗相关问题 更多 >
编程相关推荐