- •Возможности языка Python3
- •Загрузка и установка Python Установка Python на Windows
- •Установка Python на linux системы (ubuntu, linux mint и другие)
- •Знакомство со средой разработки idle
- •Синтаксис
- •Несколько специальных случаев
- •Почему моя программа не работает?
- •Условный оператор if
- •Синтаксис инструкции if
- •Проверка истинности в Python
- •Ключевые слова, встроенные функции
- •Встроенные функции, использующие методы класса (логика может отличаться в зависимости от типа данных)
- •Встроенные функции, использующиеся в качестве декораторов
- •Встроенные функции, для перевода между системами счисления
- •Другие встроенные функции
- •Числа Целые числа (int)
- •Битовые операции
- •Дополнительные методы
- •Системы счисления
- •Вещественные числа (float)
- •Дополнительные методы
- •Комплексные числа (complex)
- •Округление чисел и его особенности
- •"Сырые" строки - подавляют экранирование
- •Строки в тройных апострофах или кавычках
- •Функции и методы строк Базовые операции
- •Другие функции и методы строк
- •Форматирование строк.
- •Форматирование строк с помощью метода format
- •Форматирование строк с помощью оператора %
- •Списки (list)
- •Функции и методы списков
- •Индексы и срезы Взятие элемента по индексу
- •Кортежи (tuple)
- •Зачем нужны кортежи, если есть списки?
- •Как работать с кортежами?
- •Операции с кортежами
- •Словари (dict)
- •Методы словарей
- •Множества (set и frozenset)
- •Функции Именные функции, инструкция def
- •Аргументы функции
- •Анонимные функции, инструкция lambda
- •Исключения и их обработка
- •Байтовые строки (bytes и bytearray)
- •Чтение из файла
- •Запись в файл
- •With ... As - менеджеры контекста
- •Внешний вид кода Отступы
- •Табуляция или пробелы?
- •Максимальная длина строки
- •Пустые строки
- •Кодировка исходного файла
- •Импорты
- •Пробелы в выражениях и инструкциях Избегайте использования пробелов в следующих ситуациях:
- •Другие рекомендации
- •Комментарии
- •Блоки комментариев
- •"Встрочные" комментарии
- •Строки документации
- •Предписания: соглашения по именованию Имена, которых следует избегать
- •Имена модулей и пакетов
- •Имена классов
- •Имена исключений
- •Имена глобальных переменных
- •Имена функций
- •Аргументы функций и методов
- •Имена методов и переменных экземпляров классов
- •Константы
- •Проектирование наследования
- •Общие рекомендации
- •Документирование кода в Python
- •Что такое строки документации?
- •Однострочные строки документации
- •Многострочные строки документации
- •Создание и подключение модулей
- •Подключение модуля из стандартной библиотеки
- •Использование псевдонимов
- •Инструкция from
- •Создание своего модуля на Python
- •Как назвать модуль?
- •Куда поместить модуль?
- •Можно ли использовать модуль, как самостоятельную программу?
- •Объектно-ориентированное программирование. Общее представление
- •Инкапсуляция, наследование, полиморфизм
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Перегрузка операторов
- •Перегрузка арифметических операторов
- •Декораторы
- •Передача декоратором аргументов в функцию
- •Декорирование методов
- •Декораторы с аргументами
- •Некоторые особенности работы с декораторами
- •Примеры использования декораторов
- •Python2 vs Python3: различия синтаксиса Print - функция
- •Отображения и итераторы вместо списков
- •Операторы сравнения
- •Целые числа
- •Текст, Unicode и 8-битные строки
- •Обзор изменений синтаксиса
- •Новый синтаксис
- •Изменённый синтаксис
- •Удаленный синтаксис
- •Встроенные функции
- •Введение в Python с PyCharm Educational Edition
- •Компиляция программы на python 3 в exe с помощью программы cx_Freeze
- •Вопрос 1: а оно надо?
- •Установка cx_Freeze
- •Компиляция
- •NumPy: начало работы
- •Установка NumPy
- •Начинаем работу
- •Создание массивов
- •Печать массивов
- •NumPy: базовые операции над массивами Базовые операции
- •Индексы, срезы, итерации
- •Манипуляции с формой
- •Объединение массивов
- •Разбиение массива
- •Копии и представления
- •Вообще никаких копий
- •Представление или поверхностная копия
- •Глубокая копия
- •Путь первый
- •Создание массивов
- •Выбор и перемешивание
- •Инициализация генератора случайных чисел
- •Что нового в Python 3,3? Основная информация
- •Pep 405: Виртуальная среда
- •Pep 420: Пространство имен пакетов
- •Pep 393: гибкое представление строк
- •Функциональность
- •Производительность и использование ресурсов
- •Pep 3151: Переработка ос и io иерархии исключений
- •Pep 380: Синтаксис для делегирования Subgenerator
- •Pep 409: Подавление контекста исключения
- •Полные имена для классов и функций
- •Pep 412: Ключ-шеринг словари
- •Вышел Python 3.4.0 Новые особенности:
- •Новые модули:
- •Значительно улучшенные модули:
- •Улучшения безопасности:
- •Улучшения cPython:
- •Pythondigest.Ru - самые свежие новости из мира Python
- •Модуль fractions
- •Модуль cmath
- •Модуль glob
- •Модуль copy - поверхностное и глубокое копирование объектов
- •Модуль functools
- •Модуль os.Path
- •Модуль json
- •Кодировщики и декодировщики
- •Модуль calendar
- •Модуль os
- •Модуль pickle
- •Модуль datetime
- •Классы, предоставляемые модулем datetime:
- •Модуль bisect
- •Модуль collections
- •Модуль array. Массивы в python
- •Методы массивов (array) в python
- •Модуль itertools
- •Модуль time
- •Модуль sys
- •Модуль random
- •Модуль math
- •Задача про словарь
- •Пишем блэкджек
- •Интерпретатор brainfuck
Почему моя программа не работает?
Моя программа не работает! Что делать? В данном материале я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.
Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.
Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.
Решение: запускать программу через IDLE или через консоль.
Проблема: Не работает функция input. Пишет SyntaxError.
Пример кода:
>>> a = input()
hello world
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
hello world
^
SyntaxError: unexpected EOF while parsing
Причина: Вы запустили Python 2.
Решение: Установить Python 3.
Проблема: Где-то увидел простую программу, а она не работает.
Пример кода:
name = raw_input()
print name
Ошибка:
File "a.py", line 3
print name
^
SyntaxError: invalid syntax
Причина: Вам подсунули программу на Python 2.
Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:
name = input()
print(name)
Проблема: TypeError: Can't convert 'int' object to str implicitly.
Пример кода:
>>> a = input() + 5
8
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
Причина: Нельзя складывать строку с числом.
Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
>>> a = int(input()) + 5
8
>>> a
13
Проблема: SyntaxError: invalid syntax.
Пример кода:
a = 5
if a == 5
print('Ура!')
Ошибка:
File "a.py", line 3
if a == 5
^
SyntaxError: invalid syntax
Причина: Забыто двоеточие.
Решение:
a = 5
if a == 5:
print('Ура!')
Проблема: SyntaxError: invalid syntax.
Пример кода:
a = 5
if a = 5:
print('Ура!')
Ошибка:
File "a.py", line 3
if a = 5
^
SyntaxError: invalid syntax
Причина: Забыто равно.
Решение:
a = 5
if a == 5:
print('Ура!')
Проблема: NameError: name 'a' is not defined.
Пример кода:
print(a)
Причина: Переменная "a" не существует. Возможно, вы опечатались в названии или забыли инициализировать её.
Решение: Исправить опечатку.
a = 10
print(a)
Проблема: IndentationError: expected an indented block.
Пример кода:
a = 10
if a > 0:
print(a)
Причина: Нужен отступ.
Решение:
a = 10
if a > 0:
print(a)
Проблема: TabError: inconsistent use of tabs and spaces in indentation.
Пример кода:
a = 10
if a > 0:
print(a)
print('Ура!')
Ошибка:
File "a.py", line 5
print('Ура!')
^
TabError: inconsistent use of tabs and spaces in indentation
Причина: Смешение пробелов и табуляции в отступах.
Решение: Исправить отступы.
a = 10
if a > 0:
print(a)
print('Ура!')
Проблема: UnboundLocalError: local variable 'a' referenced before assignment.
Пример кода:
def f():
a += 1
print(a)
a = 10
f()
Ошибка:
Traceback (most recent call last):
File "a.py", line 7, in <module>
f()
File "a.py", line 3, in f
a += 1
UnboundLocalError: local variable 'a' referenced before assignment
Причина: Попытка обратиться к локальной переменной, которая ещё не создана.
Решение:
def f():
global a
a += 1
print(a)
a = 10
f()
Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.
Пример кода:
>>> f = open('output.txt', 'w', encoding='utf-8')
>>> f.write('bla')
3
>>>
Причина: Не закрыт файл, часть данных могла остаться в буфере.
Решение:
>>> f = open('output.txt', 'w', encoding='utf-8')
>>> f.write('bla')
3
>>> f.close()
>>>
