循环意外退出 Python

Loop exits unexpectedly Python

我正在制作一个程序,它使用 ASCII 艺术编写的 A-Z 文件。该程序需要 3 行输入:高度、宽度和要写入的单词(全部大写和空格)。我已经设法让程序打印迭代的第一个字母,但由于某种原因,我设置的 for 循环似乎刚刚停止。

temp = []
hi = input('Height: ')
wi = input('Width: ')
tx = input('Text: ')
fi = open("font.txt")
for n in range(len(tx)):
    for i in tx:
        temp = cd[i]
        var1 = int(temp[0])
        ra1 = (var1 * int(hi))
        ra1n = (ra1 + int(hi))
        temp = []
        lines = fi.readlines()
        print(''.join(lines[ra1:ra1n]), end='')

这是它输出的内容

Height: 8
Width: 9
Text: WOW

|\     /|
| )   ( |
| | _ | |
| |( )| |
| || || |
| () () |
(_______)

您正在尝试重读 font.txt 而不倒回文件位置。

要么添加一个file.seek(0)调用,要么在循环外一次读取文件;在循环外使用 lines = fi.readlines() 比每次都使用 fi.seek(0) 更有效。

你的循环也太多了;你不需要在这里遍历 range(len(tx)),因为你已经遍历了 tx 本身。

with open("font.txt") as fi:
    lines = fi.readlines()

for character in tx:
    var1 = int(cd[character])
    ra1 = (var1 * int(hi))
    ra1n = (ra1 + int(hi))
    print(''.join(lines[ra1:ra1n]), end='')

lines = fi.readlines() 之前的循环中尝试 file.seek(0)

    temp = []
    hi = input('Height: ')
    wi = input('Width: ')
    tx = input('Text: ')
    fi = open("font.txt")
    for n in range(len(tx)):
        for i in tx:
            temp = cd[i]
            var1 = int(temp[0])
            ra1 = (var1 * int(hi))
            ra1n = (ra1 + int(hi))
            temp = []
            fi.seek(0) # Here
            lines = fi.readlines()
            print(''.join(lines[ra1:ra1n]), end='')

或打开 file 循环。

temp = []
hi = input('Height: ')
wi = input('Width: ')
tx = input('Text: ')
for n in range(len(tx)):
    for i in tx:
        temp = cd[i]
        var1 = int(temp[0])
        ra1 = (var1 * int(hi))
        ra1n = (ra1 + int(hi))
        temp = []
        fi = open("font.txt") # Here
        lines = fi.readlines()
        print(''.join(lines[ra1:ra1n]), end='')