Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
15 changes: 15 additions & 0 deletions 1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from di_for_1_and_2 import di


def num_translate(num):
print(di.get(num))


num_translate('tendd')

'''Подумайте, как и где лучше хранить
информацию, необходимую для перевода: какой тип данных выбрать, в теле функции
или снаружи.Думаю лучше снаружи функции, а еще лучше создать отдельный файл из
которого можно импортировть
необходимый словарь
'''
15 changes: 15 additions & 0 deletions 2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from di_for_1_and_2 import di
'''2. * (вместо задачи 1) Доработать предыдущую функцию в num_translate_adv():
реализовать корректную работу с числительными, начинающимися с заглавной буквы
— результат тоже должен быть с заглавной.'''


def num_translate_adv(num):
if num[0].istitle():
print(di[num.lower()].capitalize())
else:
print(di[num])


num_translate_adv('Two')
num_translate_adv('two')
25 changes: 25 additions & 0 deletions 3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
def thesaurus(*args):
di = {}
for name in args:
if di.get(name[0]) != None:
di[name[0]].append(name)
else:
new_li = []
new_li.append(name)
di[name[0]] = new_li
return di


di = thesaurus("Петр", "Иван", "Мария", "Илья")
print(di)
'''полезен ли будет вам оператор распаковки? - да'''

# Как поступить, если потребуется сортировка по ключам?
sorted_keys = sorted(di)
new_di = {}
for key in sorted_keys:
new_di[key] = di[key]

'''или генератором словарей'''
new_di = {key: di[key] for key in sorted(di)}
print(new_di)
34 changes: 34 additions & 0 deletions 4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
def sorter(di):
'''sort by keys'''
sorted_keys = sorted(di)
new_di = {}
for key in sorted_keys:
new_di[key] = di[key]
return new_di


def thesaurus_adv(*args): # ...rus_adv(sort, *args): named args without unpack
'''make dicts from string'''
sort, *args = args
di = {}
for name_surname in args:
name, surname = name_surname.split(' ')
li_name_surname = [name_surname]
if di.get(surname[0]) == None:
iner_di = {}
else:
iner_di = di[surname[0]]
if not iner_di.get(name[0]) == None:
li_name_surname.extend(iner_di.get(name[0]))
iner_di[name[0]] = li_name_surname
if sort:
iner_di = sorter(iner_di)
di[surname[0]] = iner_di
if sort:
di = sorter(di)
return di


di = thesaurus_adv(True, "Анна Савельева", "Иван Сергеев", "Инна Серова",
"Петр Алексеев", "Илья Иванов", )
print(di)
39 changes: 39 additions & 0 deletions 5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from random import choice

nouns = ["автомобиль", "лес", "огонь", "город", "дом"]
adverbs = ["сегодня", "вчера", "завтра", "позавчера", "ночью"]
adjectives = ["веселый", "яркий", "зеленый", "утопичный", "мягкий"]


def get_jokes(n, repeat=False):
'''make jokes'''
result_li = []
li_nouns = []
li_adverbs = []
li_adjectives = []
li_nouns = check_repeat(repeat, nouns, n)
li_adverbs = check_repeat(repeat, adverbs, n)
li_adjectives = check_repeat(repeat, adjectives, n)
for a, b, c in zip(li_nouns, li_adverbs, li_adjectives):
result_li.append(f'{a} {b} {c}')
print(result_li)


def check_repeat(repeat, li, length):
'''check for repeats'''
count = 0
new_li = []
while count < length:
a = choice(li)
if not repeat:
if a in new_li:
continue
else:
new_li.append(a)
else:
new_li.append(a)
count += 1
return new_li


get_jokes(2)
12 changes: 12 additions & 0 deletions di_for_1_and_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
di = {
'one': 'один',
'two': 'два',
'three': 'три',
'four': 'четыре',
'five': 'пять',
'six': 'шесть',
'seven': 'семь',
'eight': 'восемь',
'nine': 'nine',
'ten': 'ten'
}