可以考虑python的正则表达式实现
import re
string = "Hello 123 World 1234"
result = re.findall(r'\d+', string)
num = 0
for i in result:
num+=i
print(num) #最后这个就是数字的个数
因为每次调用 isdigit() 方法会占用内存,虽然通常情况下无伤大雅,但既然平台这么“苛刻”,可以使用其他更“高级”的办法:
一、比较ASCII码
s = input()
sum = 0
for char in s:
if '0' <= char <= '9':
sum += 1
print(sum)
二、正则表达式
import re
s = input()
sum = len(re.findall(r'\d', s))
print(sum)
三、转换字符串
s = input()
sum = len(s) - len(s.translate(str.maketrans("", "", "0123456789")))
print(sum)
input_str = input("请输入:")
count = 0
for c in input_str:
if c.isdigit():
count += 1
print("输入的字符串中包含{}个数字".format(count))