为了账号安全,请及时绑定邮箱和手机立即绑定

从文件中读取值

从文件中读取值

明月笑刀无情 2022-09-20 15:53:02
我的任务是从,txt文件中读取10个数字,然后打印它们的总和:f = open("data.txt", "r")sumofn=0for i in range(1, 10):    x = f.readline(i)    x = int(x)    sumofn += xprint(sumofn)不幸的是,我得到这个错误:值错误: 以 10 为基数的 int() 的无效文本:“\n”
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

这是简单的解决方案。如果您的值以逗号分隔,则可以使用 split() 方法:


f = open("data.txt", "r")

sumofn = 0

for i in range(1, 10):

    for x in f.readlines():

            x = int(x)

            sumofn += x


print(sumofn)

这里也是拆分()方法。如果您的值以逗号分隔,以空格分隔,则使用它:


f = open("data.txt", "r")

sumofn = 0

for i in range(1, 10):

    for x in f.readlines():

        y = x.split(',')

        for x in y:

            x = int(x)

            sumofn += x


print(sumofn)


查看完整回答
反对 回复 2022-09-20
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我猜你的文件有int值只是因为你使用了 转换 。在这种情况下,您可以简单地使用正则表达式模式(而不是 ),但以下代码涵盖了文件包含浮点值的情况。int()r'\d+'r'\d+(\.\d+)?'


import re

result = 0

with open('data.txt', 'r') with f:

    line = f.readline()

    match = re.search(r'\d+(\.\d+)?', line)

    if match:

        result += float(match.group())

print(result)

请试一试。


查看完整回答
反对 回复 2022-09-20
?
慕斯王

TA贡献1864条经验 获得超2个赞

正则表达式是你最好的朋友

with open('data.txt', 'r') as f: 
   print(sum([int(i) for i in f.read().split('\n') if i != '']))

顺便说一句,“\n”表示它是一个换行符;输入您在写入文本文件时按下。因为当您读取文件时,它具有“\n”。


查看完整回答
反对 回复 2022-09-20
  • 3 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信