-
Notifications
You must be signed in to change notification settings - Fork 119
/
Copy pathpractice2.py
119 lines (87 loc) · 4.5 KB
/
practice2.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from typing import Iterable
from random import uniform
UNCULTURED_WORDS = ('kotleta', 'pirog')
def greet_user(name: str) -> str:
"""
Генерирует приветственную фразу.
Приветствие не может состоять только из одного имени пользователя.
:param name: имя пользователя
:return: приветствие
"""
# пиши код здесь
greeting = "Привет, " + name + "!"
return greeting
def get_amount() -> float:
"""
Генерируем случайную сумму на счете.
Сумма:
- в диапазоне от 100 до 1000000
- float
- не больше 2-х знаков после запятой
:return: случайную сумму на счете
"""
# пиши код здесь
amount = uniform(100, 1000000)
return round(amount, 2)
def is_phone_correct(phone_number: str) -> bool:
"""
Функция проверяет, что номер телефона соответствует следующему формату:
+7xxxxxxxxxx, где x - цифра от 0 до 9
:param phone_number: предполагаемый номер телефона
:return: буленовское значение - bool: True - если номер корректны,
False - если номер некорректный
"""
# пиши код здесь
return len(phone_number) == 12 and phone_number[:2] == "+7" and phone_number[2:].isnumeric()
def is_amount_correct(current_amount: float, transfer_amount: str) -> bool:
"""
Проверяет возможность осуществления перевода.
Перевод возможен если выполняется условие:
- текущий счет (current_amount) больше или равен сумме перевода (transfer_amount)
:param current_amount: текущий счет
:param transfer_amount: сумма перевода
:return: буленовское значение - bool: True - если перевод возможен,
False - если денег недостаточно
"""
# пиши код здесь
return current_amount >= float(transfer_amount)
def moderate_text(text: str, uncultured_words: Iterable[str]) -> str:
"""
Модерирует текст по следующим правилам.
Требования к тексту:
- Первая буква заглавная, остальные буквы только в нижнем регистре
- отсутствую лишние пробелы
- фильтруются 'опасные' символы: " ' (двойные и одинарные кавычки)
- слова, перечисленные в переменной uncultured_words заменяются на аналогичное количество знаков #
:param text: исходный текст
:param uncultured_words: список запрещенных слов
:return: текст, соответсвующий правилам
"""
# пиши код здесь
result = text.lower().strip().replace("\"", "").replace("\'", "")
for uncultured_word in uncultured_words:
result = result.replace(uncultured_word, "#"*len(uncultured_word))
result = result.replace(result[0], result[0].upper(), 1)
return result
def create_request_for_loan(user_info: str) -> str:
"""
Генерирует заявку на кредит на основе входящей строки.
Формат входящий строки:
Иванов,Петр,Сергеевич,01.01.1991,10000
Что должны вернуть на ее основе:
Фамилия: Иванов
Имя: Петр
Отчество: Сергеевич
Дата рождения: 01.01.1991
Запрошенная сумма: 10000
:param user_info: строка с информацией о клиенте
:return: текст кредитной заявки
"""
# пиши код здесь
data = user_info.split(",")
result = (f"Фамилия: {data[0]}\n"
f"Имя: {data[1]}\n"
f"Отчество: {data[2]}\n"
f"Дата рождения: {data[3]}\n"
f"Запрошенная сумма: {data[4]}")
return result