编写一个程序,从文件中输入一个数字列表并打印它们的总和。文件名作为命令行参数出现。假设文件" orange"包含数字:
6 26 10 8
您的程序应该表现如下:
python3 a4.py orange
50
我目前的代码:
from scanner import *
def main():
s = Scanner("orange")
print(sum(float(x) for x in sys.argv[1:]))
s.close()
main()
为了我的代码,我需要实现一个正确的扫描仪?但是,当我使用扫描程序运行更新的代码时,它会返回cannot convert string to float: orange
。对不起,如果这是一个愚蠢的问题,但我参加了我的第一个编程课程,并且我试图获得成功。
答案 0 :(得分:0)
您不需要扫描仪,您只需从sys.argv
获取文件名并读取如下文件:
import sys
with open(sys.argv[1], 'r') as f:
print(sum(float(x) for x in f.read().split()))
示例文件的输出:
>> python3 a4.py orange
50.0
如果您确保文件中只有整数,则可以使用int(x)
。