Каковы ключевые различия между Python 2 и Python 3

Ответ

Python 3 является современным стандартом и не имеет обратной совместимости с Python 2 из-за ряда фундаментальных улучшений. Python 2 официально не поддерживается с 1 января 2020 года.

Ключевые различия:

  1. Функция print В Python 2 print был оператором, а в Python 3 стал функцией, что требует использования скобок. Это делает его более гибким (например, позволяет перенаправлять вывод).

    # Python 2
    print "Hello, World!"
    
    # Python 3
    print("Hello, World!")
  2. Деление целых чисел В Python 2 деление двух целых чисел (/) приводило к целочисленному делению (отбрасыванию остатка). В Python 3 оператор / всегда выполняет деление с плавающей точкой. Для целочисленного деления используется оператор //.

    # Python 2
    print 5 / 2  # Вывод: 2
    
    # Python 3
    print(5 / 2)   # Вывод: 2.5
    print(5 // 2)  # Вывод: 2
  3. Обработка строк (Unicode) Это одно из самых важных изменений. В Python 2 строки по умолчанию были ASCII (str), а для Unicode использовался отдельный тип unicode. В Python 3 все строки (str) по умолчанию являются Unicode (UTF-8), а для бинарных данных используется тип bytes.

  4. Функция range() В Python 2 range() создавал в памяти полный список чисел, что было неэффективно для больших диапазонов. Для создания итератора использовался xrange(). В Python 3 функция range() была переработана и теперь работает как xrange() из Python 2, возвращая итератор, а xrange() был удален.

  5. Синтаксис исключений Синтаксис для перехвата исключений был изменен и стал более явным.

    # Python 2
    except Exception, e:
    
    # Python 3
    except Exception as e: