Skip to content

Commit 0fb95e1

Browse files
Koans all done in one file
1 parent 9b59532 commit 0fb95e1

14 files changed

Lines changed: 129 additions & 128 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ tilda_assets
2222
.idea
2323
.pytest_cache
2424
venv
25+
.venv

koans/about_bool.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def test_can_assign_bool_expressions_to_variable():
3232
истинно выражение или ложно.
3333
"""
3434
a = 3 < 2
35-
assert a == _____
35+
assert a == False
3636

3737

3838
def test_assert_accepts_bool():
@@ -41,7 +41,7 @@ def test_assert_accepts_bool():
4141
4242
Если в bool записана истина, то всё работает.
4343
"""
44-
a = 3 < __ # укажите любое число, чтобы в a было True
44+
a = 3 < 1000 # укажите любое число, чтобы в a было True
4545
assert a
4646

4747

@@ -50,7 +50,7 @@ def test_can_use_not():
5050
not превращает True в False, а False в True.
5151
"""
5252
a = True
53-
assert not a == _____
53+
assert not a == False
5454

5555

5656
def test_can_use_equality_check():
@@ -59,12 +59,12 @@ def test_can_use_equality_check():
5959
6060
Иначе возвращает False.
6161
"""
62-
assert 3 + 2 == 1 + __
62+
assert 3 + 2 == 1 + 4
6363

6464

6565
def test_can_assign_equality_check_to_variable():
6666
"""
6767
Результат сравнения можно записывать в переменную.
6868
"""
6969
a = 3 + 2 == 1 + 4
70-
assert a == __
70+
assert a == True

koans/about_compound_conditions.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def test_and_returns_one_of_the_operands():
77
значение, а значение одного из операндов.
88
"""
99
r = 'a' and 'b'
10-
assert r == _____ # попробуйте такие варианты: True, False, 'a', 'b'
10+
assert r == 'b' # попробуйте такие варианты: True, False, 'a', 'b'
1111

1212

1313
def test_or_returns_one_of_the_operands():
@@ -16,7 +16,7 @@ def test_or_returns_one_of_the_operands():
1616
значение, а значение одного из операндов.
1717
"""
1818
r = 'a' or 'b'
19-
assert r == _____ # попробуйте такие варианты: True, False, 'a', 'b'
19+
assert r == 'a' # попробуйте такие варианты: True, False, 'a', 'b'
2020

2121

2222
def test_and_returns_first_false_operand():
@@ -26,7 +26,7 @@ def test_and_returns_first_false_operand():
2626
Ложью в Python являются 0, '', [], (), {} и None
2727
"""
2828
r = 'a' and '' and []
29-
assert r == _____ # попробуйте такие варианты: True, False, 'a', '', []
29+
assert r == '' # попробуйте такие варианты: True, False, 'a', '', []
3030

3131

3232
def test_or_returns_last_false_operand_if_all_operands_are_false():
@@ -35,36 +35,36 @@ def test_or_returns_last_false_operand_if_all_operands_are_false():
3535
последнее такое значение.
3636
"""
3737
r = '' or [] or {}
38-
assert r == _____ # попробуйте такие варианты: True, False, '', [], {}
38+
assert r == {} # попробуйте такие варианты: True, False, '', [], {}
3939

4040

4141
def test_python_supports_not_operator():
4242
"""
4343
В Python есть логический оператор not
4444
"""
4545
y = False
46-
assert not y == _____ # попробуйте такие варианты: True, False
46+
assert not y == True # попробуйте такие варианты: True, False
4747

4848

4949
def test_and_has_higher_priority_then_or():
5050
"""
5151
Оператор and имеет выше приоритет, чем or
5252
"""
5353
r = 'a' and 'b' or []
54-
assert r == _____ # попробуйте такие варианты: 'a', 'b', [], True, False
54+
assert r == 'b' # попробуйте такие варианты: 'a', 'b', [], True, False
5555

5656

5757
def test_not_has_higher_priority_then_and():
5858
"""
5959
Оператор and имеет выше приоритет, чем or
6060
"""
6161
r = not 'a' and 'b' or []
62-
assert r == _____ # попробуйте такие варианты: 'a', 'b', [], True, False
62+
assert r == [] # попробуйте такие варианты: 'a', 'b', [], True, False
6363

6464

6565
def test_brackets_can_change_priority():
6666
"""
6767
Оператор and имеет выше приоритет, чем or
6868
"""
6969
r = '' and ([] or 'a')
70-
assert r == _____ # попробуйте такие варианты: 'a', '', [], True, False
70+
assert r == '' # попробуйте такие варианты: 'a', '', [], True, False

koans/about_conditions.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def test_start_if():
99
выполняется следующий блок кода
1010
"""
1111
a = 0 # Учимся объявлять все переменные вначале функции
12-
if ____: # попробуйте такие варианты: TRUE, true, True
12+
if True: # попробуйте такие варианты: TRUE, true, True
1313
a = 3
1414
assert a == 3
1515

@@ -19,7 +19,7 @@ def test_if_and_else():
1919
Использование конструкции if и else
2020
"""
2121
a = None
22-
if ____: # попробуйте такие варианты: FALSE, false, False
22+
if False: # попробуйте такие варианты: FALSE, false, False
2323
a = 0
2424
else:
2525
a = 1
@@ -34,7 +34,7 @@ def test_not_in_if():
3434
или истиное в ложное
3535
"""
3636
a = ""
37-
if not ____:
37+
if not False:
3838
a = True
3939
else:
4040
a = False
@@ -49,7 +49,7 @@ def test_two_if():
4949
a = 0
5050
if a == 0:
5151
a = 1
52-
if a != ____:
52+
if a != 100:
5353
a = 42
5454
assert a == 42
5555

@@ -61,7 +61,7 @@ def test_elif():
6161
a = 0
6262
if a != 0:
6363
a = 1
64-
elif ____:
64+
elif a == 0:
6565
a = 42
6666
assert a == 42
6767

@@ -71,9 +71,9 @@ def test_elif_and_else():
7171
Исследуем работу else
7272
необходимо заполнить условия возле if и elif чтобы сработал else
7373
"""
74-
if (3 > 2) == ____:
74+
if (3 > 2) == False:
7575
a = None
76-
elif 3 > 2 == ____:
76+
elif 3 > 2 == False:
7777
a = None
7878
else:
7979
a = True
@@ -86,5 +86,5 @@ def test_logic():
8686
"""
8787
names = ['Вова', 'Леша', 'Лена', 'Света']
8888
name = "Вова"
89-
if __ in ____:
89+
if name in names:
9090
assert True

koans/about_dictionaries.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ def test_create_dictionary_with_literal():
1212
'a': 1,
1313
'b': 2
1414
}
15-
assert dict_comparator(d, _____) # попробуйте подстваить объект вида {key1: value1, key2: value2,...}
15+
assert dict_comparator(d, {'b': 2, 'a': 1}) # попробуйте подстваить объект вида {key1: value1, key2: value2,...}
1616

1717

1818
def test_create_dictionary_with_constructor():
1919
"""
2020
Словарь в Python можно создать с помощью конструктора словаря
2121
"""
2222
d = dict(a=1, b=2)
23-
assert dict_comparator(d, _____)
23+
assert dict_comparator(d, {'a': 1, 'b': 2})
2424

2525

2626
def test_create_dictionary_with_list_of_tuples():
@@ -30,7 +30,7 @@ def test_create_dictionary_with_list_of_tuples():
3030
list_of_tuples = [('a', 1), ('b', 2), ('c', 3)]
3131
d = dict(list_of_tuples)
3232

33-
assert dict_comparator(d, _____)
33+
assert dict_comparator(d, {'c': 3, 'a': 1, 'b': 2})
3434

3535

3636
def test_get_value_by_key():
@@ -41,7 +41,7 @@ def test_get_value_by_key():
4141
'a': 1,
4242
'b': 2
4343
}
44-
assert d['a'] == _____ # попробуйте такие варианты: False, True, 1, 2
44+
assert d['a'] == 1 # попробуйте такие варианты: False, True, 1, 2
4545

4646

4747
def test_add_key_and_value_to_dictionary():
@@ -50,11 +50,11 @@ def test_add_key_and_value_to_dictionary():
5050
"""
5151
d = {
5252
'a': 1,
53-
'b': 2,
53+
'b': 2
5454
}
5555
d['c'] = 3
5656

57-
assert dict_comparator(d, _____)
57+
assert dict_comparator(d, {'a': 1, 'c': 3, 'b': 2})
5858

5959

6060
def test_if_existing_key_in_dict():
@@ -67,7 +67,7 @@ def test_if_existing_key_in_dict():
6767
}
6868
var = 'a' in d
6969

70-
assert var == ___ # попробуйте такие варианты: False, True, 1, 2
70+
assert var == True # попробуйте такие варианты: False, True, 1, 2
7171

7272

7373
def test_if_not_existing_key_in_dict():
@@ -80,7 +80,7 @@ def test_if_not_existing_key_in_dict():
8080
}
8181
var = 'c' in d
8282

83-
assert var == ___ # попробуйте такие варианты: False, True, 1, 2
83+
assert var == False # попробуйте такие варианты: False, True, 1, 2
8484

8585

8686
def test_get_method():
@@ -93,7 +93,7 @@ def test_get_method():
9393
}
9494
var = d.get('c', 0)
9595

96-
assert var == ___ # попробуйте такие варианты: False, True, 1, 2, 0
96+
assert var == 0 # попробуйте такие варианты: False, True, 1, 2, 0
9797

9898

9999
def test_get_method_default_value():
@@ -106,4 +106,4 @@ def test_get_method_default_value():
106106
}
107107
var = d.get('c')
108108

109-
assert var == ___ # попробуйте такие варианты: False, True, 1, 2, 0, None
109+
assert var == None # попробуйте такие варианты: False, True, 1, 2, 0, None

koans/about_floats.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def test_can_sum_up():
99
Если использовать запятую, всё сломается.
1010
"""
1111

12-
assert 2.5 + 1.2 == __
12+
assert 2.5 + 1.2 == 3.7
1313

1414

1515
def test_can_assign_to_variables():
@@ -18,15 +18,15 @@ def test_can_assign_to_variables():
1818
"""
1919
a = 2.5
2020
b = 3.8
21-
assert b - __ == a
21+
assert b - 1.3 == a
2222

2323

2424
def test_can_remove_real_part():
2525
"""
2626
У вещественных чисел можно удалять дробную часть и превращать их в целые.
2727
"""
2828
a = 2.1
29-
assert int(a) == __
29+
assert int(a) == 2
3030

3131

3232
def test_has_rounding_problems():
@@ -36,11 +36,11 @@ def test_has_rounding_problems():
3636
Так работает из-за того, как числа представляются в памяти.
3737
"""
3838
a = 0.1
39-
assert a + 0.2 == __ # подсказка: тут будет не 0.3
39+
assert a + 0.2 == 0.30000000000000004 # подсказка: тут будет не 0.3
4040

4141

4242
def test_can_miss_leading_zero():
4343
"""
4444
Если у вещественного числа чцелая часть – ноль, то её можно не писать.
4545
"""
46-
assert .5 * 2 == __
46+
assert .5 * 2 == 1.0

koans/about_for_loop.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_for_loop():
2222
str1 = "Python"
2323

2424
for letter in str1[2]:
25-
assert letter == ___
25+
assert letter == 't'
2626

2727

2828
def test_for_loop_with_list():
@@ -37,7 +37,7 @@ def test_for_loop_with_list():
3737
list1 = [5]
3838

3939
for number in list1:
40-
assert number == ___
40+
assert number == 5
4141

4242

4343
def test_for_loop_with_range():
@@ -50,7 +50,7 @@ def test_for_loop_with_range():
5050
for i in range(3):
5151
sum = sum + i
5252

53-
assert sum == ___
53+
assert sum == 3
5454

5555

5656
def test_for_loop_with_specified_range():
@@ -64,7 +64,7 @@ def test_for_loop_with_specified_range():
6464
for i in range(2, 5):
6565
sum = sum + i
6666

67-
assert sum == ___
67+
assert sum == 9
6868

6969

7070
def test_for_loop_with_step_range():
@@ -79,7 +79,7 @@ def test_for_loop_with_step_range():
7979
for i in range(3, 12, 3):
8080
sum = sum + i
8181

82-
assert sum == ___
82+
assert sum == 18
8383

8484

8585
def test_for_loop_with_break():
@@ -93,7 +93,7 @@ def test_for_loop_with_break():
9393
break
9494
sum = sum + i
9595

96-
assert sum == ___
96+
assert sum == 0
9797

9898
def test_for_loop_with_continue():
9999
"""
@@ -107,7 +107,7 @@ def test_for_loop_with_continue():
107107
continue
108108
sum = sum + i
109109

110-
assert sum == ___
110+
assert sum == 13
111111

112112
def test_for_loop_with_enumerate():
113113
"""
@@ -124,7 +124,7 @@ def test_for_loop_with_enumerate():
124124

125125
list1 = ['Python']
126126
for index, element in enumerate(list1):
127-
assert index == ___, element == ____
127+
assert index == 0, element == 'P'
128128

129129

130130
def test_for_loop_with_enumerate_start():
@@ -136,4 +136,4 @@ def test_for_loop_with_enumerate_start():
136136

137137
list1 = ['Python']
138138
for index, element in enumerate(list1, start=1):
139-
assert index == ___, element == ____
139+
assert index == 1, element == 'y'

0 commit comments

Comments
 (0)