Как перебрать выходы разных функций? - PullRequest
2 голосов
/ 03 июля 2019

Я пытаюсь создать калькулятор биномиального расширения (один из моих первых проектов кодирования, поэтому мой код может быть немного ненадежным), и я придумала функции, которые вычисляют каждое из терминов a, b и x (в (a+ bx) ^ n) отдельно.

Я не уверен, как умножить вывод ExpandA на вывод ExpandB, перебирая список для вывода каждого члена в расширении.

Любые советы и подсказки будут высоко оценены!

Калькулятор биномиального расширения

def expansion():
    def ExpandA(): # Calculates a^n, a^(n-1), a^(n-2)) ... a^0
        for i in range (entry_n,-1,-1): #Start,end,step
        #end at entry_n.get()-1 so computer can calculate a^0    
           print(entry_a**i)         

    def ExpandB(): # Calculates b^0, b^1, b^2 ... b^n
        for i in range(0,(int(entry_n)+1),1):
            print(entry_b**i)

    def XValues():# Prints x^0, x^1, x^2 ... x^n
        for i in range(0,int(entry_n+1),1):
            print("X^",i)
    ExpandA()
    ExpandB()
    XValues()


print("Welcome to the Binomial Expansion Calculator!")
print("Please enter your inputs in the form (a + bx ^n).")

entry_a = int(input("Please enter your 'a' value."))
entry_b = int(input("Please add your 'b' value."))
entry_n = int(input("Please enter your 'n' value."))

expansion()

1 Ответ

1 голос
/ 04 июля 2019

Судя по всему, вы просто печатаете числа из диапазона во всех трех функциях. Вы бы хотели вернуть или дать значения вместо их печати. ​​

def expandA(): # Calculates a^n, a^(n-1), a^(n-2)) ... a^0
    for i in range (entry_n,-1,-1): #Start,end,step
       yield entry_a**i         

def expandB(): # Calculates b^0, b^1, b^2 ... b^n
    for i in range(0,(int(entry_n)+1),1):
        yield entry_b**i

def xvalues():# Prints x^0, x^1, x^2 ... x^n
    for i in range(0,int(entry_n+1),1):
        yield "X^",i

# the following will return generator objects
as = expandA()
bs = expandB()
xs = xvalues()

# so you can access the values like this:
for a, b, x in zip(as, bs, xs):
    print("{} + {}{}{}".format(a, b, x[0], x[1]))

Обратите внимание, что функция xvalues ​​выдает кортежи вместо отдельных значений

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