您需要从每个函数返回新分数:
def six(score):
print('you rolled a 6')
print('''
-------
| o o |
| o o |
| o o |
------- ''')
score += 6
return score
但是呼叫站点必须是这样的:
player_1_score = five(player_1_score)
Ned Batchelder强制链接到names。
,
您可以单独更新分数,即不在“掷骰子”功能中。我认为在此阶段它更具可读性。稍后,当您学习Python时,可能会用Player
类和映射(数字1到6)->(将骰子作为字符串)来解决问题。
def six():
print('you rolled a 6')
print('''\
-------
| o o |
| o o |
| o o |
------- ''')
return 6
def five():
print('you rolled a 5')
print('''\
-------
| o o |
| o |
| o o |
------- ''')
return 5
player_1_score = 0
player_2_score = 0
#for player1
player_1_score += five()
player_1_score += six()
#for player2
player_2_score += five() + six()
print('scores:',player_1_score,player_2_score)
注意:我在print('''\
)语句中添加了一个反斜杠,以摆脱空白行。我更喜欢它,但您可能更喜欢空白行。
,
您想要更改玩家的分数,但您也没有对其进行修改。您正在发送玩家的分数,但是如果您在功能(six
和five
)中更改分数,则不会修改原始分数。如果要修改原始分数,则可以从函数中返回score
并将其分配给播放器的分数。例如:
def five(score):
print('you rolled a 5')
print('''
-------
| o o |
| o |
| o o |
------- ''')
score+=5
return score
#for player1
player_1_score=five(player_1_score)
print('p1 score:',int(player_1_score))
,
将参数传递给score
和five(score)
的{{1}}参数会在每个函数的范围内创建一个six(score)
变量。因此,当程序调用{{1}}时,score
的值将复制到five(player_1_score)
。您需要
-
修改每个函数以返回player_1_score
值
-
将每个函数的输出分配给每个外部范围变量
score
本文链接:https://www.f2er.com/3128290.html