Skip to content

Commit 7693882

Browse files
committed
update
Signed-off-by: Kirill Mokevnin <mokevnin@gmail.com>
1 parent 2b824d2 commit 7693882

5 files changed

Lines changed: 26 additions & 45 deletions

File tree

modules/40-define-functions/400-default-parameters/ru/EXERCISE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Реализуйте функцию `get_hidden_card()`, который принимает на вход номер кредитки (состоящий из 16 цифр) в виде строки и возвращает его скрытую версию, которая может использоваться на сайте для отображения. Если исходная карта имела номер *2034399002125581*, то скрытая версия выглядит так *\*\*\*\*5581*. Другими словами, функция заменяет первые 12 символов, на звездочки. Количество звездочек регулируется вторым, необязательным, параметром. Значение по умолчанию — 4.
32

43
```python
Lines changed: 26 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,45 @@
1+
Функции могут принимать параметры. Иногда удобно задать значение сразу в определении функции, чтобы не указывать его при каждом вызове. Такое значение называется **значением по умолчанию**.
12

2-
В программировании у многих функций и методов есть параметры, которые редко меняются. В таких случаях этим параметрам задают значения по умолчанию, которые можно поменять по необходимости. С помощью этого сокращается количество одинакового кода. Рассмотрим, как это выглядит на практике.
3+
Если аргумент не передан, используется это значение. Если аргумент указан, то оно заменяет умолчание.
34

4-
Разберем пример:
5+
## Пример: повторение текста
6+
7+
Сделаем функцию, которая повторяет строку несколько раз. По умолчанию пусть будет один раз, но при желании можно указать другое количество.
58

69
```python
7-
# Функция возведения в степень
8-
# Второй параметр имеет значение по умолчанию два
9-
def pow(x, base=2):
10-
return x ** base
11-
12-
# Три во второй степени (двойка задана по умолчанию)
13-
pow(3) # 3 * 3 = 9
14-
# Три в третьей степени
15-
pow(3, 3) # 3 * 3 * 3 = 27
10+
def repeat(text, times=1):
11+
return text * times
12+
13+
print(repeat("Hi")) # => Hi
14+
print(repeat("Hi", 3)) # => HiHiHi
1615
```
1716

17+
В этом примере используется операция умножения строки на число. Она работает так: берётся исходная строка и повторяется указанное количество раз. Например, `"A" * 5` превратится в `"AAAAA"`. Это встроенная возможность Python, которая часто применяется при генерации шаблонов, разделителей и повторяющихся фрагментов текста.
1818

19-
Значение по умолчанию выглядит как обычное присваивание в определении. Оно срабатывает только в том случае, если параметр не передали.
19+
Необязательные параметры всегда указываются в конце списка параметров. Поэтому в примере сначала идёт обязательный параметр `text`, а уже после него — параметр `times` со значением по умолчанию.
2020

21-
Представьте, что вы не привезли с собой в автосервис запчасти для вашего автомобиля. Тогда автомеханик предложит вам поставить те, которые есть у него — по умолчанию.
21+
## Пример: склейка слов с разделителем
2222

23-
Значение по умолчанию может быть даже в том случае, когда параметр один:
23+
По умолчанию слова соединяются пробелом, но можно указать другой символ.
2424

2525
```python
26-
def my_print(text='nothing'):
27-
print(text)
26+
def join_words(word1, word2, sep=" "):
27+
return word1 + sep + word2
2828

29-
my_print() # => "nothing"
30-
my_print("Hexlet") # => "Hexlet"
29+
print(join_words("King", "Road")) # => King Road
30+
print(join_words("Dragon", "stone", "-")) # => Dragon-stone
3131
```
3232

33-
Параметров со значениями по умолчанию может быть любое количество:
33+
## Пример: несколько параметров по умолчанию
3434

35-
```python
36-
def f(a=5, b=10, c=100):
37-
```
38-
39-
У значений по умолчанию есть одно ограничение. Они должны идти в самом конце списка параметров. С точки зрения синтаксиса, невозможно создать функцию, у которой после необязательного параметра идет обязательный:
35+
Функция может содержать более одного параметра со значениями по умолчанию. Например, сделаем функцию, которая строит строку-разделитель. По умолчанию символ — это дефис, а длина — 10.
4036

4137
```python
42-
# Такой код завершится с ошибкой
43-
def f(a=5, b=10, c=100, x):
44-
# И такой
45-
def f(a=5, b=10, x, c=100):
46-
47-
# Этот код сработает
48-
def f(x, a=5, b=10, c=100):
38+
def make_line(symbol="-", length=10):
39+
return symbol * length
4940

50-
# Этот тоже сработает
51-
def f(x, y, a=5, b=10, c=100):
41+
print(make_line()) # => ----------
42+
print(make_line("*")) # => **********
43+
print(make_line("*", 5)) # => *****
44+
print(make_line("#", 3)) # => ###
5245
```
53-
54-
Теперь вы умеете работать со значениями параметров по умолчанию. Они могут быть как у нескольких параметров, так и у одного. И помните, что значения по умолчанию должны быть в самом конце списка параметров. Эти знания помогут сократить количество одинакового кода.
Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,2 @@
11
---
22
name: Необязательные параметры функций
3-
tips:
4-
- >
5-
[Параметры по
6-
умолчанию](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Default_parameters)
7-
definitions:
8-
- name: Параметр по умолчанию
9-
description: необязательный параметр функции

modules/40-define-functions/500-named-arguments/ru/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
В этом уроке разберем, какие параметры существуют, чем они отличаются и в каких случаях их применять.
32

43
**Аргументы** — это данные, которые передаются в вызов функции. Они бывают двух типов:

modules/40-define-functions/600-type-annotations/ru/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
**Аннотации типов** — это возможность указать типы параметров и возвращаемое значение у функции в Python. Это не является обязательным требованием языка, но может помочь программистам в дальнейшей разработке, улучшить читаемость кода и повысить его надежность.
32

43
Давайте рассмотрим простой пример функции без аннотаций типов:

0 commit comments

Comments
 (0)