Это взято из моего блога (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

Хорошие времена!