我的打印功能有什么问题?

时间:2017-09-11 00:03:33

标签: python printing anaconda

我正在介绍Anaconda课程,我需要编写一个程序来确定骰子滚动到一定数量的脸上的次数。但是,我无法正确打印我的答案。

image1

image2

2 个答案:

答案 0 :(得分:0)

您的问题是您的打印声明。您尝试打印一个字符串然后打印一个名为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,并且您甚至没有定义该变量。

答案 1 :(得分:0)

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

  

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

如您所见,endprint()函数的参数之一,默认情况下为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粘贴复制到测试中。