【发布时间】:2016-04-15 18:03:34
【问题描述】:
我正在学习 python 并尝试在函数中编写我的代码。
## set total sticks number
stick_left = 20
## Given hints, this for statement shows sticks
for _ in range(5): print('| '*stick_left)
## this condition lasts until stick = 0
while stick_left>0:
## first player
first_player=input('Player1: please pick sticks up to 3 ')
if first_player>3 or first_player<0:
print('Please pick between 1-3 stick(s)')
else:
stick_left-=first_player
if stick_left<=0:
print ('Player1 lost')
break
else:
print('There is %d stick(s) left' %stick_left) ## print how many sticks left
for _ in range(5): print('| ' * stick_left)
## second player
second_player = input('Player2: Please pick sticks up to 3 ')
if second_player > 3 or second_player < 0:
print('Please pick between 1-3 stick(s)')
else:
stick_left -= second_player
if stick_left <= 0:
print ('Player2 lost')
break
else:
print('There is %d stick(s) left' % stick_left)
for _ in range(5): print('| ' * stick_left)
这是我的代码包含函数
player =0
def player():
for i in 2:
player%d %i= input('Player %d: Please pick sticks up to 3' %i)
if player >3 or player <0:
print('Please pick between 1-3 stick(s)')
在第 4 行,我想让它打印 player1 player2,但我只是注意到我不能像那样分配运算符。
我试过player_%d %i,但没有运气。有人可以给我建议吗?
谢谢!
【问题讨论】:
-
你不能有一个名为
player的变量和一个同名的函数 -
@ForceBru 你可以,它只会重新定义变量。所以函数内部的
player将引用函数,而不是0。 -
@TuomasLaakkonen,所以这会导致混乱并做一些 OP 不想要的事情
-
在此处使用列表;一般情况见this question