Использование функции внутри цикла for - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь вызвать функции внутри a для l oop, но мне это не удается. Можно ли вызывать функции в Python 3.x так же, как вы вызываете подпрограммы в Excel?

Вот код, который я пробовал, но я не получаю никакого вывода.

def my_fun1(i):
    x=+i
    return x
def my_func2(x1)
    print(x1)

test_rng=range(124,124+100)

for i in test_rng:

    my_fun1(i)
    print(x)
    my_fun2(x)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020

Да, это возможно, но ваш код не будет работать, потому что x внутри l oop будет неизвестно:

for i in test_rng:
    my_fun1(i)
    print(x)
    my_fun2(x)

Возможно, вы захотите сделать что-то вроде:

for i in test_rng:
    x = my_fun1(i)
    print(x)
    my_fun2(x)

Вы также можете дважды проверить код в my_fun1():

def my_fun1(i):
    x=+i
    return x

, так как использование x=+i может означать, что вы пытаетесь что-то сделать отличается от x = i, что, по сути, и делает ваш код: x=+i -> x = (+i) -> x = i

1 голос
/ 19 февраля 2020

Ваш код содержит неправильный лог c, и я также предполагаю, что переменная x определена глобально. Смотри ниже.

def my_fun1(i):
    x=+i#I am assuming you want this x+=i
    return x
def my_func2(x1)
    print(x1)

test_rng=range(124,124+100)

for i in test_rng:

    my_fun1(i)
    print(x)
    my_fun2(x)

...