Skip to main content
 首页 » 编程设计

python之在每行中找到最后一个元素(数字)并对所有偶数求和 python 3

2025年05月04日30dflying

你好 Stack Overflow!

我正在尝试解决我们今天在 Python 类(class)中布置的作业。我还不是很熟悉 python,所以我真的需要一些提示。

任务是: 找到每一行的最后一个元素(数字),如果有的话,然后求和 是偶数。

我已经开始做这样的事情了:

result = 0 
counter = 0 
handle = open('httpd-access.txt') 
for line in handle: 
    line = line.strip() 
    #print (line) 
    if line[:-1].isdigit(): 
        print(line[:-1].isdigit()) 
        digitFirst = int(line[counter].isdigit()) 
        if digitFirst % 2 == 0: 
            print("second") 
            result += digitFirst 
    else: 
        print("else") 
 
 
    ANSWER = result 

但是这段代码对我不起作用,我没有得到任何结果数据。 我错过了什么?认为一个问题是我没有逐个元素地检查行,而是整行。

这是我在文件中的一行的示例:

37.58.100.166--[02/Jul/2014:16:29:23 +0200]"GET/kod-exempel/source.php?dir=codeigniter/user_guide_src/source/_themes/eldocs/static/asset HTTP/1.1"200867 

所以我要检索的是 7。然后我想检查 7 是偶数还是奇数。如果是偶数,我将其保存在 a 变量中。

请您参考如下方法:

甚至不用理会 isdigit。继续尝试转换为 int 并在失败时捕获异常。

result = 0 
with open('httpd-access.txt') as f: 
    for line in f: 
        try: 
            i = int(line.strip()[-1:]) 
 
            if(i % 2 == 0): 
                result += i 
 
        except ValueError: 
            pass 
 
print('result = %d' % result)