【问题标题】:Print a string in python like how dot-matrix printer works在 python 中打印一个字符串,就像点阵打印机的工作方式一样
【发布时间】:2021-01-31 14:21:28
【问题描述】:

我想使用“*”或任何其他给定的特殊字符(例如点阵打印机的工作原理)打印任何英文字母。

我可以想出一个函数def printLetters(string, font_size, special_char):,当它与任何字母一起传递时,会使用指定的特殊字符打印该字母。

考虑字母“A”:

def printLetters('A', 10, '&'):   # would print the letter A within a 10x10 matrix using '&'

 &&&&&&&&
&        &
&        &
&        &
&&&&&&&&&&
&        &
&        &
&        &
&        &
&        &

以及每个字符的此类代码 sn-ps。 'A' 示例:

FUNCTION_TO_PRINT_A:
    space = ' '
    #print first line
    print('', special_char*(font_size-2))
    for i in range(1, font_size-1):
        #print(i)
        if font_size//2 == i:
            print(special_char*(font_size))
        print(special_char, space*(font_size-2), special_char, sep = '')

printLetters('A', 10, "&")

但是当参数string 有多个字符时,它会在第一个字符后打印乱码。
所以我只是想要一些想法/code-sn-ps,它会首先打印string 中所有字符的第一行,依此类推直到最后一行,以便所有这些 characters 并排排列水平放置在控制台上。

【问题讨论】:

    标签: python-3.x design-patterns dot-matrix


    【解决方案1】:

    啊,美好的回忆。在 GUI 出现之前,我们曾经一直在做这种事情。你想单独定义每个字母的形状很好,但是制作一个单独的函数来打印每个字母显然没有用。一个字母打印了 N 行之后,就没有办法回到顶部了。

    你知道你需要打印所有字母的第一行,然后是所有字母的第二行,等等。我不想给你写一个完整的例子,因为学习如何计算对你来说非常重要这种事情出来了,但你为什么不从这样的事情开始:

    font = {
        'A': [
            ' ###  ',
            '#   # ',
            '##### ',
            '#   # ',
            '#   # '
        ],
        'B': [
            '####  ',
            '#   # ',
            '####  ',
            '#   # ',
            '####  '
        ],
        ...etc...
    }
    

    【讨论】:

    • 嗨,马特。谢谢回复。但是像你一样在font变量中声明字母,我将无法以自定义字体大小打印字母。我也不想要任何特定的代码。我只是想知道如何在任何给定的自定义字符串中以自定义字体大小和特殊字符打印字母。所以我必须为每个字母编写这样的函数,并调用它来打印字符串的一个字符。但不知道如何逐行打印。
    • 啊,您想打印自定义尺寸...即使在这种情况下,我实际上也会以相同的方式定义字体,但打印部分会有些困难。特殊字符没有问题——仅仅因为字体说“#”并不意味着你必须打印相同的字符。
    • 那么,你将如何以自定义字体大小打印一个字母(font_size = 5font_size = 15 怎么样)。我怎样才能使用你的方法,同时,它是否可行一次打印一行。感谢您的建议。
    • 已经是 size=5。例如,要打印尺寸 15,将每行和每列三倍,然后添加一些逻辑来平滑粗角。对于不是 5 的倍数的大小,请明智地决定哪些行和列比其他的大 1 - 有 5 种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多