我有这样一个.txt文件
name John
25 45 23 67
name Ahmed
65 21 35
我想逐行阅读这个文件,并检查行是以字母还是数字开头。如果行以数字开头,则将所有这些数字相加,然后打印总和。如果这行是以字母开头的,那么只需打印任何信息。 我试过这个密码
f=open(r"E:\test.txt","r")
for line in f:
if line[0].isnumeric()== True:
for i in line:
total = total + line[i]
print(total)
elif line[0].isalpha()==True:
print("line starts with alpha")
NameError: name 'total' is not defined
total
未定义-您不需要它:创建文件:
进程文件:
输出:
对
sum(map(int,line.rstrip().split()))
的解释:这将整个
line
,split()
的it在空白处放入一个["25", "45", "23", "67"]
字符串列表。map(func, iterable)
将函数应用于iterable的所有元素,并返回它的生成器,该生成器由sum()
求和:读数:
你的代码有错误。 首先,
total
没有初始化,您应该添加之后,迭代
line
将得到:我想你应该分道扬镳,一个接一个地排到第一位:
Python解释器不知道如何
total = total + line[i]
,因为total
没有初始化。 例如,只需像这样初始化它(或者在您认为合适的任何地方):如果你想求和而不是串接,你应该把
total
初始化为total = 0
,然后像这样加上line[i]
相关问题 更多 >
编程相关推荐