题目描述
无文字描述,看实例写代码。
Test 1:
Input | Output |
---|---|
1 Hello World! | 0 |
Test 2:
Input | Output |
---|---|
2 1337 5p3k 15 c001 5pr34d 7h3 w0rd! | 11 6 |
Test 3:
Input | Output |
---|---|
2 abcd1234 a1b2c3d4 | 4 4 |
Test 4:
Input | Output |
---|---|
2 xxxxxxxxxx 1111111111 | 0 10 |
题目分析
题目很简单,先输入将要输入的行数,然后计算每行中字符串中数字的个数。
解题代码
我的代码:
import sys
import math
a=''
n = int(input())
for i in range(n):
c=0
r = input()
s="".join(list(filter(str.isdigit, r)))
if s == "":
print(0)
for j in s:
c+=1
a=c
if a!='':
print(a)
法国老哥的代码:
import sys
import math
n = int(input())
for i in range(n):
print(len([c for c in input() if c.isdigit()]))
总结
1.python提取字符串中的数字
2. filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
3. Python3 isdigit()方法:Python isdigit() 方法检测字符串是否只由数字组成。
4. python if for在同一行:for…[if]…语句一种简洁的构建List的方法。
5. Python len()方法:Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
6. 我用了15行代码来实现,然而外国老哥的代码还是一如既往的短小精悍,值得学习。