你好 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)
