Python实现TXT文件平均单词计数遇语法与类型错误求助
修正后的代码及问题解决说明
先针对你遇到的问题逐一解决,同时优化逻辑完成需求:
- 语法错误修复:
letters=letters+=1是非法赋值写法,直接改成letters += 1或者letters = letters + 1即可。 - 类型错误修复:你当前循环的是
words里的每个单词(字符串),不是单个字符,所以无法和ASCII码整数比较。需要先遍历每个单词,再循环单词中的每个字符。 - 优化字母判断:用字符串自带的
isalpha()方法直接判断是否为大小写字母,比手动判断ASCII码更简洁可靠。 - 补充计数逻辑:要计算平均单词相关指标,需要同时统计总字母数和总单词数(或总行数,根据你实际需求调整)。
- 规范文件操作:用
with语句自动管理文件,避免忘记关闭文件导致资源泄漏。
如果你的需求是「计算每个单词的平均字母数」
total_letters = 0 total_words = 0 with open("apple.txt", "r") as file: for line in file: words = line.split() total_words += len(words) # 统计文件总单词数 for word in words: for char in word: if char.isalpha(): # 仅统计大小写字母 total_letters += 1 # 避免除以0的情况 if total_words > 0: average = total_letters / total_words print(f"平均每个单词的字母数:{average:.2f}") else: print("文件中没有有效单词")
如果你的需求是「计算文件的平均每行单词数」
total_words = 0 line_count = 0 with open("apple.txt", "r") as file: for line in file: line_count += 1 words = line.split() total_words += len(words) if line_count > 0: average = total_words / line_count print(f"平均每行单词数:{average:.2f}") else: print("文件为空")
内容的提问来源于stack exchange,提问作者user20232221
相关产品推荐
相关产品推荐

