f=open('text.txt','r') n=0 words=0 lines=0 ls1=[] for i in f.read(): if i!=' ' and i!='\n': n+=1 f.seek(0) for line in f.readlines(): if line!=None and line!='\n': lines+=1 f.seek(0) a=f.read() b=a.replace('\n',' ') ls=b.split(' ') while '' in ls: ls.remove('') words=len(ls) print(n) print(words) print(lines)
时间: 2023-10-26 20:04:50 浏览: 39
这段代码是用来统计一个文本文件中的字符数、单词数和行数的。它打开一个名为 "text.txt" 的文件,然后遍历文件中的每个字符,统计非空格和非换行符的字符数,用变量 n 保存。接着,它重新读取文件,遍历每一行,统计非空白行的行数,用变量 lines 保存。然后,它读取文件的全部内容,把所有换行符替换为空格,然后用空格分割字符串,得到单词列表 ls。最后,它删除 ls 中的空字符串,统计 ls 的长度,用变量 words 保存,然后输出 n、words 和 lines。
相关问题
检查n=eval(input('n=')) def black_hole_num(x): d=str(x) ls=list(d) ls1=ls.sort(reverse=True) ls2=ls.sort(reverse=False) a=''.join(ls1) b=''.join(ls2) c==a-b if c==x: return True else: return False for i in range(0,n+1): if black_hole_num(i): print(i)
您的代码存在几个问题,我来帮您分析一下:
1. 在第4行,您使用了`ls1=ls.sort(reverse=True)` 和 `ls2=ls.sort(reverse=False)`,这两个语句的返回值都是None,因为sort()方法是对原列表进行排序,而不是返回一个新的列表。您可以改为`ls1=sorted(ls,reverse=True)` 和 `ls2=sorted(ls,reverse=False)`。
2. 在第6行,您使用了`c==a-b`,应该使用`c=int(a)-int(b)`,而且变量c应该在第5行进行定义,而不是在第6行。
3. 在第7行,应该使用`if c==int(x):`,而不是`if c==x:`。
下面是修改后的代码:
```
n=eval(input('n='))
def black_hole_num(x):
d=str(x)
ls=list(d)
ls1=sorted(ls,reverse=True)
ls2=sorted(ls,reverse=False)
a=''.join(ls1)
b=''.join(ls2)
c=int(a)-int(b)
if c==int(x):
return True
else:
return False
for i in range(0,n+1):
if black_hole_num(i):
print(i)
```
希望对您有帮助!
列表ls1=[30,1,2,0],ls2比较
ls1=[30,1,2,],ls2比较:
这句话不太清楚是要比较什么,如果是要比较两个列表的大小,可以用以下方法:
1. 比较长度:如果两个列表长度不同,那么长度长的列表就比较大。
2. 逐个比较元素:从第一个元素开始比较,如果相同则比较下一个,如果不同则比较大小,大的列表就比较大。
根据以上方法,可以得出以下结论:
ls1=[30,1,2,],ls2比较大小:
如果ls2是空列表,则ls1比较大。
如果ls2=[1,2,3],则ls1比较小。
如果ls2=[30,1,2,,5],则ls1和ls2相等。
如果ls2=[30,1,2],则ls1比较大。