【问题标题】:What is wrong with my print function?我的打印功能有什么问题?
【发布时间】:2018-02-19 03:51:37
【问题描述】:

我正在介绍 Anaconda 课程,我需要编写一个程序来确定掷骰子在一定数量的面上落下多少次。但是,我无法让它正确打印我的答案。

【问题讨论】:

  • 您可能希望编辑它以包含脚本和错误。
  • 好了,谢谢!
  • 您确实应该将脚本和错误消息作为文本包含在您的问题中,以便我们可以复制并粘贴到我们自己的 Python 编辑器中。只需从编辑器或终端复制并粘贴到您的问题中,突出显示它,然后单击看起来像 {} 的键或在 Windows 中按 Ctrl-K。

标签: python printing anaconda


【解决方案1】:

来自 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)

附:不用贴图,下次复制粘贴你的代码,方便我们复制粘贴测试。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 2015-05-27
      • 2018-03-22
      • 1970-01-01
      相关资源
      最近更新 更多