2017-09-11 33 views
-8

我在介绍Anaconda类,我需要编写一个程序来确定一个骰子掷几次落在一定数量的面上。但是,我无法正确打印我的答案。我的打印功能有什么问题?

image1

image2

+5

您可能希望对其进行编辑以包含脚本和错误。 – Vandal

+0

我们走了,谢谢! – Jakspigot

+6

你真的应该在脚本中包含脚本和错误信息,所以我们可以复制并粘贴到我们自己的Python编辑器中。只需从您的编辑器或终端复制并粘贴到您的问题中,突出显示它,然后单击“{}”键或在Windows中按Ctrl-K。 –

回答

0

你的问题是你的print语句。您尝试打印一个字符串,然后输入另一个字符串,然后输入end,等等。我想你想让end成为行尾字符。

,而不是打印像

print("a string" end "another string" end "a third string") 

使用

print("a string\n" "another string\n" "a third string") 

注意"\n"的是结束行的字符在Python。我的代码还使用Python的一个功能,您可以将字符串文字放在一起放置。让我们更清楚地看到各条线。你的代码失败了,因为你试图用字符串变量这样做,即end,并且你甚至没有定义该变量。

0

从Python文档:https://docs.python.org/3/library/functions.html#print

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

正如你所看到的,end对于print()函数的参数之一,默认情况下,end=’\n’。因此,要正确地使用它,你只需要改变end变量(可能无法直接适用于您的代码)

下面是一些例子:

>>> for i in range(3): 
    print(i, end =' ') 


0 1 2 
>>> for i in range(3): 
    print(i, end ='') 


012 
>>> for i in range(3): 
    print(i) # by default end=\n 


0 
1 
2 
>>> 

还有,如果我理解你的逻辑正确地说,相同的代码可以像这样重写。

import random 

RollDice = int(input("Number of Rolls:")) 
numbers = [0 for _ in range(6)] # array of 6 spaces with int 0 

for i in range(RollDice): 
    Roll = random.randint(1,6) 
    numbers[Roll-1] += 1 # the array index starts from 0 hence you need Roll-1 

plusMinus = "+-----"*6 + "+\n" # since you are repeating this you might want to assign it to a variable 
print(plusMinus + "| 1 | 2 | 3 | 4 | 5 | 6 |\n" + "| " + " | ".join(map(str,numbers)) + " |\n" + plusMinus) 

P.S.下一次请复制并粘贴您的代码,而不是附加图片,以便我们可以复制n张粘贴以进行测试。