Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 8, 2016 21:04:28

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

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

Функция не обязательно должна возвращать аргумент.
Аргумент вы передаете, для того чтобы с ним провести манипуляции в теле функции, а return уже возвращает результат или что вы там хотите

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

Отредактировано Romissevd (Сен. 8, 2016 21:04:41)

Офлайн

#2 Сен. 8, 2016 21:07:06

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

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

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

Офлайн

#3 Сен. 8, 2016 21:10:47

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

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

Romissevd
Я не на столько тупой, я знаю, что программа не читает содержимое print(), а просто выводит его на экран.

 e = f(3) # вывело значение
c = e +1 # а что такое e?
А почему он не знает, что это e? Она же прямо указана “e=”?
Как я понял, return выводит из функции атрибут и делает из него переменную(константу)



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

Офлайн

#4 Сен. 8, 2016 21:14:40

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

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

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



Офлайн

#5 Сен. 8, 2016 21:18:01

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

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

Ох блат. Я так запутался, аж голова начала болеть. Попрошу напоследок, только синоним слова “возвращает”, желательно его не большое описание. Если можно, 2 синонима. Огромное спасибо всем кто вбивал в меня это (плюсики я уже раставил)))).



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

Офлайн

#6 Сен. 8, 2016 21:21:45

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

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

Djo0513
RomissevdЯ не на столько тупой, я знаю, что программа не читает содержимое print(), а просто выводит его на экран.
Извинтиляюсь, если чем обидел.
Djo0513
А почему он не знает, что это e? Она же прямо указана “e=”?
а чему по вашему равно e?

Офлайн

#7 Сен. 8, 2016 21:25:06

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

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

ну чтоб вас не смущал этот print сделаем свою функцию сортировки списка

 def sortirovka ( s): # функция принимает один аргумент 
    if type(s) != list: # проверяем список ли этот аргумент
        print( 'это не список') # если нет ПЕЧАТАЕМ сообщение
        return # завершаем функцию вернет None
    # продолжаем если аргумент список
    for _ in range (len(s)):
        for i in range(len(s)-1):
            if s[i] > s[i+1]:
                s[i],s[i+1] = s[i+1],s[i]
    return s # завершаем работу возвращаем результат
a = [1,5,8,22,54,78]
b = [ 'ноль','пять','три','восемь'] # будет сортироваться по первым буквам в алфав. порядке
c= [22,45,67,123,46]
d = 'строка для ошибки'
# иызываем функцию с разными аргументами печатаем результат работы
print(sortirovka ( a))
print(sortirovka ( b))
print(sortirovka ( d))
print(sortirovka ( c))
# теперь вызываем функцию с аргументом список в аргумент цикла
for i in sortirovka ( b):
    print (i)
запустите и посмотрите результат может понятней будет

Отредактировано marvellik (Сен. 8, 2016 21:28:15)

Офлайн

#8 Сен. 8, 2016 21:29:09

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

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

Romissevd
Да, там не было return, это я и спрашивал выше (return переводит локальный атрибут в программную переменую(если так можно сказать)? И каждый раз уничтожает и создаёт её в программе, каждый раз биря его из функции? Так ведь?

биря=брать в прошлом времени.
башка не варит реально устал



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

Офлайн

#9 Сен. 8, 2016 21:30:25

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

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

Djo0513
Попрошу напоследок, только синоним слова “возвращает”
  
def f(x):
    return x + x
 
y = f(5)

Здесь f(5) - это вызов функции f. Когда он происходит, запускается сама функция f и к её внутренней переменной x прицепляется число 5. Дальше внутри функции происходит 5 + 5 и превращается в 10. А потом это число 10 оператором return передаётся обратно на место вызова функции. И этот вызов функции заменяется на это возвращённое число. Было y = f(5), а стало y = 10.



Офлайн

#10 Сен. 8, 2016 21:30:43

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

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

Завтра отвечу вам всем. А щас спать.



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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version