@YaMaShu
Самоучка, учу Python и pyqt5

Тайп эррор когда функцию def присоединяю к тексту через print?

def delete():
list.remove(max(list))
list.removе(min(list))
print(*list, sep=", ")

print("Среднее число:" + delete())

Я изучаю Python и решил сделать программу которая выводит среднее, маленькое и большое число которое задали. Я сделал маленькое и большое, добавил к ним нужный текст, но когда хочу добавить текст к среднему числу то выходит ошибка type error, есть какие-то способы к delete() добавить текст который нужен?
P. S. Большое и маленькое число я сделал с помощью min, max и поэтому оно к тексту "присоединились".
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
delete у вас функция. Она по-умолчанию ВОЗВРАЩАЕТ Null. А надо, чтобы возвращала str, тогда вы сможете конкатенацию строк сделать.

В функции delete надо print(...) заменить на return ...

и, кстати, внимательно смотреть, что вы возвращаете из функции - строку ли?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@YaMaShu Автор вопроса
Самоучка, учу Python и pyqt5
Можете написать как функцию return в коде написать?
Ибо я return только учу, и не сильно дружу.
Ответ написан
@o5a
оригинал:
def delete():
    list.remove(max(list))
    list.removе(min(list))
    print(*list, sep=", ")


1. Не стоит для названий переменных использовать зарезервированные названия, как list в данном случае. Можете получить проблемы, т.к. этим переназначите базовые типы.

2. Второй remove написан частично через кириллицу, поэтому работать не будет. Стоит следить за этим.

3. Стоит избегать функций, работающих с глобальными значениями, как в этом случае, меняется глобальный list. Лучше делать их универсальными, принимающими обрабатываемые значения на вход, и возвращающими результат работы на выход, через return. К тому же удалять элементы из оригинальных данных только чтобы найти значение - не лучший вариант.

4. И функции соответственно стоит именовать по функционалу. По факту функция должна возвращать средний элемент, соответственно и называть надо более по смыслу (а не delete). Например так в целом (также изменил нахождение числа покороче):

def get_middle(arr):
    return sorted(arr)[1]


Но в целом для задания "вывести меньшее, среднее, наибольшее" достаточно было сделать sorted(arr)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы