Какой способ расчета суммы массива для меня более эффективен без использования sum ()? - PullRequest
0 голосов
/ 05 октября 2018

Итак, мой код выглядит следующим образом.По сути, я хочу минимизировать функции CalcualSumX, CalculateSumY и CalculateSumZ в одну функцию.Как бы я это сделал?Игнорировать кейс на данный момент.

def calculateSumX(x):
    theSumX = 0

    for i in x:
        theSumX = theSumX + 1
        return theSumX;

def CalculateSumY(y):
    theSumY = 0

    for i in y:
        theSumY = theSumY + 1
        return theSumY;

def calculateSumZ(z):
    theSumZ = 0

    for i in z:
        theSumZ = theSumZ + 1
        return theSumZ;

def question5(x, y, z):

    case = 5

    #tests whether the sum of each array is equal 

    x = calculateSumX(x)
    y = calculateSumY(y)
    z = calculateSumZ(z)

    if x == y == z:
        print("The sum of all three arrays have equal values ")
        case = 1
        return case

    # if x and y equal
    elif x == y:
        print("The sum of x and y hold equal values ")
        case = 2
        return case

    # if x and z equal 
    elif x == z:
        print("The sum of x and z hold equal values ")
        case = 3
        return case

    # if y and z equal 
    elif y == z:
        print("The sum of y and z hold equal values ")
        case = 4
        return case

    # if all three different
    else:
        print("No sum of each array hold equal values ")
        return case

1 Ответ

0 голосов
/ 05 октября 2018

This;

def calculateSumX(x):
    theSumX = 0

    for i in x:
        theSumX = theSumX + 1
        return theSumX;

def CalculateSumY(y):
    theSumY = 0

    for i in y:
        theSumY = theSumY + 1
        return theSumY;

def calculateSumZ(z):
    theSumZ = 0

    for i in z:
        theSumZ = theSumZ + 1
        return theSumZ;


x = calculateSumX(x)
y = calculateSumY(y)
z = calculateSumZ(z)

можно просто включить в это;

def calculate_sum(ls):
    total = 0
    for value in ls:
        total += value
    return total


sum_x = calculate_sum(x)
sum_y = calculate_sum(y)
sum_z = calculate_sum(z)

Кстати, ваши оригинальные функции Calculate не будут вычислять сумму, но будут возвращать количество элементовв списке, и на самом деле даже не будет этого делать, потому что они возвращаются после первого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...