2024-04-19 17:44:55 发布
网友
我正在处理一个文件,它每行有一个整数,数字之间没有逗号分隔。当我去求那个文件中的数字之和时,它只适用于正整数。我所拥有的不适用于文件中的负数。有没有办法做到这一点?我的问题代码:
if line.strip().isdigit(): total += int( line)
如果文件中的所有数字都是负数,它只会将总和返回为0。我还可以使用什么方法来实现相同的目标(文件中所有数字的总和)来添加正整数和负整数?你知道吗
问题是这些方法要求所有字符都是数字,而-不是;请参见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
is_number(s)
def is_number(s): try: int(s) return True except ValueError: return False
然后在有is_digit的地方使用is_number。你知道吗
is_digit
is_number
怎么样
try: total += int(line) except: pass
问题是这些方法要求所有字符都是数字,而
-
不是;请参见https://docs.python.org/2/library/stdtypes.html如果您的文件包含int和非int,那么可能会看到
is_number(s)
:How do I check if a string is a number (float) in Python?,但请将其修改为int然后在有
is_digit
的地方使用is_number
。你知道吗怎么样
try: total += int(line) except: pass
相关问题 更多 >
编程相关推荐