【问题标题】:Printing out digits to the console将数字打印到控制台
【发布时间】:2014-12-22 12:51:21
【问题描述】:

我想编写一个程序,它接受一个数字并将它的图形表示打印到控制台。例如,输入 123 我应该期望得到:

这是我尝试实现它的方法,从实现 onetwo 开始。

def g (n):
    n = list(str(n))
    dic = { '1': """1   
                  1
                  1
                  1
                  1
                  1
                  1
                  """,
            '2': """2222
                      2
                       2
                       2
                  2  2
                2
                2
                2
                  22222"""
            }
    for i in n:
        print(dic[i])

但是我得到了输入“121”:

>>> 
>>> g(121)
1   
                  1
                  1
                  1
                  1
                  1
                  1

2222
                      2
                       2
                       2
                  2  2
                2
                2
                2
                  22222
1   
                  1
                  1
                  1
                  1
                  1
                  1

更新:我更正了语法错误。谢谢。我仍然得到一个有点奇怪的结果。

【问题讨论】:

  • 您在字典中使用了分号。使用,
  • 它也不起作用,因为它会在新行中打印每个数字。您必须在打印前准备好每一行文本。
  • 我更正了语法错误。我仍然得到一个奇怪的结果。
  • 要打印 ascii-art,您可以使用 figlet,例如 print(pyfiglet.figlet_format('1234', font='doh'))。另一个code example

标签: python string python-3.x


【解决方案1】:

python 中的"""text""" 语法意味着您输入的每个字符都将包含在字符串中,包括空格。因此,如果您缩进文本中的数字,则空格将包含在字符串中并被打印出来,这就是为什么您会看到数字离右边很远。

也就是说,由于控制台的工作方式,您的算法仍然无法正常工作。打印某些内容时,您会逐行打印每一行。您不能使用打印功能打印第一行的一部分,第二行的一部分,然后打印上一行的第二部分。一旦打印了一行,就无法返回。

你应该把它变成这样:

for i in range(NUMBER_OF_LINES):
    s = ""
    for j in n:
        s += dic[j].split('\n')[i]  # There are more efficient ways to do this part...
    print(s)

顺便说一句,如果需要不换行打印,可以这样使用:print("Hello World!", end="")

【讨论】:

  • 不幸的是,当我应用你的算法时,我仍然得到同样奇怪的外观。在第一行,字符被推到左下角。
  • 你修复了缩进吗?
  • 实际上,您可以使用 blessings(定位 ANSI 代码)和 colorama(Windows 支持)包返回。虽然您不需要打印数字。
猜你喜欢
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
  • 2016-09-21
相关资源
最近更新 更多