ctn =0
myfile = open("lab3.txt")
lines = myfile.readlines
for item in myfile:
ctn += item
print(int(ctn))
TypeError:+ =不支持的操作数类型:“ int”和“ str”
答案 0 :(得分:0)
您的商品未声明您的代码为int。尝试解析它。
int ctn = 0
myfile = open("lab3.txt")
lines = myfile.readlines
for item in myfile:
ctn += int(item)
print(ctn)
答案 1 :(得分:0)
“对文件的内容求和”到底是什么意思?您是否将所有数字加到名为“ lab3.txt”的文件中?
要将文件的内容存储在变量中,可以使用myfile.readlines()
。 (不是myfile.readlines
-括号是必需的。如果不使用括号,则该语句将不读取任何内容。)或使用for
块在文件的第一行中遍历文件的内容。时间。 但不是两者,如ShadowRanger的评论所述。
假设“ lab3.txt”包含以下几行。
84
236
956
31
163
538
4
861
要找到他们的总和,您可以执行以下操作。
ctn = 0
myfile = open('lab3.txt')
for item in myfile:
ctn += int(item) # convert string to integer
print(ctn)
在这里,item
将顺序获取文件中每一行的(字符串)值。它将转换为整数并添加到ctn
。
readlines
返回一个列表。 (该列表的每个元素都是一个字符串,字符串是文件中的行。)如果必须使用readlines
,则必须将列表中的元素转换为整数。
myfile = open('lab3.txt')
lines = myfile.readlines()
lines_int = [int(item) for item in lines]
ctn = sum(lines_int)
print(ctn)
别忘了关闭文件。
myfile.close()
如果使用文件上下文,则不必为此close
操心。观察如何将代码减少到只有两行。
with open('lab3.txt') as myfile:
ctn = sum([int(item) for item in myfile.readlines()])