如何让python将几个总数相加并打印出总数
我正在为我的模拟考试编写一些代码,我被困在了必须将所有分数相加,然后打印总分数的部分。代码的目的是让两名玩家掷2个骰子,如果数字相同,他们将掷第三个骰子。然后,代码将模具相加,并根据总数是否可以除以2打印总数。 重复此操作5次后,代码应将所有总计相加,并显示总总计。 但它只打印最后一个总数,并没有将所有5个总数相加。如果有人能帮助我,我将不胜感激,我也为noob的问题感到抱歉。我是新来的如何让python将几个总数相加并打印出总数,python,python-3.x,Python,Python 3.x,我正在为我的模拟考试编写一些代码,我被困在了必须将所有分数相加,然后打印总分数的部分。代码的目的是让两名玩家掷2个骰子,如果数字相同,他们将掷第三个骰子。然后,代码将模具相加,并根据总数是否可以除以2打印总数。 重复此操作5次后,代码应将所有总计相加,并显示总总计。 但它只打印最后一个总数,并没有将所有5个总数相加。如果有人能帮助我,我将不胜感激,我也为noob的问题感到抱歉。我是新来的 import random score = 0
import random
score = 0
for i in range(5):
print ("\n")
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
dice3 = random.randint(1,6)
print ("player 1: roll 1 = ",dice1)
print ("player 1: roll 2 = ",dice2)
if dice1 == dice2:
print ("player 1: roll 3 = ",dice3)
score = dice1+dice2
if dice1 == dice2:
score = dice1+dice2+dice3
if score % 2 == 0:
score = score+10
if score % 2 == 1:
score = score-5
print ("player 1: score = ", score)
print ("\n")
overalltotal = score
print ("total for player 1:", overalltotal)
我希望输出是所有5个分数的总和。然而,实际输出永远只是最后一个分数我认为您需要在for循环的末尾包含overalltotal+=score,而不是在for循环之后设置overalltotal=score。所以你的代码应该是:
import random
score = 0
overalltotal = 0 # <-- initialize here
for i in range(5):
print ("\n")
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
dice3 = random.randint(1,6)
print ("player 1: roll 1 = ",dice1)
print ("player 1: roll 2 = ",dice2)
if dice1 == dice2:
print ("player 1: roll 3 = ",dice3)
score = dice1+dice2
if dice1 == dice2:
score = dice1+dice2+dice3
if score % 2 == 0:
score = score+10
if score % 2 == 1:
score = score-5
print ("player 1: score = ", score)
overalltotal += score # <-- add value of each round here
print ("\n")
print ("total for player 1:", overalltotal)
随机导入
分数=0
您的问题不是Python,而是程序逻辑。用一张纸和一支铅笔首先描述应该做什么,一步一步地进行测试、循环和分块。然后在不同的用例中遵循纸上的流程。当您认为它应该工作时,将其转换为Python代码,添加跟踪打印以控制发生的情况并运行。你应该能自己解决一切问题
作为应该修复或改进的提示:
- 2个不同的
如果dice1==dice2:
测试一个接一个。最好在普通的测试之外进行分组(score=dice1+dice2
),而不是对特定的测试使用单一测试(score+=dice3
)
打印(“玩家1:score=,score)
在if块内。如果分数%2!=1
。这真的值得吗
- 在主循环之前初始化
overalltotal
,并在循环内部用score
增加它
- 您的代码总是计算dice3,即使没有使用它。如果dice1==dice2:
块,为什么不只在块中计算它呢
如果你想改变你提到的分数,那么你必须改变你的陈述
score = dice1+dice2 --> score += dice1+dice2 (do this for dice things)
score = score+10 --> score += 10 (for score things)
score = score-5 --> score -= 5 (for score things)
score=score+dice1+dice2
和score=score+dice1+dice2+dice3
初学者注意:a+=b
大致相当于a=a+b
。对于-=
,*=
等,情况也一样(不完全相同,因为这是一个就地修改;有关详细信息,请参阅)