首页 文章

python:while loops / flags:接收一个字符串并返回一个带有平均值的浮点数

提问于
浏览
-2

我需要定义一个函数,它接收一个字符串(可能包含数字,字母和/或特殊符号)并返回一个包含平均值的浮点数,考虑字符串中从字符串中最后一个位置开始的所有数字并考虑所有数字(向后)直到找到一个字母或直到到达字符串的开头(如果是一个数字,则包括字符串中的第一个字符用于计算) . 如果字符串中没有数字,或者在找到第一个数字之前找到了一个字母,则该函数应返回值0.0 .

例如:

函数avgBackw(“ - 1 --- 2 - A - 3--4--”)应该返回3.5,因为4和3的平均值是3.5 . 请注意,1和2不会进入计算,因为向前访问字符串时,在访问2和1之前找到字母A.

在转到2和1之前,当找到字母“A”时,我似乎无法找到如何停止计算 .

1 回答

  • 0

    这将为你做功课:

    def MyMean(myList): 
        rv = []  
        for n in myList[::-1] : # reverse list
            try:
                rv.append(int(n)) # convert element to int
            except:
                # 2.7: 
                return float(sum(rv))/len(rv) # on first error, bail and return number
                # 3.6
                # return sum(rv)/len(rv) # all numbers need to return as well
    
        # 2.7: 
        return float(sum(rv))/len(rv)  # on first error, bail and return number
        # 3.6 
        # return sum(rv)/len(rv) # all numbers need to return as well
    
    
    myLis = [1,2,4,'A',3,4]
    
    print(MyMean(myLis))
    
    myLis = "1239A9391"
    
    print(MyMean(myLis))
    
    myLis = "1020392"
    
    print(MyMean(myLis))
    

    输出:

    # 2.7 
    3.5
    5.5
    2.42857142857
    
    #3.6
    3.5
    5.5
    2.4285714285714284
    

相关问题