в коде есть ошибки?

Написал код и вместо какого-либо 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, поэтому не работает

→ Ссылка
Автор решения: Nowhere Man

Фактически, @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
Нарушение!
→ Ссылка