python的len函数

len()函数不是求字符串的长度吗,为什么这里面的len可以和文件中的行数进行比较

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

你这个代码有问题吧, 应该是

length = len(f.readlines())

这样才能得行数

len在传入对象实现了__len__方法时调用该方法返回对象长度,未实现__len__方法时调用对象__next__方法求其长度
上述代码中length返回的仅是传入的file字符串长度,亦不可改为len(f)或len(f.readlines()),此举调用__next__,是迭代器f中元素耗尽影响后续打印,可考虑先将其结果暂存至另一对象,如f_tmp = f.readlines(),后续在f_tmp上进行操作

你代码写错喽。你第三句用的 len(file),你最下面不是输入个文件名么,这时候你输入的是个字符串,你用len计算的是这个字符串的长度,不是文件的内容的长度。
len不能对文件操作,你第二句不是打开文件了么,必须在写一句 readline 把内容读进来,然后再用len