Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2016 15:41:24

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

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

Romissevd

Romissevd
def f1(b):
c = 4
a = b + 3 + c
return a
e = f1(3)

Как программа прочитала f1(b) если было возвращено только a?



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

Офлайн

#2 Сен. 9, 2016 18:46:35

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

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

Пример:
Есть задача №1 - вывести длину строки, для этого пишем:

 def print_lenght(str):
    lenght = len(str)
    print(lenght)
print_lenght("some string")
Отлично, работает. А теперь задача №2: есть много строк, надо узнать их суммарную длину. Задача №1 при этом остается актуальной. Поэтому пишем так:
 #решение задачи №1
def get_string_lenght(str):
    lenght = len(str)
    return lenght
print(get_string_lenght("some string"))
#Решение задачи №2
total_lenght = 0
for s in ("some string", "another string"):
    total_lenght = total_lenght + get_string_lenght(s)

Что здесь происходит: мы сделали новую функцию, которая вычисляет длину строки и возвращает это значение. Теперь с этим значением можно делать все что угодно - можно напечатать, можно сохранить для дальнейшего использования.

Представь функцию как черную коробку. В нее ты кладешь какие-то объекты, внутри что-то происходит, после этого с другой стороны тебе выпадает результат. Вот за выпадение этого результата и отвечает return. Без него черная коробка ничего не вернет.

Офлайн

#3 Сен. 12, 2016 15:02:00

realivan
Зарегистрирован: 2015-08-15
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Но почему я не могу использовать эти (бывшие аргументы и уже переменные) в дальнейшей части программы? Или я неправильно понял?

 def zod(m,z):
    return m,z # m и z - это локальные переменные, т.е. видны только в теле функции
# функцимя zod, в данном случае, возвращает(возвращает с английского return) кортеж,
# т.е. переменная fas, которой присваивается результат выполнения функции zod - это кортеж из двух значений.
# соответственно print(m+z) выведет ошибку по двум причинам:
# 1. m и z - это локальные переменные функции zod
# 2. правильно не print(m+z) а print(fas[0]+fas[1])
fas=zod(40,50)
print(m+z)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version