Как передать значения функции в python? - PullRequest
2 голосов
/ 09 июля 2020

Я начал изучать python.

Я не знаю, как передавать значения для функции?

Вот код:

def summation(*numbers):
    add = 0
    for y in numbers:
        add = add + y
    return add


n = int(input("How many numbers you want to add: "))
for x in range(1, n + 1):
    int(input("Enter number: "))
print("Sum:", summation())

print("Sum:", summation()) Как пройти суммирование?

Ответы [ 4 ]

3 голосов
/ 09 июля 2020
def summation(numbers):
    add = 0
    for y in numbers:
        add = add + y
    return add


n = int(input("How many numbers you want to add: "))
row_nums = []
for x in range(1, n + 1):
    row_nums.append(int(input("Enter number: ")))
print("Sum:", summation(row_nums))

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

Я помещаю переменную при объявлении функции, не выбирая ее тип. и использовать его в моем коде как список. Python не является строго типизированным языком.

2 голосов
/ 09 июля 2020

Как вам сказали в комментарии, достаточно хранить числа в списке. Вы можете передать значения списка, добавив к нему префикс *:

n = int(input("How many numbers you want to add: "))
# the pythonic way to build a list is a comprehension:
numbers = [int(input("Enter number: ")) for x in range(n)]
print("Sum:", summation(*numbers))
1 голос
/ 09 июля 2020

То, что вы ищете, - это переменные аргументы для функции:

def summation(*args):   # notice how the asterisk 
                        #   is used to signify variable arguments
    sum = 0
    for y in args:
        sum = sum + y
        # sum += y
    # Or simply
    # return sum(args)
    return sum

n = int(input("How many numbers you want to add: "))

# We will record users input in this set
numbers = set() 

for x in range(1, n + 1):
    # Here we keep a record of users input
    numbers.add(int(input("Enter number: "))) 

print("Sum:", summation(*numbers)) # Finally we pass 
                                   #  in the whole set tot he function

Обратите внимание, как звездочка используется для pack и unpack кортежа.

Если вы ' Если хотите узнать больше об этой концепции, вы можете найти в Google указанные выше ключевые слова или начать с этой отличной статьи.

1 голос
/ 09 июля 2020

Вы можете просто превратить способ получения чисел в генератор:

In [2]: def numbers(): 
   ...:     n = int(input("How many numbers you want to add: ")) 
   ...:     for x in range(1, n + 1): 
   ...:         yield int(input("Enter number: ")) 

In [4]: print("Sum:", summation(*numbers()))                                                                                  
How many numbers you want to add: 3
Enter number: 1
Enter number: 2
Enter number: 3
Sum: 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...