【问题标题】:My for loop is printing in the wrong order我的 for 循环以错误的顺序打印
【发布时间】:2025-12-25 19:05:09
【问题描述】:

长话短说,我正在制作一个 ASCII 艺术生成器,但我的循环出现了问题。它以错误的顺序打印正确的字母。我的输入循环内部有另一个循环,它应该根据用户输入的每个字母打印艺术品的第一行,但如果这有任何意义,则不会将它们一起打印......

我之前尝试过以下循环并重新排列循环中的语句,我真的认为我只需要一双新鲜的眼睛。

在此之前,对于任何语法、语法错误/没有意义以及缺少信息,我深表歉意。这是我第一次使用溢出,而且我已经很久没有碰过我的 IDE 了。非常感谢任何帮助!

boss = input("Text here: ")
for z in range(len(boss)):

    for i in range(6):
        if boss[z] == 'a':
            print(ASCII["a" + str(i)], end='')
        if boss[z] == 'b':
            print(ASCII["b" + str(i)], end='')
        print('')
    z += 1

这里是字典

ASCII =  {


"a0" : " █████╗ ",
"a1" : "██╔══██╗",
"a2" : "███████║",
"a3" : "██╔══██║",
"a4" : "██║  ██║",
"a5" : "╚═╝  ╚═╝",


"b0" : "██████╗ ",
"b1" : "██╔══██╗",
"b2" : "██████╔╝",
"b3" : "██╔══██╗",
"b4" : "██████╔╝",
"b5" : "╚═════╝ "

}

输入:

Text here: ab

这是所需的输出:

█████╗ ██████╗ 
██╔══██╗██╔══██╗
███████║██████╔╝
██╔══██║██╔══██╗
██║  ██║██████╔╝
╚═╝  ╚═╝╚═════╝ 

这就是我要回来的:

█████╗ 
██╔══██╗
███████║
██╔══██║
██║  ██║
╚═╝  ╚═╝
██████╗ 
██╔══██╗
██████╔╝
██╔══██╗
██████╔╝
╚═════╝ 

仅供参考,如下所示非常很重要:

a0 + b0

打印('')

a1 + b1

打印('')

a2 + b2

 █████╗ ██████╗ 
then
 █████╗ ██████╗ 
██╔══██╗██╔══██╗
then
 █████╗ ██████╗ 
██╔══██╗██╔══██╗
███████║██████╔╝
etc.

【问题讨论】:

  • 你必须合并单独的行,而不是字母

标签: python for-loop ascii-art


【解决方案1】:

外部循环应该遍历图像的行,而内部循环应该遍历输入字符串中的字母:

ASCII =  {

"a0" : " █████╗ ",
"a1" : "██╔══██╗",
"a2" : "███████║",
"a3" : "██╔══██║",
"a4" : "██║  ██║",
"a5" : "╚═╝  ╚═╝",


"b0" : "██████╗ ",
"b1" : "██╔══██╗",
"b2" : "██████╔╝",
"b3" : "██╔══██╗",
"b4" : "██████╔╝",
"b5" : "╚═════╝ "

}

boss = "abba"
for i in range(6):
    for x in boss:
        print(ASCII[x + str(i)], end='')
    print('')

打印出来:

【讨论】:

  • 非常感谢!你也为我节省了很多时间,我最初的想法是写一堆 if 语句 lo