условный оператор, использующий словарь, не работает с python3 на python2.4 - PullRequest
0 голосов
/ 25 сентября 2019

Я написал небольшой скрипт для перебора словаря в python3, который прекрасно работает.Я работал на другой машине, на которой был установлен только python2.4.Я скопировал скрипт и запустил, и теперь код не входит в оператор if внутри цикла for.Я предполагаю, что это просто несоответствие версий.

Я пытался посмотреть в Интернете, чтобы увидеть, какие могут быть различия между версиями.Самое близкое, к чему я пришел, это 'dict.iterkeys ()'

tests = {'1':'test1','2':'test2'}

answer = input('which test? ')

for test in tests:
    if test == answer:
        print(tests[test])

Ожидаемый вывод для тестов, которые я хочу напечатать.Тем не менее, в Python версии 2.4 он не вводит оператор if вообще.В python3 этот скрипт работает просто отлично.

Любое понимание помогает.

Спасибо!

1 Ответ

1 голос
/ 25 сентября 2019

Python3 заменил старый оператор ввода на функциональность Python 2 raw_input.Раньше он вычислял входные данные, теперь для безопасности он передается в виде строки.

Заменить строку: (py3)

answer = input('which test? ')

на: (py2)

answer = raw_input('which test? ')

Или:

answer = str(input('which test? '))

Подробнее см. PEP3111 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...