当我在寻找问题的解决方案"计算包含字母和数字的给定字符串中的数字"时,有一个内置函数.isdigit().这里是:
def count_numbers1(a):
return sum(int(x) for x in a if x.isdigit())
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我无法得到它的工作原理.我已经读过,.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'
Run Code Online (Sandbox Code Playgroud)