-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_id_name_converter.py
36 lines (20 loc) · 2.13 KB
/
task_id_name_converter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'''
Требуется реализовать две функции для конвертации имен идентификаторов.
Имя идентификатора в ЯП - это имена переменных, констант, функций, классов и т.д.
CamelCase (верблюжия нотация) - стиль написания составных слов, при котором несколько слов пишутся слитно без пробелов, при этом каждое слово внутри фразы пишется с заглавной буквы.
snake_case (змеиная нотация) - стиль написания составных слов, при котором несколько слов разделяются символом подчеркивания (_), и не имеют пробелов в записи, причём каждое слово пишется с маленькой буквы.
Напишите функцию camel_to_snake(name), которая принимает в качестве единственного аргумента имя идентификатора в CamelCase нотации и возвращает его запись в змеиной нотации.
Напишите функцию snake_to_camel(name), которая принимает в качестве единственного аргумента имя идентификатора в змеиной нотации и возвращает его запись в CamelCase нотации.
'''
def snake_to_camel(name):
cam_lst = name.split('_') # Выводим список слов без '_'
cam_str1 = ' '.join(cam_lst) # Вывод слитной строки
cam_upc = cam_str1.title()
cam_filt = tuple(filter(lambda x: x != " ", cam_upc)) # Убираем пробелы
return ''.join(cam_filt)
def camel_to_snake(name):
snk_lst = list(name)
snk_lst_upd = list(map(lambda x: ("_" + x) if x.isupper() else x, snk_lst))
snk_lst_upd_2 = ''.join(snk_lst_upd).lower()
return snk_lst_upd_2[1:]
print(camel_to_snake('KgsyXBrurjfJhMpxlmn'))