我必须使用Python语言创建一个(def)程序,其中用户插入一个字符串(最多8位数字(0-9)和字母(az)),程序必须找出有多少数字一个字符串。程序将计算这些数字的总和和平均值。
答案 0 :(得分:1)
方法1 :按字符串纯实现,完全不使用列表。
def sum_and_average(string):
COUNT = 0
SUM = 0
for value in string:
if value.isdigit():
SUM += int(value)
COUNT +=1
print('Sum :',SUM)
print('Average :',SUM/COUNT)
方法2 :使用列表推导和Ascii值
def sum_and_average2(s):
L = [int(var) for var in s if 48<=ord(var)<=57]
print('Sum :', sum(L))
print('Average :', sum(L)/len(L))
方法3 :使用正则表达式,已经提到但是Regex也会将值存储为列表对象,因此在您的情况下,方法1将是最好的,但方法3将是最快的长字符串输入的情况。
答案 1 :(得分:0)
您可以使用正则表达式解析弹簧以分别获取数字和字母,然后对数字执行所需的操作。 实施例
import re
def spring_program(spring):
regex = re.compile("([0-9]+)([a-z]+)")
numbers = regex.match(spring).group(1)
letters = regex.match(spring).group(2)
print(numbers)
print(letters)
#you can now do any manipulation to the numbers