如何打印出文件中的所有大写字符串

我遇到的问题是它没有打印出任何东西。


我的 if 语句有问题吗?因为它打印了整个txt。当我没有添加 if 语句时的文件。


fname = input('Enter the file name: ')


try:

    fhand = open(fname)

except:

       print('File cannot be opened:', fname)

       exit()


for line in fhand:

    line = line.strip()

    if line.isupper():

        print(line)

该文件包含 HTML、CSS、I/O 和 SQL,它应该打印出所有这些字符串。


largeQ
浏览 229回答 3
3回答

慕后森

您的if语句使用=which 用于赋值,而不是用于比较。而是使用==. 除此之外,它string.isupper()本身就是一个布尔值,因此您会将字符串与布尔值进行比较,这不会产生您想要的结果。

蝴蝶不菲

您可以改用该filter函数:for line in filter(str.isupper, fhand):    print(line)

千巷猫影

要检查相等性,请使用==. 但是,我很确定您正在寻找isupper它本身,而不是检查它是否相等。isupper返回一个布尔值,可以通过您的if语句进行检查:for line in fhand:    line = line.strip()    if line.isupper():        print(line)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python