С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/30: Рейтинг темы: голосов - 30, средняя оценка - 4.57
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107

Ошибка NameError: name 'road' is not defined

21.02.2019, 11:22. Показов 6136. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю сейчас книгу - К.Ю. Поляков, Е.А. Еремин
там описан код
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
32
33
34
class TRoad:
       def _init_ ( self,  legth0, width0 ):    # конструктор
        if  length0 > 0:
               self.lenght = lenght0
        else:
               self.lenght = 0
        if  with0  > 0:
                self.width = width0
        else:
            self.widh = 0
 
class TCar:
    def _init_ ( self, road0, p0, v0 ):  # конструтор
        self.road = road0
        self.P = p0
        self.V = v0
        self.X = 0
 
def move ( self ):    # движение машины
    self.X += self.V
    if self.X  > self.road.lenght:
        self.X = 0
 
N = 3
cars = [ ]
for i in range (N):
    cars.append ( TCar (road,  i+1, 2*(i+1)) )
    
for i  in rang (100):   #  100 шагов
     for i in rang (N):    #  для каждой машины
            cars [ i ] . move()
print (  " После 100 шагов: " )
for i in range (N):
      print ( cars [ i ] . X )
Что не правильно? и Если можно подробно объяснить.
Если я правильно понял. Проблема в том что программа class не видит.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2019, 11:22
Ответы с готовыми решениями:

Ошибка NameError: name 'c' is not defined
what = input ( "Что делаем? (+, -, *, / ): " ) a = float( input("Ведите первое число: ") ) b = float( input("Ведите второе...

Ошибка NameError: name 'temperature' is not defined
Не понимаю, почему возникает данная ошибка, если я при переопределении класса указал переменные Traceback (most recent call last): ...

Ошибка NameError: name 'a' is not defined
Здравствуйте, я новичок в PYTHON, ошибка, видаёт, внизу. Помогите пожалуйста или подскажите как и что сделать. Буду очень благодарен,...

5
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.02.2019, 14:50
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

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 TRoad:
    def __init__(self, lenght0, width0):
        self.lenght = max(0, lenght0)
        self.width = max(0, width0)
 
class TCar:
    def __init__(self, road0, p0, v0):
        self.road = road0
        self.P = p0
        self.V = v0
        self.X = 0
 
    def move(self):
        self.X += self.V
        if self.X > self.road.lenght:
            self.X = 0
 
road = TRoad(100, 2)
 
N = 3
cars = []
for i in range(N):
    cars.append(TCar(road,  i+1, 2*(i+1)))
 
for _ in range(100):
    for car in cars:
        car.move()
 
print("После 100 шагов:")
for car in cars:
      print( car.X)
1
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
21.02.2019, 20:03  [ТС]
Спасибо за ответРыжий Лис . Не могли бы вы объяснить:
1) class TRoad почему вы убрали - if и else
2) я понял что оператор "__init__" был не верно записан.
3) вы добавили - road = TRoad(100, 2). Блин видимо просмотрел в книги:
В этом конструкторе проверяется правильность переданных параметров, чтобы по ошибке длина и ширина дороги не оказались отрицательными. Теперь создавать объект будет проще:road=TRoad( 60, 3 ) Длина этой дороги –60 единиц, она содержит 3 полосы.
4) car был не правильно прописан.
5) почему в 25 стооке после for _
в книге написано:
for k in range(100): # 100 шагов
for i in range(N): # для каждоймашины
cars[i].move()
Я просто и 'k' провал и 'i' не работало.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.02.2019, 08:10
Цитата Сообщение от Xrom123 Посмотреть сообщение
class TRoad почему вы убрали - if и else
т.к. ваше условие это фактически сравнение двух элементов, из которых переменной lenght присваивается наибольшее.
Цитата Сообщение от Xrom123 Посмотреть сообщение
почему в 25 стооке после for _
т.к. переменная цикла нигде не используется.
Python
1
2
3
4
for i in range(10):
    print(i) # i используется
for i in range(10):
    print('lol') # i не используется
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.02.2019, 06:36
1) просто переписал попроще. Поведение не изменилось.
2) Ага. И ещё имя функции range() и других.
3) Угу, поэтому интерпретатор и ругался на несуществующую переменную: NameError: name 'road' is not defined
4) Выговорите про метод move()? Ага, табуляция съехала.
5) вы в обоих циклах написали i. Можно писать любые имена, хоть i и j, хоть другие.
1
20 / 6 / 1
Регистрация: 29.08.2018
Сообщений: 107
24.02.2019, 10:16  [ТС]
Рыжий Лис спасибо за ответ.
Еще вопрос в задание нужно вставить в

class TCar: Графическое дополнение что бы был не только вывод информации. но и визуализация.
Все перепробовал не получается хоть тресни.
только если через - import turtle*
а в конце программы пишешь
t.forward(N)
То получается 1 прямая.
Но это же не правильно.
Не подскажите как нужно сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2019, 10:16
Помогаю со студенческими работами здесь

Ошибка в программе NameError: name 'k' is not defined
Ошибка в программе на языке Python! # -*- coding: cp1251 -*- print("Добро пожаловать в калькулятор вкладов v1.3") start =...

Ошибка: NameError: name 'user_unput_start' is not defined
Добрый день. Только начал изучать Python. С другими языками опыт есть. Но все не на высоком уровне... Вот сам код: def start_func(): ...

Ошибка в коде NameError: name 'b2' is not defined
Помогите с ошибкой в коде NameError: name 'b2' is not defined код: from tkinter import * def zachem(): ...

Не работает код. Ошибка NameError: global name 'Pizza' is not defined. Что я не правильно делаю?
from livewires import games games.init(screen_width = 500, screen_height =380, fps = 20) class Pizza(games.Sprite): def...

Ошибка при создании бота Вконтакте " NameError: name 'vk' is not defined "
Хочу научиться создавать бота в группе ВК, но не могу сдвинуться с места. В интернете ничего не нашел. Выдаёт ошибку " NameError: name...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru