0 / 0 / 0
Регистрация: 20.03.2021
Сообщений: 36
1

Функция возвращает None

27.05.2021, 03:57. Показов 8581. Ответов 4

Author24 — интернет-сервис помощи студентам
Здравствуйте, не могли бы объяснить, почему такая функция возвращает None?

Python
1
2
3
4
def f(a, b):
  print(a.append(b))
 
f([44, 11], 5)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2021, 03:57
Ответы с готовыми решениями:

функция сравнивает две строки, и, если строки равны возвращает 0, если первая строка больше второй, то возвращает 1,
// 6. int mystrcmp (const char * str1, const char * str2) -функция сравнивает две строки, и, если...

функция копирует строку str2 в буфер, который адресуется через str1. Функция возвращает указатель на первую строчку str1
char * mystrcpy (char * str1, const char * str2) - функция копирует строку str2 в буфер, который...

Функция возвращает None
Сам код: def get_code(mail_server, emaila): mail_server.select("inbox") try: ...

Функция возвращает 0
Добрый день не могу понять что делаю не так . Функция после сдвига или деления возвращает 0 ((( ...

4
1007 / 351 / 59
Регистрация: 28.02.2013
Сообщений: 932
27.05.2021, 06:50 2
onelifeitsme, и нам расскажите, пожалуйста) может еще кому то надо будет.
0
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
27.05.2021, 08:12 3
Лучший ответ Сообщение было отмечено dondublon как решение

Решение

onelifeitsme, помогите Даше-путешественнице найти слово return.
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
27.05.2021, 11:10 4
а так?)
Python
1
2
3
4
5
6
7
def f(a: list, b: int) -> list:
    a.append(b)
    res = a
    return res
 
 
print(f([44, 11], 5))
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
27.05.2021, 13:00 5
Лучший ответ Сообщение было отмечено Welemir1 как решение

Решение

Цитата Сообщение от onelifeitsme Посмотреть сообщение
почему такая функция возвращает None?
Любая функция всегда что-то возвращает. Если мы хотим возвратить что то конкретное то для этого используется оператор return.
Однако существуют функции, которые не предназначаются для того, что бы что то возвращать, а создаются для того, что бы просто произвести какие либо действия. В таких функциях не используют return. Но так как функция обязательно должна что то возвращать, то питон для таких функций возвращает None. Вы должны это понимать, и для таких функций не нужно использовать возвращаемое ими значения, то есть не нужно присваивать его каким либо переменным.
Собственно, что делает Ваша функция, она заменяет встроенный в питон метод append(). То есть в Вашем примере, функция это мусор. Вместо функции достаточно просто написать
Python
1
2
3
4
5
a = [44, 11]
b = 5
 
a.append(b)
print(a)
Собственно метод, это тоже функция, но описываемая внутри класса и потому привязываемая к экземпляру класса.
В данном случае метод append , всегда привязан к изменяемому объекту. Все, что он делает, это изменяет этот объект. Поэтому питон для этого метода возвращает None . И это важно хорошо понимать. Так как если Вы присвоите возвращаемое значение самому списку, к которому применяется метод, то Вы этот список потеряете.
Python
1
a = a.append(b)  # получите, что a = None
Но если Вам уж очень хочется заменить метод на функцию, то это можно сделать так, как предложил Dax,
или использовать Ваш вариант, но инициировать список до вызова функции

Python
1
2
3
4
5
6
7
8
a = [44, 11]
b = 5
 
def f(a, b):
  a.append(b)
 
f(a, b)
print(a)         # [44, 11, 5]
Добавлено через 12 минут
onelifeitsme, Хотя поправлюсь. Если Вам нужно только вывести на экран измененный список, а не работать с ним в дальнейшем, тогда Ваш вариант нужно изменить так
Python
1
2
3
4
5
def f(a, b):
  a.append(b)
  print(a)         # [44, 11, 5]
 
f([44, 11], 5)
2
27.05.2021, 13:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2021, 13:00
Помогаю со студенческими работами здесь

Функция которая возвращает X и Y
Здравствуйте. как написать функцию что бы она возвращала не одно значение X или Y, а XиY вместе? ...

Функция не возвращает true
Доброго времени суток. Две функции, абсолютно одинаковые, одна работает, а другая всегда...

Функция возвращает ошибку
Вот часть кода вывода комментариев $sql = ("SELECT id, post, parent_id, name, comment, ...

Функция не возвращает результат
Есть функция extractname: #include <stdio.h> #include <string.h> char* extractname(char*...

Функция не возвращает результат
Функция не возвращает результат Помогите новичку, запускаю функцию и вместо =12, выдает все...

Функция возвращает массив
На многих зарубежных сайтах, когда кто-нибудь спрашивает о создании функции, которая возвращает...

Функция не возвращает false
Вообщем str это строка, которая может содержать в себе знак математической операции, скобки, число...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru