如何检查字符串是否包含 Python 中的多个数字?

How to check if a string contains multiple numbers in Python?

我想查看字符串本身是否包含多个数字,并让它打印出数字本身。

示例:

def number_in_string(string):
    #code to check for a number
    number=int(123445) #in the instance with x
    number=int(24) #in the instance of y
    number=int(32) #in the instance of z
    return(number)

x="123445"
y="rand24chars"
z="rand3chars2"
number=number_in_string(x) #just as an example but I would run through all of the variables ideally
print(number)

我知道能够检查字符串是否只有 1 位数字的代码,并且能够将多个数字相加或将它们与更多代码相乘,但我不知道如何计算多位数字以同样的方式。

1 位代码:

number=[]
def chars(y,number):
    for i in range(y):
        if (i.isdigit()==True):
            number=number.append(i)
        else:
            continue
    return(number)

y="alkfjh3432,skj"
number=chars(y,number)
print(number) #[3,4,3,2]

如果有人能帮助我,那将不胜感激。

你很接近。

def digits(nbr):
    val = 0
    for i in nbr:
        if i.isdigit():
            val = val * 10 + int(i)
    return val

y="alkfjh3432,skj"
number=digits(y)
print(number)

打印 3432.

请注意循环需要遍历字符串中的字符。它不是 range 的用途。另请注意,Python 中的 ifreturn 语句不使用括号。另请注意,当您执行 if x==True: 时,说 if x: 总是更好读。与 if x==False: 相同,应该是 if not x:.

听起来很简单,遍历字符串,如果字符包含数字,则将其追加到结果列表中:

from typing import List

def get_digits_from_string(string: str) -> List[int]:
    result = []
    for character in string:
        if character.isdigit():
            result.append(int(character))
    return result

要在字符串中搜索,正则表达式会大有帮助。使用正则表达式,您可以简单地搜索所有数字字符 \d :

import re

def get_digits(x):
  return re.findall(r'\d', x)

更多信息:https://www.regular-expressions.info