Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
924b20b
* начальные корректировки опечаток
Sep 21, 2016
e7c0d7e
* исправлены опечатки в examples 2-го урока
Sep 21, 2016
bd376c6
* исправлены опечатки в examples 1-го урока
Sep 21, 2016
9d06de5
* испралены опечатки в Home_work 1-го урока
Sep 21, 2016
81d5797
* исправлены опечатки в examples 3-го урока
Sep 21, 2016
ae12b3e
* исправлены опечатки в home_work 3-го урока.
Sep 21, 2016
f4affee
* исправлены опечатки в examples 4-го урока
Sep 21, 2016
6ecb67e
* исправлены опечатки в home_work 4-го урока
Sep 21, 2016
71cfd6a
* исправлены опечатки в examples 5-го урока
Sep 21, 2016
add01d8
* исправлены опечатки в home_work 5-го урока
Sep 21, 2016
24986cc
* исправлены опечатки в examples 6-го урока
Sep 21, 2016
6ff8309
* исправлены опечатки в home_work 6-го урока
Sep 21, 2016
0bbd115
* исправлены опечатки в examples 7-го урока
Sep 21, 2016
89e8590
* исправлены опечатки в examples 8-го урока
Sep 21, 2016
975bcd7
* исправлены опечатки в README.md
Sep 23, 2016
4791352
* исправлены опечатки
Oct 8, 2016
892693a
+ добавлено ДЗ_7 - игра Лото
Dec 1, 2016
dc38061
* исправления опечаток
Jan 31, 2017
2479f85
Скорректированы формулировки заданий.
Feb 18, 2017
f0fdd21
Скорректированы длины строк в файлах ДЗ.
Feb 18, 2017
55ab7bc
+ подсказки к ДЗ-1
Mar 11, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

/*.zip
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Оглавление

### Урок 1: Знакомство с python
1. Где используется питон?
1. Где используется Питон?
1. Сильные стороны языка
1. Установка и запуск интерпретатора python
1. Выполнение .py файлов из консоли
Expand All @@ -21,7 +21,7 @@
1. Форматирование строк
1. Списки (list)
1. Кортежи (tuple)
1. Последовательности (итераторы) обобщение
1. Последовательности (итераторы), обобщение
1. Обход последовательностей (цикл for in)
1. Словари (dict)
1. Множества (set)
Expand All @@ -43,17 +43,17 @@
1. Тернарный оператор if else
1. Оператор is
1. Генераторы списков, словарей
1. Сырые строки (r"")и регулярные выражения
1. Обработка исключений (try except)
1. Сырые строки (r"") и регулярные выражения
1. Обработка исключений (try..except)

### Урок 5: Модули и библиотеки
1. Подключение модулей(import, from)
1. Подключение модулей (import, from)
1. Создание модулей
1. Пространство имен модуля
1. Дополнительные возможности модулей
1. Модули os, sys

### Урок 6: Объектно Ориентированное Программирование
### Урок 6: Объектно-Ориентированное Программирование
1. Введение в ООП
1. Классы
1. Инкапсуляция
Expand All @@ -72,9 +72,9 @@
1. Паттерн Делегирование
1. Создание собственных исключений
1. Подведение итогов
1. Несколько слов о программа Python Advanced:
1. Герераторы (yield)
1. Несколько слов о программе Python Advanced:
1. Генераторы (yield)
1. Декораторы
1. Множественное наследование
1. Много-поточные приложения
1. Многопоточные приложения
1. Системные скрипты на python
11 changes: 6 additions & 5 deletions lesson01/examples/1_operation_instruction.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
print('9/3 = ', 9 / 3) # операция деления в python3 всегда возвращает дробный результат
print('(60-2*4)/2 = ', (60-2*4)/2)

# целочисленное деление
print('6//5 = ', 6 // 5) # вернет 1
# Целочисленное деление
print('6//5 = ', 6 // 5) # вернет 1
print('6.0//5 = ', 6.0 // 5) # вернет float 1.0

# Остаток от деления
print('7%2 = ', 7 % 2) # вернет остаток от деления

print(2 ** 4) # возведение в степень
print(2 ** 4) # возведение в степень
print((2+3j)**2) # комплексные числа


Expand All @@ -30,13 +30,14 @@
print(4 / 2)
print(6 - 4)

# Унарные операции
# Унарные операции (один операнд)
a = -5
print(-a) # меняет знак на противоположный
print(not True) # инвертор. True --> False, False --> True

# !Инструкции говорят интерпретатору что нужно сделать, но НЕ возвращают результата
n = 12 # присваивание в Python это инструкция
n = 12 # присваивание в Python - это инструкция

# Инструкции Не допускаются там, где python ожидает значение
# 2 + n = 4 <-- ошибка

Expand Down
13 changes: 4 additions & 9 deletions lesson01/examples/2_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
# Переменные и типы данных
# =================================

# Переменые используются для хранения данных в программе
# Переменные используются для хранения данных в программе

# Требования к имени переменных:
# 1. Имя переменной может содержать a-z, A-Z, 0-9, _ (сомвол нижнего подчеркивания)
# 1. Имя переменной может содержать a-z, A-Z, 0-9, _ (символ нижнего подчеркивания)
# 2. Имя переменной не может начинаться с цифры
# 3. Не рекомендуется использовать зарезервированные слова и имена встроенных функций
# в качестве имени переменной

# type() - позволяет узнать тип данных, хранящихся в переменной
x = 10 # int
print('type(10) -> ', type(x))
# python язык с динамической типизацией. Переменная может указывать на объекты различных типов.
# python - язык с динамической типизацией. Переменная может указывать на объекты различных типов.
x = -2.4 # float
print('type(-2.4) -> ', type(x))

# print(X) <-- ошибка
# Нельзя использовать переменную прежде чем ей будет присвоено значение
# x и X - разные переменные, python регистрочувствительный
# x и X - разные переменные, python - регистрочувствительный

x += 1 # краткая запись выражения: x = x + 1
print('x = ', x)
Expand Down Expand Up @@ -56,8 +56,3 @@
# None равен только себе и никакому другому типу
print(None == None)






1 change: 1 addition & 0 deletions lesson01/examples/3_input_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
print('Приветствую,', name)

# input() - запросить ввод с клавиатуры
# raw_input() - для Python 2.x
name = input('Введите ваше имя: ')
print('Приятно познакомиться,', name)

Expand Down
6 changes: 3 additions & 3 deletions lesson01/examples/4_logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@
x = True
y = False
print('bool --> ', x, '/', y)
print("1 + True = ", 1 + True) # True по сути и есть 1
print("1 + True = ", 1 + True) # True, по сути, и есть 1

# Логические опараторы
# > Больше
# < Меньше
# == Равно
# != Не равно
# >= Больше или раво
# >= Больше или равно
# <= Меньше или равно
print("5 > 6 -->", 5 > 6)
print("2 != 7 -->", 2 != 7)

# Любое значение может быть преобразовано с логическому типу функией bool()
# Любое значение может быть преобразовано к логическому типу функией bool()
print("bool(0) -->", bool(0))
print("bool(-1) -->", bool(-1))
print("bool('') -->", bool(""))
Expand Down
18 changes: 9 additions & 9 deletions lesson01/examples/5_if_else.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Логические выражения и ветвление
# =================================

# Результат любого логического выражения либо "Ложь" (False) либо "Истина" (True)
# Результат любого логического выражения либо "Ложь" (False), либо "Истина" (True)
# Логические операторы >(больше) <(меньше) ==(равно) !=(не равно) >=(Больше или равно) <=(меньше или равно)

print('2 > 4 --> ', 2 > 4)
Expand All @@ -13,25 +13,25 @@
print('2 < 0 < 10 -->', 2 < 0 < 10)

# Операторы and(и), or(или), not(не)
print('2 > 0 and 2 > 10 -->', 2 > 0 and 2 > 10) # True если оба выражения True
print('2 > 0 or 2 > 10 -->', 2 > 0 or 2 > 10) # True если любое выражение True
print('2 > 0 and 2 > 10 -->', 2 > 0 and 2 > 10) # True, если оба выражения True
print('2 > 0 or 2 > 10 -->', 2 > 0 or 2 > 10) # True, если любое выражение True
print('not(2 > 0) -->', not(2 > 0)) # инвертор - меняет результат на противоположный

# Операторы ветвления
age = 12
if age >= 18:
print('Пользователь совершеннолтний')
print('Пользователь совершеннолетний')
access = True # доступ куда-либо
else:
print('Пользователь НЕсовершеннолтний')
print('Пользователь НЕсовершеннолетний')
access = False # доступ куда-либо

# if <логическое выражение>:
# блок if
# блок if
# блок if

# !!!В языке python операторными скобками(отделяющими блоки) являются ОДИНАКОВЫЕ оступы слева
# !!!В языке python операторными скобками (отделяющими блоки) являются ОДИНАКОВЫЕ оступы слева

# После инструкции if может находиться любое значение, которое будет автоматически преобразовано к типу bool
if 2 + 2 - 8:
Expand All @@ -56,11 +56,11 @@

if color == 'blue':
print('синий')
elif color == 'red': # elif сокращение от else if(иначе если)
elif color == 'red': # elif сокращение от else if (иначе если)
print('красный')
elif color == 'green':
print('зеленый')
else: # else выполняется только если все предыдущие проверки вернули False
else: # else выполняется, только если все предыдущие проверки вернули False
print('неизвестный цвет')

# Допускается вкладывать инструкции друг в друга:
Expand All @@ -69,7 +69,7 @@
if n < 50:
print('n больше нуля, но меньше 50')
# !Но старайтесь избегать вложения, чем больше уровень вложенности, тем сложнее читать ваш код
# Предыдцщий код лучше переписать так:
# Предыдущий код лучше переписать так:
if n > 0 and n < 50:
print('n больше нуля, но меньше 50')
# Или так:
Expand Down
2 changes: 1 addition & 1 deletion lesson01/examples/6_cycle_while.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# тело цикла

# Тело цикла будет повторяться до тех пор, пока выражение после while --> True
# Как только выражение --> False работа цикла прекращается
# Как только выражение --> False, работа цикла прекращается

# while True: # Бесконечный цикл
# pass # Инструкция заглушка, ставится там, где вы планируете дописать код позднее
Expand Down
20 changes: 17 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
# Задача-1: Дано произвольное целое число, вывести поочередно цифры исходного числа

__author__ = 'Ваши Ф.И.О.'

# Задача-1: Дано произвольное целое число (число заранее неизвестно).
# Вывести поочередно цифры исходного числа (порядок вывода цифр неважен).
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании решите задачу с применением цикла for.

# код пишем тут...


# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Не нужно решать задачу так: print("a = ", b, "b = ", a) - это неправильное решение!
# Подсказка:
# * постарайтесь сделать решение через дополнительную переменную
# или через арифметические действия
# Не нужно решать задачу так:
# print("a = ", b, "b = ", a) - это неправильное решение!


# Задача-3: Запросите у пользователя год рождения. Если ему есть 18 лет, выведите: "Доступ разрешени",
# Задача-3: Запросите у пользователя его возраст.
# Если ему есть 18 лет, выведите: "Доступ разрешен",
# иначе "Извините, пользование данным ресурсом только с 18 лет"
9 changes: 8 additions & 1 deletion lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@

__author__ = 'Ваши Ф.И.О.'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
# Код: a == a**2
Expand All @@ -6,4 +9,8 @@
# Результат: True
# Код: a > 999999
# Результат: True
# Вопрос: Чему была равна переменная a, если точно известно что её значение не изменялось?

# Вопрос: Чему была равна переменная a,
# если точно известно, что её значение не изменялось?

# Подсказка: это значение точно есть ;)
24 changes: 20 additions & 4 deletions lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа

__author__ = 'Ваши Ф.И.О.'

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375.
# Нужно вывести максимальную цифру в данном числе, т.е. 8.
# Подразумевается, что мы не знаем это число заранее.
# Число приходит в виде целого беззнакового.
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.


# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Решите задачу используя только две переменные
# Решите задачу, используя только две переменные.
# Подсказки:
# * постарайтесь сделать решение через действия над числами;
# * при желании и понимании воспользуйтесь синтаксисом кортежей Python.


# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида ax2 + bx + c = 0.
# Для вычисления квадратного корня воспользуйтесь функицй sqrt() молудя math
# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4
11 changes: 6 additions & 5 deletions lesson02/examples/1_strings.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
# Многострочные строки
s3 = '''Lorem ipsum
dolor sit amet'''

print("-"*10) # Операция мультипликация - дублирование строки
print(s3)
print("-"*10) # Добавил для улучшения читабельности вывода
Expand All @@ -29,15 +30,15 @@
print("*******Операции со строками********")
# 1. Строки можно складывать:
print('Hello' + ' ' + 'world')
# 2. Если строки идут друг за другом, + можно опустить (конкатенация строк прозойдет автоматически):
# 2. Если строки идут друг за другом, + можно опустить (конкатенация строк произойдет автоматически):
print('Hello' ' ' 'world')
# 3. Строки повторять операцией *:
print('Hey! ' * 3)

string = 'произвольна строка'
string = 'произвольная строка'
print('string = ', string)
# 4. Получение символа строки по индексу:
# Все элементы строки нумеруются порядковыми индексами (первый индекс НОЛЬ):
# Все элементы строки нумеруются порядковыми индексами (первый индекс - НОЛЬ):
print('string[1] --> ', string[1])

# 5. Срезы
Expand Down Expand Up @@ -73,7 +74,7 @@

# 6. Срезы с шагом
print('string[:12:2] -->', string[:12:2]) # Получаем каждый второй символ для указанного среза
print('string[::-1] -->', string[::-1]) # Переворачиваем строку задом наперед
print('string[::-1] -->', string[::-1]) # Переворачиваем строку задом наперед

# 7. Длина строки:
print(len(s))
Expand All @@ -84,7 +85,7 @@
# Пока воспринимайте метод как функцию, принимающую значение перед точкой в качестве первого аргумента
# 'hello'.upper() воспринимайте как upper('hello')

# Методы строк всегда возвращат новую строку, не изменяя исходную, т.к. строка неизменяемая
# Методы строк всегда возвращают новую строку, не изменяя исходную, т.к. строка неизменяемая
print("'иван'.title() -->", 'иван'.title())
print("'python'.upper() -->", 'python'.upper())
print("'трололошка'.find('ло') -->", 'трололошка'.find('ло', 4)) # индекс искомой подстроки (первое вхождение)
Expand Down
2 changes: 1 addition & 1 deletion lesson02/examples/2_string_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# Старый способ форматирования
print('Welcome, %s %s, to our conference' % (name, surname))

# Более новый и гибкий метод
# Более новый и гибкий метод
print('Welcome, {} {}, to our conference'.format(name, surname))
print('Welcome, {1} {0}, to our conference'.format(name, surname))

Expand Down
Loading