Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 8, 2016 18:19:48

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

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



Лучший учитель - это ты сам.

Офлайн

#2 Сен. 8, 2016 18:36:34

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

Вот тебе три примера функции:

В первом примере функция возвращает единицу при любом вызове

  
>>> 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
>>>



Отредактировано py.user.next (Сен. 8, 2016 18:36:45)

Офлайн

#3 Сен. 8, 2016 18:44:12

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

 >>> def f(x):
...     return x
... 
>>> y = f(5)
>>> 
>>> print(y)
5
>>> 
разве здесь нельзя было обойтесь без return? Вы так и не объяснили что она значит сама по себе. Что она деалет? Она же ничего не выполняет



Лучший учитель - это ты сам.

Офлайн

#4 Сен. 8, 2016 18:44:32

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

py.user.next



Лучший учитель - это ты сам.

Офлайн

#5 Сен. 8, 2016 19:51:37

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

Djo0513
так и не объяснили что она значит сама по себе
сама по себе return завершает работу функции и передает аргумент прописанный после return в место откуда была вызвана функция. И не обязательно функция должна что то печатать в консоль. обычно функция выполняет определенный алгоритм но с разными аргументами. это дает возможность не писать по всему коду одинаковый участок алгоритма с разными аргументами а проще вызвать функцию.




Офлайн

#6 Сен. 8, 2016 19:57:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

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]
>>>
Но при этом её можно использовать в каком-нибудь выражении, где без неё ничего не получится.



Отредактировано py.user.next (Сен. 8, 2016 20:22:45)

Офлайн

#7 Сен. 8, 2016 20:43:48

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

Походу я так и не пойму что это. Может судьба такая.



Лучший учитель - это ты сам.

Офлайн

#8 Сен. 8, 2016 20:45:14

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

Я думаю Вы хотите увидеть вот это:
В первом случае при вызове функции она выведет значение и все. Допустим прибавить что-то вы уже не сможете. Только вывод информации.

 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 могу делать всякие всячину
Ну, как-то так… Надеюсь помог)))

Офлайн

#9 Сен. 8, 2016 20:57:15

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

Подождите как подождите. return (делает из частного в госсударственный, надеюсь вы меня поняли) аргумент функции?



Лучший учитель - это ты сам.

Офлайн

#10 Сен. 8, 2016 21:02:46

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

return вбейте мне в голову что это!!!!

 def zod(m,z):
    return m,z
fas=zod(40,50)
print(m+z)
Но почему я не могу использовать эти (бывшие аргументы и уже переменные) в дальнейшей части программы? Или я неправильно понял?



Лучший учитель - это ты сам.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version