文件中的值之和,负数?

2024-04-19 17:44:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个文件,它每行有一个整数,数字之间没有逗号分隔。当我去求那个文件中的数字之和时,它只适用于正整数。我所拥有的不适用于文件中的负数。有没有办法做到这一点?我的问题代码:

if line.strip().isdigit():
            total += int( line)

如果文件中的所有数字都是负数,它只会将总和返回为0。我还可以使用什么方法来实现相同的目标(文件中所有数字的总和)来添加正整数和负整数?你知道吗


Tags: 文件代码ifline数字整数inttotal
2条回答

问题是这些方法要求所有字符都是数字,而-不是;请参见https://docs.python.org/2/library/stdtypes.html

>>> "234".isalnum()
True
>>> "-234".isalnum()
False
>>> "-234".isalpha()
False
>>> "-234".isdigit()
False

如果您的文件包含int和非int,那么可能会看到is_number(s)How do I check if a string is a number (float) in Python?,但请将其修改为int

def is_number(s):
    try:
        int(s)
        return True
    except ValueError:
        return False

然后在有is_digit的地方使用is_number。你知道吗

怎么样

try: total += int(line) except: pass

相关问题 更多 >