Найти - Пользователи
Полная версия: return вбейте мне в голову что это!!!!
Начало » Python для новичков » return вбейте мне в голову что это!!!!
1 2 3
Djo0513
Я уже реально задолбался уже прочёл книгу марк лутца чтоб понять эту хрень и в инете смотрел и тут там и в исходниках и сам перевод слова. ЧТО ОНА ДЕЛАЕТ? Единственное что я понял это то что она выполняет действия функции print() внутри def:… Что она делает сама по себе. Я понимаю правило “Если есть значит нужно”, но зачем она нужна если есть print() и “=”? Прошу объяснить мне русским языком без показухи.
py.user.next
Вот тебе три примера функции:

В первом примере функция возвращает единицу при любом вызове
  
>>> def f():
...     return 1
... 
>>> y = f()
>>> 
>>> print(y)
1
>>>

Во втором примере функция возвращает полученный аргумент при вызове
  
>>> def f(x):
...     return x
... 
>>> y = f(5)
>>> 
>>> print(y)
5
>>>

В третьем примере функция возвращает куб полученного аргумента при вызове
  
>>> def f(x):
...     return x * x * x
... 
>>> y = f(3)
>>> 
>>> print(y)
27
>>>
Djo0513
 >>> def f(x):
...     return x
... 
>>> y = f(5)
>>> 
>>> print(y)
5
>>> 
разве здесь нельзя было обойтесь без return? Вы так и не объяснили что она значит сама по себе. Что она деалет? Она же ничего не выполняет
Djo0513
py.user.next
marvellik
Djo0513
так и не объяснили что она значит сама по себе
сама по себе return завершает работу функции и передает аргумент прописанный после return в место откуда была вызвана функция. И не обязательно функция должна что то печатать в консоль. обычно функция выполняет определенный алгоритм но с разными аргументами. это дает возможность не писать по всему коду одинаковый участок алгоритма с разными аргументами а проще вызвать функцию.




py.user.next
Djo0513
Что она деалет? Она же ничего не выполняет
Она и не должна ничего выполнять, это просто функция f(x) = x.
wiki. функция

Вот, например, отбор ненулевых элементов слева из последовательности
  
>>> def f(x):
...     return x
... 
>>>
>>> import itertools
>>> 
>>> list(itertools.takewhile(f, [1, 2, 3, 0, 0, 0, 3, 4, 5]))
[1, 2, 3]
>>>
Без этой функции ты никак такое не сделаешь, потому что takewhile() обязательно требует функцию в виде аргумента, а какой-нибудь filter() хоть и может без функции работать, но пойдёт дальше через нули и вернёт ещё и 3 4 5.

А вот функция f(x) = 1, тоже как бы ничего не делает
  
>>> def f(x):
...     return 1
... 
>>>
>>> list(map(f, range(10)))
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>>
Но при этом её можно использовать в каком-нибудь выражении, где без неё ничего не получится.
Djo0513
Походу я так и не пойму что это. Может судьба такая.
Romissevd
Я думаю Вы хотите увидеть вот это:
В первом случае при вызове функции она выведет значение и все. Допустим прибавить что-то вы уже не сможете. Только вывод информации.
 def f(a):
    print(a)
e = f(3) # вывело значение
c = e +1 # а что такое e?
print(c) # вызовет ошибку
При возврате значения, Вы можете его использовать дальше: можете вывести его(print), можете увеличить его и т.п.
 def f1(b):
    return b
e = f1(3) # присвоим e значение 3
c = e +1 # теперь я знаю что такое это e
print(c) #  не вызовет ошибку
# ой я вспомнил, теперь я хочу еще что нибудь сделать с этим е
d = e*3
print(d)
# а теперь я еще раз хочу из функции значение получить
k = f1(5) #  и теперь я с k могу делать всякие всячину
Ну, как-то так… Надеюсь помог)))
Djo0513
Подождите как подождите. return (делает из частного в госсударственный, надеюсь вы меня поняли) аргумент функции?
Djo0513
 def zod(m,z):
    return m,z
fas=zod(40,50)
print(m+z)
Но почему я не могу использовать эти (бывшие аргументы и уже переменные) в дальнейшей части программы? Или я неправильно понял?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB