[英]sum of numbers/extact digits
我是编码新手,并尝试提取和打印无数字。 我编写了 2 个不同的代码,但无法将它们组合起来。 我会很感激一些建议。 (我尝试使用*args
但没有用)
def SumOfDigits(str1):
sum_digit = 0
for x in str1:
if x.isdigit():
z = int(x)
sum_digit += z
print("The sum of digits operation is", sum_digit, end=".")
return
def SumOfDigits(input):
valids = []
for character in input:
if character.isalpha():
valids.append(character)
print("The extracted non-digits are:", ''.join(valids))
return
埃尔。 尼克,我相信那些 2 function 你不会被合并,因为它们的行为不同,这会导致更复杂的 function,这可能会让人有点困惑。
无论如何,您想要的是将两个 for 循环合并为一个。 由于str.isalpha
匹配不会与str.isdigit
匹配,因此您可以安全地使用if
语句后跟elif
来检查每个字符并应用所需的行为。
然后,您只需将 2 个结果作为元组返回。
def digit_extraction(string):
sum_digits = 0
extracted_alphas = ""
for char in string:
if char.isdigit():
sum_digits += int(char)
elif char.isalpha():
extracted_alphas += char
return sum_digits, extracted_alphas
这是一个简单的例子:
>>> digit_extraction("1a2b3c4d5e6f7g8h9i")
(45, 'abcdefghi')
如果您不知道 python 中的多重返回值是如何工作的,我建议您查看以下教程:
要进入更高级的内容,将 2 function 分开将允许编写被认为更 Pythonic 的内容:
def sum_of_digits(string):
return sum(int(c) for c in string if c.isalpha())
和
def extract_alphas(string):
return ''.join(filter(str.isalpha, c))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.