Это взято из моего блога (palukingston.com), где я пишу о своем процессе обучения в качестве тестировщика и разработчика программного обеспечения. Спасибо, что заглянули!
13 февраля 2017 г.
Около недели назад я решил изучить python. Я просмотрел несколько руководств, изучил основы и все такое. Однако через несколько дней я наткнулся на стену в своем прогрессе в обучении. После того, как я сдался, я выспался и решил, что если подход одного туториала не помогает, то почему бы не изменить его! Я решил найти учебник по созданию простого приложения, чтобы получить практический опыт. Я довольно быстро остановился на учебнике YouTube от 2012 года. Я знал, что это потенциально может привести к головной боли, поскольку парень в руководстве использовал более старую версию Python, а также другую IDE. Но эй - это только сделает его более интересным!
Итак — я обнаружил свое первое несоответствие в синтаксисе Python между версиями. В уроке мы писали «случайную» игру на угадывание чисел. Была объявлена переменная integer 35 (randomNumber = 35). В учебнике вы написали оператор userGuess = input («Ваше предположение:»). Когда я запустил программу, это был результат:
Guess a number between 1 and 100. Your guess:1 Traceback (most recent call last): File "C:/Users/paluk_000/PycharmProjects/SimplePythonProgram_excercise/First.py", line 24, in <module> main() File "C:/Users/paluk_000/PycharmProjects/SimplePythonProgram_excercise/First.py", line 16, in main elif userGuess > randomNumber: TypeError: unorderable types: str() > int()
Я билась головой о стену около 3 минут и решила, вместо того, чтобы смириться со своим разочарованием, почему бы не спросить оракула Google? Один быстрый поиск и запись на stackoverflow.com пролили свет на мою проблему. По-видимому, в моей версии Python вы должны объявить переменную input как тип данных int, а также заключить в скобки оператор печати. Милая, проблема решена относительно легко и быстро!
Хорошо, еще одно несоответствие — утверждение в этом уроке
print random.randint(1,10)
.. использует неправильный синтаксис. Правильное утверждение оказалось таким:
print(random.randint(1,10))
Надо запомнить эти чертовы скобки!
Ага! Еще одна ошибка:
C:\Python34\python.exe C:/Users/paluk_000/PycharmProjects/SimplePythonProgram_excercise/First.py Guess a number between 1 and 100. Your guess:1 Guess higher! nnnnn Thanks for playing our game. Your guess:t Traceback (most recent call last): File "C:/Users/paluk_000/PycharmProjects/SimplePythonProgram_excercise/First.py", line 30, in <module> main() File "C:/Users/paluk_000/PycharmProjects/SimplePythonProgram_excercise/First.py", line 16, in main userGuess = int (input("Your guess:")) ValueError: invalid literal for int() with base 10: 't' Process finished with exit code 1
Хорошие времена!