如何检查字符串是否包含 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 中的 if
和 return
语句不使用括号。另请注意,当您执行 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)
我想查看字符串本身是否包含多个数字,并让它打印出数字本身。
示例:
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 中的 if
和 return
语句不使用括号。另请注意,当您执行 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)