Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[python/ru-ru] Corrections for Russian localization #4389

Merged
merged 6 commits into from
Apr 24, 2024
Merged
Changes from 1 commit
Commits
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
58 changes: 27 additions & 31 deletions ru-ru/python-ru.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -291,20 +291,21 @@ empty_dict = {}
filled_dict = {"one": 1, "two": 2, "three": 3}

# Обратите внимание, что ключи для словарей должны быть неизменяемыми типами. Это
# сделано для того, чтобы ключ может быть преобразован в хеш для быстрого поиска.
# Неизменяемые типы включают целые числа, числа с плавающей запятой, строки, кортежи.
# сделано для того, чтобы ключ мог быть преобразован в хеш для быстрого поиска.
# Неизменяемые типы включают целые числа, числа с плавающей запятой, строки,
# кортежи.
invalid_dict = {[1,2,3]: "123"} # => Выбрасывает ошибку TypeError: unhashable type: 'list'
valid_dict = {(1,2,3):[1,2,3]} # Однако значения могут быть любого типа.

# Поиск значений с помощью []
filled_dict["one"] # => 1

# Все ключи в виде списка получаются с помощью метода keys().
# Его вызов нужно обернуть в list(), так как обратно мы получаем
# итерируемый объект, о которых поговорим позднее. Примечание - для Python
# версии <3.7, порядок словарных ключей не гарантируется. Ваши результаты могут
# не точно соответствовать приведенному ниже примеру. Однако, начиная с Python 3.7
# элементы в словаре сохраняют порядок, в котором они вставляются в словарь.
# Все ключи в виде списка получаются с помощью метода keys(). Его вызов нужно
# обернуть в list(), так как обратно мы получаем итерируемый объект, о которых
# поговорим позднее. Примечание - для Python версии <3.7, порядок словарных
# ключей не гарантируется. Ваши результаты могут не точно соответствовать
# приведенному ниже примеру. Однако, начиная с Python 3.7 элементы в словаре
# сохраняют порядок, в котором они вставляются в словарь.
list(filled_dict.keys()) # => ["three", "two", "one"] в Python <3.7
list(filled_dict.keys()) # => ["one", "two", "three"] в Python 3.7+

Expand Down Expand Up @@ -341,19 +342,17 @@ filled_dict["four"] = 4 # Другой способ добавления
# Удаляйте ключи из словаря с помощью ключевого слова del
del filled_dict["one"] # Удаляет ключ "one" из словаря

# После Python 3.5 вы также можете использовать дополнительные параметры распаковки
# В Python 3.5+ вы также можете использовать дополнительные параметры распаковки
{'a': 1, **{'b': 2}} # => {'a': 1, 'b': 2}
{'a': 1, **{'a': 2}} # => {'a': 2}



# Множества содержат... ну, в общем, множества
empty_set = set()
# Инициализация множества набором значений.
# Да, оно выглядит примерно как словарь. Ну извините, так уж вышло.
filled_set = {1, 2, 2, 3, 4} # => {1, 2, 3, 4}

# Similar to keys of a dictionary, elements of a set have to be immutable.
# Как и ключи словаря, элементы множества должны быть неизменяемыми.
invalid_set = {[1], 1} # => Выбрасывает ошибку TypeError: unhashable type: 'list'
valid_set = {(1,), 1}
Expand Down Expand Up @@ -422,8 +421,7 @@ for animal in ["собака", "кошка", "мышь"]:
print("{} — это млекопитающее".format(animal))

"""
"range(число)" возвращает список чисел
от нуля до заданного числа
"range(число)" возвращает список чисел от нуля до заданного числа.
Выводит:
0
1
Expand All @@ -434,8 +432,8 @@ for i in range(4):
print(i)

"""
"range(нижнее, верхнее)" возвращает список чисел
от нижнего числа к верхнему
"range(начальное, конечное)" возвращает список чисел от начального числа
к конечному.
ademaro marked this conversation as resolved.
Show resolved Hide resolved
Выводит:
4
5
Expand All @@ -446,9 +444,9 @@ for i in range(4, 8):
print(i)

"""
"range(нижнее, верхнее, шаг)" возвращает список чисел
от нижнего числа к верхнему, от нижнего числа к верхнему, увеличивая
шаг за шагом. Если шаг не указан, значение по умолчанию - 1.
"range(начальное, конечное, шаг)" возвращает список чисел от начального
ademaro marked this conversation as resolved.
Show resolved Hide resolved
числа к конечному, увеличивая шаг за шагом.
Если шаг не указан, значение по умолчанию - 1.
Выводит:
4
6
Expand All @@ -457,7 +455,7 @@ for i in range(4, 8, 2):
print(i)

"""
Чтобы перебрать список и получить индекс и значение каждого элемента в списке
Можно перебрать список и получить индекс и значение каждого элемента в списке
Выводит:
0 собака
1 кошка
Expand All @@ -480,17 +478,18 @@ while x < 4:
print(x)
x += 1 # Краткая запись для x = x + 1


# Обрабатывайте исключения блоками try/except
try:
# Чтобы выбросить ошибку, используется raise
raise IndexError("Это ошибка индекса")
except IndexError as e:
pass # pass — это просто отсутствие оператора. Обычно здесь происходит восстановление после ошибки.
pass # pass — это просто отсутствие оператора. Обычно здесь происходит исправление ошибки.
Copy link
Collaborator

@verhovsky verhovsky Apr 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я бы оставил как было, в except исправлять ошибки это большая редкость.

verhovsky marked this conversation as resolved.
Show resolved Hide resolved
except (TypeError, NameError):
pass # Несколько исключений можно обработать вместе, если нужно.
else: # Необязательное выражение. Должно следовать за последним блоком except
print("Всё хорошо!") # Выполнится, только если не было никаких исключений
finally: # Выполнить при любых обстоятельствах
pass # Несколько исключений можно обработать одновременно.
ademaro marked this conversation as resolved.
Show resolved Hide resolved
else: # Необязательно. Добавляется за последним except.
print("Всё хорошо!") # Выполнится, только если не было никаких исключений.
finally: # Необязательно. Выполнить при любых обстоятельствах.
print("Мы можем очистить ресурсы здесь")

# Вместо try/finally чтобы очистить ресурсы, можно использовать оператор with
Expand All @@ -509,19 +508,17 @@ with open("myfile2.txt", "w+") as file:
# Чтение из файла
with open('myfile1.txt', "r+") as file:
contents = file.read() # Читает строку из файла
print(contents)
# print: {"aa": 12, "bb": 21}
print(contents) # => '{"aa": 12, "bb": 21}'

with open('myfile2.txt', "r+") as file:
verhovsky marked this conversation as resolved.
Show resolved Hide resolved
contents = json.load(file) # Читает объект json из файла
print(contents)
# print: {"aa": 12, "bb": 21}
print(contents) # => {"aa": 12, "bb": 21}


# Python предоставляет фундаментальную абстракцию,
# которая называется итерируемым объектом (Iterable).
# Итерируемый объект — это объект, который воспринимается как последовательность.
# Объект, который возвратила функция range(), итерируемый.
# Объект, который возвратила функция range() итерируемый.

filled_dict = {"one": 1, "two": 2, "three": 3}
our_iterable = filled_dict.keys()
Expand All @@ -545,7 +542,7 @@ next(our_iterator) # => "one"
next(our_iterator) # => "two"
next(our_iterator) # => "three"

# Возвратив все данные, итератор выбрасывает исключение StopIterator
# Возвратив все данные, итератор выбрасывает исключение StopIteration
next(our_iterator) # Выбрасывает исключение StopIteration

# Мы можем проходить по нему циклом.
Expand Down Expand Up @@ -1055,4 +1052,3 @@ print(say(say_please=True)) # Вы не купите мне пива? Пожа
* [A Crash Course in Python for Scientists](http://nbviewer.jupyter.org/gist/anonymous/5924718)
* [Python Tutorial for Intermediates](https://pythonbasics.org/)
* [Build a Desktop App with Python](https://pythonpyqt.com/)