Ви намагаєтеся запустити базу коду Python 2 з Python 3. xrange()
був перейменований range()
в Python 3.
Запустіть гру замість Python 2. Не намагайтеся перенести його , якщо ви не знаєте , що ви робите, швидше за все , буде більше проблем поза xrange()
VS. range()
.
Для запису те, що ви бачите, - це не синтаксична помилка, а натомість виняток із виконання.
Якщо ви знаєте, чим займаєтесь, і активно робите базу даних коду Python 2 сумісною з Python 3, ви можете з’єднати код, додавши глобальне ім'я до свого модуля як псевдонім для range
. (Враховуйте, що вам, можливо, доведеться оновити будь-яке існуюче range()
використання в кодовій базі Python 2, list(range(...))
щоб переконатися, що ви все ще отримаєте об’єкт списку в Python 3):
try:
# Python 2
xrange
except NameError:
# Python 3, xrange is now named range
xrange = range
# Python 2 code that uses xrange(...) unchanged, and any
# range(...) replaced with list(range(...))
або замінити всі види використання xrange(...)
з range(...)
в кодову , а потім використовувати іншу підкладку , щоб зробити синтаксис Python 3 сумісний з Python 2:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
Останнє краще для кодових баз, які хочуть прагнути бути Python 3 сумісними лише в довгостроковій перспективі, простіше просто просто використовувати синтаксис Python 3, коли це можливо.