Найти - Пользователи
Полная версия: return вбейте мне в голову что это!!!!
Начало » Python для новичков » return вбейте мне в голову что это!!!!
1 2 3
Romissevd
Функция не обязательно должна возвращать аргумент.
Аргумент вы передаете, для того чтобы с ним провести манипуляции в теле функции, а return уже возвращает результат или что вы там хотите
 def f1(b):
    c = 4
    a = b + 3 + c
    return a
e = f1(3)
Romissevd
Djo0513
Но почему я не могу использовать эти (бывшие аргументы и уже переменные) в дальнейшей части программы? Или я неправильно понял?
Для этого вам необходимо познакомиться с областями видимости
Djo0513
Romissevd
Я не на столько тупой, я знаю, что программа не читает содержимое print(), а просто выводит его на экран.
 e = f(3) # вывело значение
c = e +1 # а что такое e?
А почему он не знает, что это e? Она же прямо указана “e=”?
Как я понял, return выводит из функции атрибут и делает из него переменную(константу)
py.user.next
Djo0513
Но почему я не могу использовать эти (бывшие аргументы и уже переменные) в дальнейшей части программы?
Они создаются каждый раз заново, когда функция вызывается, и разрушаются каждый раз, когда функция завершается. Они нужны только для внутренней работы функции. При вызове функции к ним прицепляются эти числа, которые подаются, а при завершении функции значение, полученное внутри, передаётся наружу через return. Вызов функции заменяется на значение, которое она вернула.
Djo0513
Ох блат. Я так запутался, аж голова начала болеть. Попрошу напоследок, только синоним слова “возвращает”, желательно его не большое описание. Если можно, 2 синонима. Огромное спасибо всем кто вбивал в меня это (плюсики я уже раставил)))).
Romissevd
Djo0513
RomissevdЯ не на столько тупой, я знаю, что программа не читает содержимое print(), а просто выводит его на экран.
Извинтиляюсь, если чем обидел.
Djo0513
А почему он не знает, что это e? Она же прямо указана “e=”?
а чему по вашему равно e?
marvellik
ну чтоб вас не смущал этот 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)
запустите и посмотрите результат может понятней будет
Djo0513
Romissevd
Да, там не было return, это я и спрашивал выше (return переводит локальный атрибут в программную переменую(если так можно сказать)? И каждый раз уничтожает и создаёт её в программе, каждый раз биря его из функции? Так ведь?

биря=брать в прошлом времени.
башка не варит реально устал
py.user.next
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.
Djo0513
Завтра отвечу вам всем. А щас спать.
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