使用循环时显示“字符串索引超出范围”

我正在尝试编写一个代码,使每行的第一个字母都大写,但它无法执行到第 6 行之后if l[0].islower():。当它l[0]在循环之外时工作正常,但当我将其放回循环中时总是显示“字符串索引超出范围”。


m = open(r"C:\Users\■■■■■■\Desktop\■■■■\other.txt","r", encoding = "utf-8") #Just blocking the text out


while True:

    l = m.readline()


    if l[0].islower():

        l.replace(l[0],l[0].upper())

        

    print(l)

    

    if not l:

        break

m.close()


繁星点点滴滴
浏览 126回答 3
3回答

芜湖不芜

您还可以更轻松地逐行迭代文件。path = r"other.txt"with open(path, 'r') as file:    for line in file:        print(line.capitalize())

元芳怎么了

l[0]将检查放在循环的开头而不是结尾,因为即使lis也会继续访问None。while True:    l = m.readline()    if not l:        break    if l[0].islower():        l.replace(l[0],l[0].upper())            print(l)    m.close()

SMILET

with open("content.txt", 'r') as file:    while 1:        content = file.readline()        if not content:            break        print(content.capitalize())print("Done !")你可以用这个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python