我必须编写一个脚本来执行此操作:
输入文件:
名称
10
-43
54名称2
654
43
2
-5467
名称
3
65
65
输出文件:
名称 21 名称 2
-4768名称 3
130
我得出的结论是,我应该将输入拆分为名称处的数组,然后打印第一个元素和其余元素的总和,但我不知道该怎么做,我还没有真正找到任何关于这个的东西在网上。
一些提示:
>>> int('Name1')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Name1'
>>> int('-43')
-43
这应该可以帮助您弄清楚什么是字符串,什么不是。它还将您的输入转换为您的数字。
了解如何捕获错误 ( try
, except
)。
了解如何逐行读取文件。尝试遍历文件;)
其余的是基本的编程逻辑。自己弄清楚会给你带来最大的收益。
使用逐行遍历文件
for line in open('test.txt'):
# do stuff
当你找到一个名字时,你需要开始将每个数字加到一个总和中,直到你遇到一个不同的名字,然后你又开始从零开始对这些数字求和。
打开文件并使用 readline 逐行打开文件。检查它是否是字符串。通过查看您的文件格式,我假设两个字符串(Name1 和 Name2 或其他)之间的所有内容都是数字,因此将它们存储在列表中。最后使用 sum(list) 得到输出。我没有写代码,因为这是“家庭作业”。