в коде есть ошибки?
Написал код и вместо какого-либо print()
мне ничего не пишет, почему?
transport = input('Введите вид транспорта(мотоцикл или машина): ').lower
speed = int(input('Введите скорость транспорта: '))
if transport == 'машина':
if speed < 80:
print('Нет нарушений')
else:
print('Нарушение!')
if transport == 'мотоцикл':
if speed < 60:
print('Нет нарушений')
else:
print('Нарушение!')
Ответы (2 шт):
Фактически, @kabanery указал в своём ответе, как решить проблему в представленном коде -- достаточно было поставить скобки после указания функции lower
, чтобы эта функция была действительно вызвана для строки, полученной после вызова метода input
, и была бы получена требуемая строка в нижнем регистре.
Без скобок же в переменную transport
запишется ссылка на встроенный метод lower
.
Также следовало бы задуматься о возможной реальной причине отсутствия вывода.
Дело в том, что условия if
не охватывают все возможные значения переменной transport
, то есть даже при исправлении первоначальной опечатки в коде весьма вероятно, что программа ничего не напечатает, если к примеру пользователь неверно введёт один из указанных вариантов.
То есть, прежде всего следовало бы добавить вывод для любого необрабатываемого значения transport
.
Тогда в коде с первоначальной опечаткой можно будет получить следующий вывод:
transport = input('Введите вид транспорта(мотоцикл или машина): ').lower
speed = int(input('Введите скорость транспорта: '))
if transport == 'машина':
if speed < 80:
print('Нет нарушений')
else:
print('Нарушение!')
elif transport == 'мотоцикл':
if speed < 60:
print('Нет нарушений')
else:
print('Нарушение!')
else: # необработанный случай
print("Неизвестный транспорт:", transport)
Вывод:
Введите вид транспорта(мотоцикл или машина): машина
Введите скорость транспорта: 55
Неизвестный транспорт: <built-in method lower of str object at 0x7fe390462090>
Сразу видна проблема с кодом.
После исправления опечатки lower()
возможны варианты:
- Необрабатываемый ввод:
Введите вид транспорта(мотоцикл или машина): МОТО
Введите скорость транспорта: 66
Неизвестный транспорт: мото
- Корректный ввод:
Введите вид транспорта(мотоцикл или машина): Машина
Введите скорость транспорта: 90
Нарушение!