【发布时间】:2016-10-11 20:30:34
【问题描述】:
当我正在寻找“计算给定字符串中同时包含字母和数字的数字”问题的解决方案时,有一个带有内置函数 .isdigit() 的解决方案。这里是:
def count_numbers1(a):
return sum(int(x) for x in a if x.isdigit())
它工作得很好,但我不知道它是如何工作的。我读过.isdigit() 如果字符串中至少有一个数字则返回true,否则返回false。
还有一个问题:函数如何从字符串中“取出”数字并将其转换为整数以及如何跳过字母?为什么int(x)当x是一个字母时不会产生错误?如:
>>> int('a')
Traceback (most recent call last):
File "<pyshell#77>", line 1, in <module>
int('a')
ValueError: invalid literal for int() with base 10: 'a'
【问题讨论】:
-
我读到如果字符串中至少有一个数字,.isdigit() 将返回 true 这是错误的。你在哪里读到的?
-
[链接]tutorialspoint.com/python/string_isdigit.htm。可能是我理解错了
-
该页面上的第一句:“isdigit() 方法检查字符串是否仅由数字组成”。