你有几个问题。
首先,在读取文件时,你应该指定模式(这不是必需的,但可以大大帮助澄清意图)。在这种情况下,为了读取,请执行以下操作:
open("file_x.txt", "r")
接下来,在读取文件时,您需要确保在完成后关闭它。您应该使用with
来实现:
with open("file_x.txt", "r") as in_file:
lines = in_file.readlines()
您没有循环输出行,而是循环读取已经打开的文件in_file
。请改为:
for line in lines:
您没有使用字符串来检查该行,而是使用了变量 d ,它是一个整数
0
。请更改为
"d"
。
if "d" in line:
现在大家一起:
with open("file_x.txt", "r") as in_file:
lines = in_file.readlines()
d = 0
for line in lines:
if "d" in line:
d += 1
print(d)
另一个错误。如果你想要计算所有出现的次数而不仅仅是包含该字母的行数,你需要使用str.count
。此外,如果你直接循环读取文件,就可以避免调用readline
:
d = 0
with open("file_x.txt", "r") as in_file:
for line in in_file:
d += line.count("d")
print(d)
使用sum
函数和生成器表达式可以进一步简化:
with open("file_x.txt", "r") as in_file:
d = sum(line.count("d") for line in in_file)
print(d)
d
在一行中:在此处,d
是您之前声明的整数变量。请使用“'d'”。 - sittseringin_file
。 - cadolphsfor line in in_file: d+=line.count('d')
- sittseringfor line in in_file: for i in line: if i=='d': d+=1
- sittsering