Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/88: Рейтинг темы: голосов - 88, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 04.05.2015
Сообщений: 60

Ошибка 'int' object has no attribute

23.05.2020, 06:17. Показов 17045. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class RomanNumerals():
 
    def __init__(self,number):
        self.num = number
 
    def from_roman(self):
        int_num=0
        rom = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
        i=0
        while (i<len(self.num)):
            if(i+1==len(self.num)):
                int_num+=rom[self.num[i]]
                break
            else:
                if (rom[self.num[i]]<rom[self.num[i+1]]):
                    int_num+=rom[self.num[i+1]]-rom[self.num[i]]
                    i+=2
                else:
                    int_num+=rom[self.num[i]]
                    i+=1
        return int_num
 
    def to_roman(self):
        val = (1000, 900,  500, 400, 100,  90, 50,  40, 10,  9,   5,  4,   1)
        syb = ('M',  'CM', 'D', 'CD','C', 'XC','L','XL','X','IX','V','IV','I')
        roman_num = ""
        for i in range(len(val)):
            count = int(self.num / val[i])
            roman_num += syb[i]*int(count)
            self.num -= val[i] * count
        return roman_num
Вызываю RomanNumerals.to_roman(1000) - выдает ошибку:

Traceback (most recent call last):
File "test.py", line 35, in <module>
RomanNumerals.to_roman(1000)
File "test.py", line 28, in to_roman
count = int(self.num / val[i])
AttributeError: 'int' object has no attribute 'num'
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2020, 06:17
Ответы с готовыми решениями:

Ошибка 'int' object has no attribute '__getitem__'
Доброго времени суток. Прошу подсказать куда копать, что бы исправить ошибку. Ell=ell(); N=len(Ell)+1# порядок кривой= колличество...

'int' object has no attribute 'linalg'
Подскажите как исправить данную ошибку: line 34 determinant = n.linalg.det(key_matrix) AttributeError: 'int' object has no...

'int' object has no attribute 'read_int'
Написал скрипт авто-нажатия пробела в cs:go, при запуске выдает ошибку AttributeError: 'int' object has no attribute 'read_int' import...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
23.05.2020, 09:59
barabaha789, а разве можно метод объекта так вызывать, ты точно почитал про ООП и все понял?
Цитата Сообщение от barabaha789 Посмотреть сообщение
def to_roman(self):
не принимает никаких аргументов, то что там селф -прочти что это такое, число он там не ждет, надо переписать
0
0 / 0 / 0
Регистрация: 04.05.2015
Сообщений: 60
23.05.2020, 10:09  [ТС]
Welemir1, я вызывал его по другому. Сначала создавал объект класса, а затем вызывал метод для этого объекта, и все работает:

Python
1
2
a = RomanNumerals(1000)
print(a.to_roman())
Этот класс надо написать для задания на Codewars, и там при тестировании идет такой вызов. Я сам смотрю на него и не могу понять что это?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
23.05.2020, 10:26
Цитата Сообщение от barabaha789 Посмотреть сообщение
Traceback (most recent call last):
File "test.py", line 35, in <module>
RomanNumerals.to_roman(1000)
вот тут написано что не так ты вызывал
0
0 / 0 / 0
Регистрация: 04.05.2015
Сообщений: 60
23.05.2020, 10:26  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class RomanNumerals():
    
    def from_roman(num_rom):
        int_num=0
        rom = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
        i=0
        while (i<len(num_rom)):
            if(i+1==len(num_rom)):
                int_num+=rom[num_rom[i]]
                break
            else:
                if (rom[num_rom[i]]<rom[num_rom[i+1]]):
                    int_num+=rom[num_rom[i+1]]-rom[num_rom[i]]
                    i+=2
                else:
                    int_num+=rom[num_rom[i]]
                    i+=1
        return int_num
 
    def to_roman(num_ar):
        val = (1000, 900,  500, 400, 100,  90, 50,  40, 10,  9,   5,  4,   1)
        syb = ('M',  'CM', 'D', 'CD','C', 'XC','L','XL','X','IX','V','IV','I')
        roman_num = ""
        for i in range(len(val)):
            count = int(num_ar / val[i])
            roman_num += syb[i]*int(count)
            num_ar -= val[i] * count
        return roman_num
 
print(RomanNumerals.to_roman(1000))
Исправил, заработало.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
23.05.2020, 10:27
Цитата Сообщение от barabaha789 Посмотреть сообщение
a = RomanNumerals(1000)
print(a.to_roman())
так по идее должно работать

Добавлено через 45 секунд
Цитата Сообщение от barabaha789 Посмотреть сообщение
Исправил, заработало.
но не пометил метод статиком и кроме того сам же привел пример что не так должно работать
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
23.05.2020, 13:55
Цитата Сообщение от barabaha789 Посмотреть сообщение
def to_roman(num_ar):
Это неверно.
Первый аргумент обычного экземплярного метода (без указания декораторов) должен называться self. self это экземпляр класса.
А назвав его num_ar ты сам себя запутал.
Обращаться к методу без создания экземпляра класса (имя_класса.имя_метода()) можно только в том случае, если метод помечен как статический или классовый. Классовый метод будет принимать первым параметром сам класс (не экземпляр).
А статический ни того, ни другого: у него не будет self и можно указывать любой свой параметр.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2020, 13:55
Помогаю со студенческими работами здесь

AttributeError: 'int' object has no attribute 'count'
import random for i in range(30): number = random.randint(0,5) print(number) count_5 = number.count(5) print('Количество...

AttributeError: 'int' object has no attribute 'append'
Помогите пожалуйста разобраться For i in range(32): mas = for j in range(32): mas.append(0) кол_сочет.append(mas) //выдает...

Ошибка 'str' object no attribute 'getElementsByTagName'
from xml.dom.minidom import parse import urllib f = urllib.urlopen('http://rss-лента') xml = f.read() f.close() nd =...

ошибка AttributeError: 'int' object has no attribute 'f', хотя я не вижу в чём проблема
Здравствуйте, я понял что python говорит, то что f не в int, но она в int! По крайней мере мне так кажется. class EnemyBot: ...

Сделать pdf на основе базы данных (Ошибка: int object has no attribute decode)
Делаю PDF на основе данных из БД. возникает ошибка 'int' object has no attribute 'decode' вью: def spisok_pdf(request,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru