Python 巨蟒骰子滚轴-我如何合计所有骰子?

Python 巨蟒骰子滚轴-我如何合计所有骰子?,python,Python,我想得到骰子结果的总数: import random min = 1 max = 6 numDices = 0 roll_again = "yes" sum = 0 while roll_again == "yes" or roll_again == "y": numDices = int(raw_input("how many dices ")) for i in range(numDices): dicesArray = list(range(numDic

我想得到骰子结果的总数:

import random
min = 1
max = 6

numDices = 0
roll_again = "yes"
sum = 0

while roll_again == "yes" or roll_again == "y":
    numDices = int(raw_input("how many dices "))
    for i in range(numDices):
        dicesArray = list(range(numDices))
        dicesArray[i] = random.randint(min, max)
        print(dicesArray[i])
        sum += dicesArray[i]
        print("sum ", sum)

    roll_again = raw_input("Roll the dices again? ")
但当我运行代码时,我得到了以下信息:

how many dices 3
4
('sum ', 4)
2
('sum ', 6)
6
('sum ', 12)
Roll the dices again? 
另外,我如何限制用户最多掷1到5个骰子


非常感谢Python专家

您需要检查并确保
numDices
保持在1到6之间。在进入
for
循环之前,可以通过添加
if
条件来实现

import random
min = 1
max = 6

numDices = 0
roll_again = "yes"
sum = 0

while roll_again == "yes" or roll_again == "y":
    numDices = int(raw_input("how many dices "))
    if numDices < 1 or numDices > 6:
        print ("Invalid range. You can roll only between 1 and 5 times.")
        continue
    for i in range(numDices):
        dicesArray = list(range(numDices))
        dicesArray[i] = random.randint(min, max)
        print(dicesArray[i])
        sum += dicesArray[i]
        print("sum ", sum)

    roll_again = raw_input("Roll the dices again? ")
随机导入
最小值=1
最大值=6
数值=0
再次滚动=“是”
总和=0
当再次滚动=是或再次滚动=y时:
numDices=int(原始输入(“多少骰子”))
如果数值小于1或大于6:
打印(“无效范围。只能滚动1到5次。”)
持续
对于范围内的i(numDices):
dicesArray=列表(范围(numDices))
dicesArray[i]=random.randint(最小值,最大值)
打印(dicesArray[i])
sum+=dicesArray[i]
打印(“总和”,总和)
再次掷骰子=原始输入(“再次掷骰子?”)

您应该更改
打印(“sum”)语句的缩进,以便只打印最终的sum。还添加一个骰子编号检查,如下所示

import random
min = 1
max = 6

numDices = 0
roll_again = "yes"

# Greeting here
print("Welcome to the dice rolling program!")
raw_input("Press any key to continue...")

while roll_again == "yes" or roll_again == "y":
    sum = 0 # sum should be inside while loop
    numDices = int(raw_input("How many dice? "))
    if (numDices < 1 or numDices > 5):
        print("Allowed number of dice is 1 - 5. Please choose again.")
        continue
    for i in range(numDices):
        dicesArray = list(range(numDices))
        dicesArray[i] = random.randint(min, max)
        print(dicesArray[i])
        sum += dicesArray[i]
    print("sum: " + str(sum))

    roll_again = raw_input("Roll the dice again? ")
随机导入
最小值=1
最大值=6
数值=0
再次滚动=“是”
#在这里问候
打印(“欢迎使用掷骰子程序!”)
原始输入(“按任意键继续…”)
当再次滚动=是或再次滚动=y时:
sum=0#sum应该在while循环中
numDices=int(原始输入(“多少个骰子?”)
如果(数值小于1或大于5):
打印(“允许的骰子数量为1-5。请重新选择。”)
持续
对于范围内的i(numDices):
dicesArray=列表(范围(numDices))
dicesArray[i]=random.randint(最小值,最大值)
打印(dicesArray[i])
sum+=dicesArray[i]
打印(“总和:+str(总和))
再次掷骰子=原始输入(“再次掷骰子?”)

谢谢@Swazy,它很管用!,你知道如何用问候语启动程序并正常运行程序吗?我也试着用瑞典语写问题,但当我使用:å、ä和ö字符时,会出现编码错误,它在第19行的dice_roller_preject.py文件中显示:SyntaxError:非ASCII字符“\xc3”,但是没有编码declared@RicardoLinares-我对我的答案做了一些修改。问候可以像我用
print
raw\u input
语句显示的那样进行。我还意识到,
sum
变量可能应该在while循环中(如图所示),否则如果用户反复滚动,它将继续累积!如果您想打印像å和ä等字符,那么最好开始使用Python 3,而不是Python 2(您目前正在使用Python 2)。Python3将字符串存储为Unicode,Unicode可以处理这样的字符。注意:如果您确实开始使用Python 3,则需要将代码中的所有
raw\u输入
s替换为
input
s(函数重新命名)。希望有帮助!