Skip to content

Commit 15b5a7b

Browse files
committed
Поправила заголовки
1 parent 3231c9d commit 15b5a7b

3 files changed

Lines changed: 27 additions & 18 deletions

File tree

1_python_basics/4_types.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
###Числа
1+
### Числа
22

33
В самом Питоне есть целые, вещественные, и комплексные числа. В стандартной библиотеке есть ещё рациональные и
44
фиксированной точности.
@@ -19,7 +19,7 @@
1919
короткая и понятная.
2020

2121

22-
###Строки
22+
### Строки
2323

2424
Со строками в третьем Питоне всё просто: они Юникодные.
2525

@@ -42,7 +42,7 @@
4242
много места.
4343

4444

45-
###Списки
45+
### Списки
4646

4747
Всё необходимое для начала работы со списками, есть в разделе ["Основные типы данных"](http://devman.org/encyclopedia/python_basics/python_basics_base_types/).
4848

@@ -68,7 +68,7 @@
6868
Это та же конструкция, что и в предыдущем примере, просто записанная очень компактно: посредине тот же цикл,
6969
слева – что добавлять в новый список, а справа - фильтр. Фильтр может быть необязательным, кстати.
7070

71-
###Словари
71+
### Словари
7272

7373
Словарь – это отображение одних элементов в другие. Первые называют ключами, вторые – значениями.
7474

@@ -97,7 +97,7 @@
9797
# level: 2
9898

9999

100-
###Кортежи
100+
### Кортежи
101101

102102
Кортеж выглядит как список, но не совсем. Это скорее структура из C++.
103103
Отличаются от списков тем, что его элементы гетерогенные и тем, что он умеет упаковываться и распаковываться.

1_python_basics/5_modules.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
###Что это такое
1+
### Что это такое
2+
23
Модуль – кусок кода, который можно использовать в другом коде. В самом простом случае это файл.
34
В любом проекте функциональность разбивается на куски, каждый кусок селится в свой модуль.
45

@@ -7,7 +8,8 @@
78
ещё десяток других модулей: Питон сам всё разрулит.
89

910

10-
###Как этим пользоваться
11+
### Как этим пользоваться
12+
1113
Имя модуля совпадает с именем файла и должно быть нормальным именем переменной в Питоне: например, не содержать
1214
знаков минуса.
1315

@@ -46,7 +48,7 @@
4648
Есть ещё вариант `from data_loaders import *`, но он вне закона. Забудьте о нём.
4749

4850

49-
###Запуск модуля как скрипта
51+
### Запуск модуля как скрипта
5052

5153
Когда Питон видит `import data_loaders`, он находит файл `data_loaders.py` и выполняет его. Реально выполняет:
5254
если в нём есть код, он будет выполнен. Даже если это не просто объявления функций, а их вызов. Представим,
@@ -92,7 +94,7 @@
9294
значение `__main__` ([доки](https://docs.python.org/3/library/__main__.html)). Хитро, а?
9395

9496

95-
###Подводные камни
97+
### Подводные камни
9698

9799
Главный подводный камень – рекурсивный импорт. Это если мы импортируем `data_loaders` из `bars`, а для `data_loaders`
98100
нужен `bars`. Вот так:
@@ -125,7 +127,7 @@
125127
максимально независимые общие функции, которые используются в других файлах. Не наоборот.
126128

127129

128-
###Как работает под капотом
130+
### Как работает под капотом
129131

130132
Важнее всего знать, как Питон выбирает файлы для импорта. Сначала он ищет подходящие файлы в рабочей директории,
131133
рядом с `bars.py`. Если не находит, то проходит по папкам в `sys.path` и ищет нужный файл.

1_python_basics/6_tips_and_tricks.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Тут – разные мелочи, на которых обычно спотыкаются новички в Питоне. Шагай свободно.
22

33

4-
###Итерируй сразу по коллекции, а не по индексам
4+
### Итерируй сразу по коллекции, а не по индексам
55

66
Раньше в C++ итерация по коллекции проходила так:
77

@@ -34,7 +34,8 @@
3434
Делай правильно и не делай неправильно.
3535

3636

37-
###Используй None
37+
### Используй None
38+
3839
Часто нужно предусмотреть какой-нибудь хреновый случай – нет файла с данными, не работает интернет,
3940
не хватает места на диске, пользователь ввёл неверные данные.
4041

@@ -54,7 +55,8 @@
5455
Не `if latitude == None` и не `if latitude`. Это важно.
5556

5657

57-
###Меньше вложенности
58+
### Меньше вложенности
59+
5860
Загрузим json из файла:
5961

6062
def load_json_data(filepath):
@@ -93,7 +95,8 @@
9395

9496
Теперь стало проще: меньше вложенности, просто читать. Меньше багов.
9597

96-
###Используй превращение типов в bool
98+
### Используй превращение типов в bool
99+
97100
Часто в коде приходится проверять переменные на нулевые значения.
98101
Например, пустой список:
99102

@@ -128,7 +131,8 @@
128131
Это облегчает код и не вредит читаемости.
129132

130133

131-
###Знай стандартную библиотеку
134+
### Знай стандартную библиотеку
135+
132136
Стандартная библиотека Питона огромная, в ней куча всего полезного.
133137
Стоит глянуть [на содержание](https://docs.python.org/3/library/), чтобы оценить масштаб.
134138

@@ -142,7 +146,8 @@
142146
и знать, где смотреть, если они понадобятся.
143147

144148

145-
###Понятные названия у всего
149+
### Понятные названия у всего
150+
146151
Названия должны однозначно говорить о том, зачем нужна сущность: переменная, функция или что-то ещё.
147152

148153
Переменные – это сущности, а их названия – это существительные (`user.level`) или их свойства (`user.is_admin`).
@@ -160,7 +165,8 @@
160165
создаёт ощущение неряшливости, а может и смыслу навредить – тогда о читаемости не может быть и речи.
161166

162167

163-
###Больше функций
168+
### Больше функций
169+
164170
Функции нужны, чтобы сделать код понятным и реиспользуемым.
165171

166172
Понятным – это когда с первого взгляда понятно, что он делает:
@@ -189,7 +195,8 @@
189195
из скрипта. `send_notifications_to_slack` ничего не знает о том, что `messages` к ней приехали от Фейсбука, для
190196
неё это просто сообщения, которые надо отправить пользователю `user`.
191197

192-
###Думай о пользователе
198+
### Думай о пользователе
199+
193200
Код нужен для того, чтобы им пользовались. Его цель – сделать пользователю удобно.
194201

195202
То, что задачи учебные и едва ли кто-то будет всерьёз ими пользоваться – не важно. Любой код должен быть удобен

0 commit comments

Comments
 (0)