1 / 1 / 0
Регистрация: 01.11.2021
Сообщений: 8
|
||||||
1 | ||||||
TypeError: unsupported operand type(s) for //: 'NoneType' and 'int'08.04.2023, 06:27. Показов 1823. Ответов 9
Код полностью не готов т.к не могу починить ошибку
и когда я начал это делать словил эту ошибку, решил пойти от простого и она снова появилась. подскажите как починить пожалуйста Код
Exception has occurred: TypeError unsupported operand type(s) for //: 'NoneType' and 'int' File "F:\veryimportant\tgbot_test.py", line 17, in <module> res = gs // 3 # unsupported operand type(s) for //: 'NoneType' and 'int' TypeError: unsupported operand type(s) for //: 'NoneType' and 'int'
0
|
08.04.2023, 06:27 | |
Ответы с готовыми решениями:
9
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' TypeError: unsupported operand type(s) for +: 'int' and 'NoneType' TypeError: unsupported operand type(s) for %: 'NoneType' and 'float' TypeError на строке 5: unsupported operand types for +: 'NoneType' and 'int' |
Любознательный
6693 / 1948 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
|
||||||
08.04.2023, 10:10 | 2 | |||||
Вот это, что за действие?
К экземпляру класса добавили список и получили что? Правильно, "NoneType"... и пытаетесь его поделить на что? Подозреваю, что требовалось не это, а вот это:
0
|
4324 / 1872 / 334
Регистрация: 18.01.2021
Сообщений: 3,459
|
|||||||||||
08.04.2023, 10:44 | 3 | ||||||||||
Когда выполняется это действие, то это равнозначно
Чтобы это исправить надо в конце метода добавить возврат объекта:
1
|
Любознательный
6693 / 1948 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
|
||||||
08.04.2023, 12:53 | 4 | |||||
если правильно понял:
1
|
1 / 1 / 0
Регистрация: 01.11.2021
Сообщений: 8
|
|||||||||||
15.04.2023, 07:17 [ТС] | 5 | ||||||||||
Код
Exception has occurred: TypeError unsupported operand type(s) for //: 'NoneType' and 'int' File "F:\veryimportant\wall.py", line 43, in <module> res = gs // 3 TypeError: unsupported operand type(s) for //: 'NoneType' and 'int'
[20, 16] [7, 15] [13, 27] [8] [8]
0
|
Любознательный
6693 / 1948 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
|
||||||
15.04.2023, 08:15 | 6 | |||||
Это же Ваш код... ну, ок, вижу, что с пониманием передачи параметров, мягко говоря, не разобрались... а с наименованиями атрибутов совсем беда. Простой копи-паст здесь не поможет, необходимо же осмысленно создавать классы с их атрибутами.
В первом варианте у Вас был при инициализации параметр data , теперь появился gifts , но деление осуществляется по первому варианту... так не получится.Это то, что должно быть результатом? Тогда вот: найдите "десять" отличий:
0
|
Модератор
13710 / 10910 / 6476
Регистрация: 18.12.2011
Сообщений: 29,133
|
||||||
15.04.2023, 14:51 | 7 | |||||
У меня получилось попроще
0
|
Любознательный
6693 / 1948 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
|
|
15.04.2023, 17:27 | 8 |
Наверное, условия были недопоняты... что поделать, так уж написаны и я тоже с первого прочтения понял не так, как оно должно быть... но, т.к. ТС ничего не уточнил, всё же не исключено, что я таки и со второго прочтения понял неправильно.
Вернуть от деления нацело, необходимо не результат деления каждого элемента, тем же списком, той же длины, а разделить сам список на (other), то бишь на n частей и вернуть эти части новыми экземплярами класса, а остаток элементов, вернуть в исходном экземпляре. в том смысле, что: т.е. в каждой части m элементов и порядок следования сохраняется...
0
|
1 / 1 / 0
Регистрация: 01.11.2021
Сообщений: 8
|
|
17.04.2023, 12:52 [ТС] | 9 |
Вот сама задача:
Напишите класс GiftSet для распределения вещей по наборам. Экземпляр класса инициализируется с произвольным числом вещей – чисел, выражающих их цену без скидки. Методы, реализуемые классом (gs – экземпляр класса): экземпляр класса можно разделить на число (количество наборов): res = gs // number, при этом возвращается список экземпляров класса длиной, равной числу; вещи распределены в каждом экземпляре (в том же порядке) по целому числу от деления общего количества вещей на делитель, последние вещи (остаток от деления количества вещей на число) остаются в исходном экземпляре; к экземпляру класса можно прибавить список вещей: gs += array; они все добавляются в конец; gs.cost() – возвращает стоимость набора: если в наборе одна вещь, она продается по полной стоимости, каждая следующая снижает общую стоимость набора на 5%, но не больше, чем до 50%, дальше не уменьшается; стоимость со скидкой округляется до целого числа вниз (в пользу покупателя); gs.get_gifts() – возвращает все вещи в квадратных скобках через запятую и пробел в порядке, в котором они находятся в наборе. Пример 1: Ввод Код
gs = gs1 = GiftSet(20, 16, 7, 15) gs += [13, 27, 8] res = gs // 3 print(*[res[i].get_gifts() for i in range(len(res))], gs.get_gifts()) print(gs1.get_gifts()) Код
[20, 16] [7, 15] [13, 27] [8] [8] Ввод Код
gs = gs1 = GiftSet(20, 16, 7, 15) print(gs.cost()) gs += [13, 27, 8, 9, 10, 12, 3, 6] print(gs1.cost()) print(gs is gs1) Код
49 73 True
0
|
Любознательный
6693 / 1948 / 335
Регистрация: 10.03.2016
Сообщений: 4,504
|
||||||
17.04.2023, 21:10 | 10 | |||||
Сообщение было отмечено Plemenb как решение
Решение
У Вас и здесь с реализацией проблема...
К тому же, Ваш тест (пример 2), с ошибкой во втором ответе... здесь, все верно: (20 + 16 + 7 + 15) * 0.15 = 49 а вот, далее... максимальная скидка, по алгоритму, равна 50%, это должно быть 11 вещей в наборе со скидкой на всю сумму, плюс оставшиеся вещи с полной стоимостью: (20 + 16 + 7 + 15 + 13 + 27 + 8 + 9 + 10 + 12 + 3) * 0.5 + 6 = 76 - проверяйте... А подсчет:
1
|
17.04.2023, 21:10 | |
17.04.2023, 21:10 | |
Помогаю со студенческими работами здесь
10
TypeError: unsupported operand type(s) for -: 'int' and 'list' TypeError: unsupported operand type(s) for +: 'int' and 'list' TypeError: unsupported operand type(s) for *: 'int' and 'type' Ошибка: TypeError: unsupported operand type(s) for >>: 'str' and 'int' TypeError: unsupported operand type(s) for TypeError: unsupported operand type(s) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |