Skip to content

Commit 5e4fad5

Browse files
authored
Add Ukrainian translation 🇺🇦 (trekhleb#112)
* docs: add Ukrainian translation of README Add README.uk-UA.md with full Ukrainian translation following the 2019 Ukrainian orthography rules. Update language navigation links in all existing README translations (en, es-ES, pt-BR, zh-TW). * docs(i18n): add Ukrainian translations for getting started guides Translate what_is_python.md and python_syntax.md to Ukrainian, and update links in README.uk-UA.md to point to the translated versions.
1 parent 7d36c78 commit 5e4fad5

File tree

7 files changed

+303
-4
lines changed

7 files changed

+303
-4
lines changed

README.es-ES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
> Esta es una colección de scripts de Python divididos en [categorías](#contenido) que contienen
66
ejemplos de código con sus explicaciones, diferentes usos y links a recursos adicionales.
77

8-
> _Lee esto en:_ [_Inglés_](README.md), [_Portugués_](README.pt-BR.md), _Traditional Chinese_](README.zh-TW.md).
8+
> _Lee esto en:_ [_Inglés_](README.md), [_Portugués_](README.pt-BR.md), [_Traditional Chinese_](README.zh-TW.md), [_Українська_](README.uk-UA.md).
99
1010
Es un **playground** ya que puedes cambiar o añadir cosas al código para ver
1111
cómo funciona y [probarlo](#probando-el-código) usando aserciones. También puedes

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
> This is a collection of Python scripts that are split by [topics](#table-of-contents) and contain
1515
code examples with explanations, different use cases and links to further readings.
1616

17-
> _Read this in:_ [_Português_](README.pt-BR.md), [_Español_](README.es-ES.md), [_Traditional Chinese_](README.zh-TW.md).
17+
> _Read this in:_ [_Português_](README.pt-BR.md), [_Español_](README.es-ES.md), [_Traditional Chinese_](README.zh-TW.md), [_Українська_](README.uk-UA.md).
1818
1919
It is a **playground** because you may change or add the code to see how it works
2020
and [test it out](#testing-the-code) using assertions. It also allows you

README.pt-BR.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
> Essa é uma coleção de scripts Python dividida em [tópicos](#índice) que contém
66
exemplos de código com explicações, diferentes usos e links para outras leituras.
77

8-
> _Ler em:_ [_English_](README.md), [_Español_](README.es-ES.md), [_Traditional Chinese_](README.zh-TW.md).
8+
> _Ler em:_ [_English_](README.md), [_Español_](README.es-ES.md), [_Traditional Chinese_](README.zh-TW.md), [_Українська_](README.uk-UA.md).
99
1010
É um **playground** porque você pode fazer alterações no código para ver como ele se comporta,
1111
além de [testá-lo](#testando-o-código) usando asserções. Também é possível

README.uk-UA.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# Пісочниця та шпаргалка для вивчення Python
2+
3+
> 🇺🇦 УКРАЇНА [ЗАЗНАЄ ЗБРОЙНОЇ АГРЕСІЇ](https://war.ukraine.ua/) З БОКУ РОСІЙСЬКОЇ АРМІЇ. ГИНУТЬ МИРНІ ЖИТЕЛІ. ЖИТЛОВІ КВАРТАЛИ ЗАЗНАЮТЬ БОМБАРДУВАНЬ.
4+
> - Допоможіть Україні:
5+
> - [Благодійний фонд Сергія Притули](https://prytulafoundation.org/en/)
6+
> - [Благодійний фонд «Повернись живим»](https://savelife.in.ua/donate/)
7+
> - [Національний банк України](https://bank.gov.ua/ua/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi)
8+
> - Більше інформації на [war.ukraine.ua](https://war.ukraine.ua/) та [МЗС України](https://twitter.com/MFA_Ukraine)
9+
10+
<hr/>
11+
12+
[![Build Status](https://travis-ci.org/trekhleb/learn-python.svg?branch=master)](https://travis-ci.org/trekhleb/learn-python)
13+
14+
> Це колекція скриптів мовою Python, розподілених за [темами](#зміст), що містять приклади коду з поясненнями, різними варіантами використання та посиланнями на додаткові матеріали.
15+
16+
> _Читати іншими мовами:_ [_English_](README.md), [_Português_](README.pt-BR.md), [_Español_](README.es-ES.md), [_繁體中文_](README.zh-TW.md).
17+
18+
Це **пісочниця**, тому що ви можете змінювати або доповнювати код, щоб побачити, як він працює, і [тестувати його](#тестування-коду) за допомогою тверджень. Також ви можете [перевіряти код](#перевірка-коду), який ви написали, і з'ясувати, чи відповідає він настановам зі стилю Python. Усе це може зробити процес навчання інтерактивнішим і допоможе підтримувати високу якість коду від самого початку.
19+
20+
Це **шпаргалка**, тому що ви можете повертатися до цих прикладів коду щоразу, коли захочете повторити синтаксис [стандартних інструкцій і конструкцій Python](#зміст). А оскільки код містить багато тверджень, ви зможете бачити очікуваний результат функцій та виразів одразу, без їх запуску.
21+
22+
> _Вас також може зацікавити 🤖 [Interactive Machine Learning Experiments](https://github.com/trekhleb/machine-learning-experiments)_
23+
24+
## Як користуватися цим репозиторієм
25+
26+
Кожен скрипт Python у цьому репозиторії має таку структуру:
27+
28+
```python
29+
"""Lists <--- Назва теми
30+
31+
# @see: https://www.learnpython.org/en/Lists <-- Посилання на додаткові матеріали
32+
33+
Тут може бути детальніше пояснення поточної теми (наприклад, загальна інформація про списки).
34+
"""
35+
36+
37+
def test_list_type():
38+
"""Пояснення підтеми.
39+
40+
Кожен файл містить тестові функції, які ілюструють підтеми (наприклад, тип списку, методи списків).
41+
"""
42+
43+
# Ось приклад побудови списку. <-- Коментарі пояснюють дію
44+
squares = [1, 4, 9, 16, 25]
45+
46+
# Списки можна індексувати та зрізати (sliced).
47+
# Індексування повертає елемент.
48+
assert squares[0] == 1 # <-- Твердження ілюструють результат.
49+
# Зрізання повертає новий список.
50+
assert squares[-3:] == [9, 16, 25] # <-- Твердження ілюструють результат.
51+
```
52+
53+
Зазвичай ви можете зробити наступне:
54+
55+
- [Знайти тему](#зміст), яку хочете вивчити або повторити.
56+
- Прочитати коментарі та/або документацію, на яку є посилання в docstring кожного скрипта (як у прикладі вище).
57+
- Переглянути приклади коду та твердження, щоб побачити варіанти використання й очікуваний результат.
58+
- Змінити код або додати нові твердження, щоб побачити, як усе працює.
59+
- [Запустити тести](#тестування-коду) та [перевірити код](#перевірка-коду), щоб переконатися, що він працює і написаний правильно.
60+
61+
## Зміст
62+
63+
1. **Початок роботи**
64+
- [Що таке Python](src/getting_started/what_is_python.uk-UA.md)
65+
- [Синтаксис Python](src/getting_started/python_syntax.uk-UA.md)
66+
- [Змінні](src/getting_started/test_variables.py)
67+
2. **Оператори**
68+
- [Арифметичні оператори](src/operators/test_arithmetic.py) (`+`, `-`, `*`, `/`, `//`, `%`, `**`)
69+
- [Побітові оператори](src/operators/test_bitwise.py) (`&`, `|`, `^`, `>>`, `<<`, `~`)
70+
- [Оператори присвоєння](src/operators/test_assigment.py) (`=`, `+=`, `-=`, `/=`, `//=` тощо)
71+
- [Оператори порівняння](src/operators/test_comparison.py) (`==`, `!=`, `>`, `<`, `>=`, `<=`)
72+
- [Логічні оператори](src/operators/test_logical.py) (`and`, `or`, `not`)
73+
- [Оператори ідентичності](src/operators/test_identity.py) (`is`, `is not`)
74+
- [Оператори належності](src/operators/test_membership.py) (`in`, `not in`)
75+
3. **Типи даних**
76+
- [Числа](src/data_types/test_numbers.py) (включно з булевими значеннями)
77+
- [Рядки](src/data_types/test_strings.py) та їхні методи
78+
- [Списки](src/data_types/test_lists.py) та їхні методи (включно з генераторами списків)
79+
- [Кортежі](src/data_types/test_tuples.py)
80+
- [Множини](src/data_types/test_sets.py) та їхні методи
81+
- [Словники](src/data_types/test_dictionaries.py)
82+
- [Перетворення типів](src/data_types/test_type_casting.py)
83+
4. **Керування потоком виконання**
84+
- [Інструкція `if`](src/control_flow/test_if.py)
85+
- [Інструкція `for`](src/control_flow/test_for.py) (і функція `range()`)
86+
- [Інструкція `while`](src/control_flow/test_while.py)
87+
- [Інструкція `try`](src/control_flow/test_try.py)
88+
- [Інструкція `break`](src/control_flow/test_break.py)
89+
- [Інструкція `continue`](src/control_flow/test_continue.py)
90+
5. **Функції**
91+
- [Визначення функції](src/functions/test_function_definition.py) (інструкції `def` і `return`)
92+
- [Області видимості змінних у функціях](src/functions/test_function_scopes.py) (інструкції `global` і `nonlocal`)
93+
- [Стандартні значення аргументів](src/functions/test_function_default_arguments.py)
94+
- [Іменовані аргументи](src/functions/test_function_keyword_arguments.py)
95+
- [Довільні списки аргументів](src/functions/test_function_arbitrary_arguments.py)
96+
- [Розпакування списків аргументів](src/functions/test_function_unpacking_arguments.py) (інструкції `*` і `**`)
97+
- [Лямбда-вирази](src/functions/test_lambda_expressions.py) (інструкція `lambda`)
98+
- [Рядки документації](src/functions/test_function_documentation_string.py)
99+
- [Анотації функцій](src/functions/test_function_annotations.py)
100+
- [Декоратори функцій](src/functions/test_function_decorators.py)
101+
6. **Класи**
102+
- [Визначення класу](src/classes/test_class_definition.py) (інструкція `class`)
103+
- [Об'єкти класу](src/classes/test_class_objects.py)
104+
- [Об'єкти екземплярів](src/classes/test_instance_objects.py)
105+
- [Об'єкти методів](src/classes/test_method_objects.py)
106+
- [Змінні класу та екземпляра](src/classes/test_class_and_instance_variables.py)
107+
- [Успадкування](src/classes/test_inheritance.py)
108+
- [Множинне успадкування](src/classes/test_multiple_inheritance.py)
109+
7. **Модулі**
110+
- [Модулі](src/modules/test_modules.py) (інструкція `import`)
111+
- [Пакети](src/modules/test_packages.py)
112+
8. **Помилки та винятки**
113+
- [Обробка винятків](src/exceptions/test_handle_exceptions.py) (інструкція `try`)
114+
- [Генерування винятків](src/exceptions/test_raise_exceptions.py) (інструкція `raise`)
115+
9. **Файли**
116+
- [Читання та записування](src/files/test_file_reading.py) (інструкція `with`)
117+
- [Методи файлових об'єктів](src/files/test_file_methods.py)
118+
10. **Додатково**
119+
- [Інструкція `pass`](src/additions/test_pass.py)
120+
- [Генератори](src/additions/test_generators.py) (інструкція `yield`)
121+
11. **Короткий огляд стандартних бібліотек**
122+
- [Серіалізація](src/standard_libraries/test_json.py) (бібліотека `json`)
123+
- [Шаблони пошуку файлів](src/standard_libraries/test_glob.py) (бібліотека `glob`)
124+
- [Пошук за шаблоном у рядках](src/standard_libraries/test_re.py) (бібліотека `re`)
125+
- [Математика](src/standard_libraries/test_math.py) (бібліотеки `math`, `random`, `statistics`)
126+
- [Дата і час](src/standard_libraries/test_datetime.py) (бібліотека `datetime`)
127+
- [Стиснення даних](src/standard_libraries/test_zlib.py) (бібліотека `zlib`)
128+
12. **Введення користувача**
129+
- [Введення з терміналу](src/user_input/test_input.py) (інструкція `input`)
130+
131+
## Передумови
132+
133+
**Встановлення Python**
134+
135+
Переконайтеся, що на вашому комп'ютері [встановлено Python 3](https://realpython.com/installing-python/).
136+
137+
Ви можете використовувати стандартну бібліотеку Python [venv](https://docs.python.org/3/library/venv.html) для створення віртуальних середовищ, щоб Python, pip та всі залежні пакети встановлювалися й працювали з локальної теки проєкту, а не впливали на системні пакети та їхні версії.
138+
139+
Залежно від вашої інсталяції, доступ до інтерпретатора Python 3 можна отримати, виконавши команду `python` або `python3`. Те саме стосується менеджера пакетів pip — він може бути доступний через `pip` або `pip3`.
140+
141+
Перевірити версію Python можна, виконавши:
142+
143+
```bash
144+
python --version
145+
```
146+
147+
Зверніть увагу, що в цьому репозиторії, коли ви бачите `python`, мається на увазі Python **3**.
148+
149+
**Встановлення залежностей**
150+
151+
Встановіть усі необхідні залежності проєкту, виконавши:
152+
153+
```bash
154+
pip install -r requirements.txt
155+
```
156+
157+
## Тестування коду
158+
159+
Тести написані з використанням фреймворку [pytest](https://docs.pytest.org/en/latest/).
160+
161+
Ви можете додавати власні тести, створюючи файли та функції з префіксом `test_` (наприклад, `test_topic.py` з функцією `def test_sub_topic()` всередині).
162+
163+
Щоб запустити всі тести, виконайте з кореневої теки проєкту:
164+
165+
```bash
166+
pytest
167+
```
168+
169+
Щоб запустити окремі тести, виконайте:
170+
171+
```bash
172+
pytest ./path/to/the/test_file.py
173+
```
174+
175+
## Перевірка коду
176+
177+
Перевірка коду виконується за допомогою бібліотек [pylint](http://pylint.pycqa.org/) та [flake8](http://flake8.pycqa.org/en/latest/).
178+
179+
### PyLint
180+
181+
Щоб перевірити, чи написаний код відповідно до настанов зі стилю [PEP 8](https://www.python.org/dev/peps/pep-0008/), виконайте:
182+
183+
```bash
184+
pylint ./src/
185+
```
186+
187+
Якщо лінтер виявить помилку (наприклад, `missing-docstring`), ви можете дізнатися про неї більше, виконавши:
188+
189+
```bash
190+
pylint --help-msg=missing-docstring
191+
```
192+
193+
[Детальніше про PyLint](http://pylint.pycqa.org/)
194+
195+
### Flake8
196+
197+
Щоб перевірити, чи написаний код відповідно до настанов зі стилю [PEP 8](https://www.python.org/dev/peps/pep-0008/), виконайте:
198+
199+
```bash
200+
flake8 ./src
201+
```
202+
203+
Або, якщо ви хочете отримати детальніший вивід:
204+
205+
```bash
206+
flake8 ./src --statistics --show-source --count
207+
```
208+
209+
[Детальніше про Flake8](http://flake8.pycqa.org/en/latest/)
210+
211+
## Автор
212+
213+
- [@trekhleb](https://trekhleb.dev)

README.zh-TW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
> 此專案依據 [目錄](#目錄) 分類收集了 Python 腳本,包含了程式碼範例及解釋、不同的使用情境以及衍伸閱讀連結。
66
7-
> _閱讀英文原始版本:_ [_English_](README.md), [_Português_](README.pt-BR.md), [_Español_](README.es-ES.md).
7+
> _閱讀英文原始版本:_ [_English_](README.md), [_Português_](README.pt-BR.md), [_Español_](README.es-ES.md), [_Українська_](README.uk-UA.md).
88
99
此專案名稱之所以叫做 **練習場(Playground)**,是因為您可以修改或是新增程式碼至範例中去觀察程式執行流程並使用斷言關鍵字(assert)來 [測試程式](#測試程式)。同時,此專案也使用了業界常用的工具來 [檢查程式碼](#檢查程式碼),確保您所撰寫的程式碼符合官方建議的 Python 程式碼風格規範。
1010

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Синтаксис Python
2+
3+
**Синтаксис Python порівняно з іншими мовами програмування**
4+
5+
- Python було розроблено з акцентом на зручність читання коду; він має певну подібність до англійської мови з впливом математики.
6+
- Python використовує нові рядки для завершення команди, на відміну від інших мов програмування, які часто використовують крапку з комою або дужки.
7+
- Python покладається на відступи за допомогою пробілів для визначення області видимості — наприклад, області видимості циклів, функцій і класів. Інші мови програмування зазвичай використовують для цього фігурні дужки.
8+
9+
## Відступи в Python
10+
11+
Якщо в інших мовах програмування відступи в коді потрібні лише для зручності читання, то в Python відступи мають дуже важливе значення.
12+
13+
Python використовує відступи для позначення блоку коду.
14+
15+
```python
16+
if 5 > 2:
17+
print("Five is greater than two!")
18+
```
19+
20+
Python видасть помилку, якщо ви пропустите відступ.
21+
22+
## Коментарі
23+
24+
Python має можливість коментування для документування коду.
25+
26+
Коментарі починаються з `#`, і Python обробляє решту рядка як коментар:
27+
28+
```python
29+
#This is a comment.
30+
print("Hello, World!")
31+
```
32+
33+
## Рядки документації (Docstrings)
34+
35+
Python також має розширені можливості документування, які називаються рядками документації (docstrings).
36+
37+
Рядки документації можуть бути однорядковими або багаторядковими. Рядки документації також є коментарями.
38+
39+
Python використовує потрійні лапки на початку та в кінці рядка документації:
40+
41+
```python
42+
"""This is a
43+
multiline docstring."""
44+
print("Hello, World!")
45+
```
46+
47+
## Посилання
48+
49+
- [w3schools.com](https://www.w3schools.com/python/python_syntax.asp)

0 commit comments

Comments
 (0)