-
Notifications
You must be signed in to change notification settings - Fork 119
/
Copy pathpractice2.py
127 lines (89 loc) · 4.39 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
120
121
122
123
124
125
126
127
from typing import Iterable
import random
UNCULTURED_WORDS = ('kotleta', 'pirog')
def greet_user(name: str) -> str:
"""
Генерирует приветственную фразу.
Приветствие не может состоять только из одного имени пользователя.
:param name: имя пользователя
:return: приветствие
"""
greeting = 'Zdarovstvuyte, дорогой ' + name
return greeting
def get_amount() -> float:
"""
Генерируем случайную сумму на счете.
Сумма:
- в диапазоне от 100 до 1000000
- float
- не больше 2-х знаков после запятой
:return: случайную сумму на счете
"""
amount = round(random.uniform(100, 1000000), 2)
return amount
def is_phone_correct(phone_number: str) -> bool:
"""
Функция проверяет, что номер телефона соответствует следующему формату:
+7xxxxxxxxxx, где x - цифра от 0 до 9
:param phone_number: предполагаемый номер телефона
:return: буленовское значение - bool: True - если номер корректны,
False - если номер некорректный
"""
if phone_number[:2] == "+7" and phone_number[2:].isnumeric():
result = True
else:
result = False
return result
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 - если денег недостаточно
"""
result = current_amount >= float(transfer_amount)
return result
def moderate_text(text: str, uncultured_words: Iterable[str]) -> str:
"""
Модерирует текст по следующим правилам.
Требования к тексту:
- Первая буква заглавная, остальные буквы только в нижнем регистре
- отсутствую лишние пробелы
- фильтруются 'опасные' символы: " ' (двойные и одинарные кавычки)
- слова, перечисленные в переменной uncultured_words заменяются на аналогичное количество знаков #
:param text: исходный текст
:param uncultured_words: список запрещенных слов
:return: текст, соответсвующий правилам
"""
dangerous_characters = ['"', "'"]
result = text.strip()
result = result.capitalize()
for char in dangerous_characters:
result = result.replace(char, '')
for i in uncultured_words:
result = result.replace(i, '#' * len(i))
return result
def create_request_for_loan(user_info: str) -> str:
"""
Генерирует заявку на кредит на основе входящей строки.
Формат входящий строки:
Иванов,Петр,Сергеевич,01.01.1991,10000
Что должны вернуть на ее основе:
Фамилия: Иванов
Имя: Петр
Отчество: Сергеевич
Дата рождения: 01.01.1991
Запрошенная сумма: 10000
:param user_info: строка с информацией о клиенте
:return: текст кредитной заявки
"""
info = user_info.split(',')
result = f'Фамилия: {info[0]}\n' + \
f'Имя: {info[1]}\n' +\
f'Отчество: {info[2]}\n' +\
f'Дата рождения: {info[3]}\n' +\
f'Запрошенная сумма: {info[4]}'
return result