This commit is contained in:
LeterZP
2026-02-13 19:41:40 +03:00
commit 7e065b45b7
3 changed files with 111 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
# Author = Bosenko Boris Igorevich
# Group = P3115
# Date = 12.11.2025
import re
def haiku(text):
sl = '[аеёиоуыэюя]'
if not(re.fullmatch(r'[^/]*/[^/]*/[^/]*', text)):
return "Не хайку. Должно быть 3 строки."
elif re.match(sl+"{5}/"+sl+"{7}/"+sl+"{5}", "".join(re.findall('[аеёиоуыэюя/]', str.lower(text)))):
return "Хайку!"
else:
return "Не хайку."
if __name__ == "__main__":
try:
tests = [
"Ветер за окном. / Дождь слегка бьёт по окнам. / Сегодня пишу псж.",
" Один день назадю / Был сильный дождь. / Много луж на улице.",
"Еще один день. / Очень скучно.",
"Один, четыре. / Два, три, пять, шесть, семь, восемь. / Девять, десять, ноль. ",
"Четыре. / Двенадцать. / Восемь. / Пятнадцать. / Тринадцать."
]
for test in tests:
print(haiku(test), end=" ")
print()
results = [
"Хайку!",
"Не хайку.",
"Не хайку. Должно быть 3 строки.",
"Хайку!",
"Не хайку. Должно быть 3 строки."
]
print(*results, sep=" ")
except Exception as error:
print(f"Ошибка: {error}")
+34
View File
@@ -0,0 +1,34 @@
# Author = Bosenko Boris Igorevich
# Group = P3115
# Date = 12.11.2025
import re
def mail(email):
if re.fullmatch(r'[\w.]*@[a-zA-Zа-яА-я]+(\.[a-zA-Zа-яА-я]+)+', email):
return email[email.index("@") + 1:]
else:
return "Fail!"
if __name__ == "__main__":
try:
tests = [
"day@dfgdfg..",
"ind_out.us@out_because.us",
"2let@it.be.me",
"no_here.there@and.there",
"1322list@another8916.21"
]
for test in tests:
print(mail(test), end=" ")
print()
results = [
"not.here",
"Fail!",
"it.be.me",
"and.there",
"Fail!"
]
print(*results, sep=" ")
except Exception as error:
print(f"Ошибка: {error}")
+40
View File
@@ -0,0 +1,40 @@
# Author = Bosenko Boris Igorevich
# Group = P3115
# Date = 12.11.2025
import re
def cron(text):
pat_min = r'([*]*|((([1-5]?[0-9])[,])*|(((([1-5]?[0-9])|[*])[/])|(([1 5]?[0-9])[-]))?)([1-5]?[0-9])) '
pat_hour = r'([*]*|(((1?[0-9]|2[0-3])[,])*|(((((1?[0-9]|2[0-3])|[*])[/])|((1?[0-9]|2[0-3])[-]))?)(1?[0-9]|2[0-3]))) '
pat_day = r'([*]*|(((([1-9]|[1-2][0-9]|3[0-1])[,])*|(((([1-9]|[1-2][0-9]|3[0-1])|[*])[/])|(([1-9]|[1-2][0-9]|3[0-1])[-]))?)([1-9]|[1-2][0-9]|3[0-1]))) '
pat_mon = r'([*]*|(((([1-9]|(1[0-2]))[,])*|(((([1-9]|(1[0-2]))|[*])[/])|(([1-9]|(1[0-2]))[-]))?)([1-9]|(1[0-2])))) '
pat_week = r'([*]*|(((([0-6])[,])*|(((([0-6])|[*])[/])|(([0-6])[-]))?)[0-6]))'
pat = r'\s*' + pat_min + pat_hour + pat_day + pat_mon + pat_week + r'\s*'
if re.fullmatch(pat, text):
return "Cron-выражение правильное!"
else:
return "Cron-выражение содержит ошибку!"
if __name__ == "__main__":
try:
tests = [
"* 88888 21 * 4",
" 5-15 * 4 6-8 * ",
"** /4 11 * -6 ",
"18,21 * 4/6 * 1,3",
" * 4 19 21 "
]
for test in tests:
print(cron(test), end=" ")
print()
results = [
"Cron-выражение правильное!",
"Cron-выражение правильное!",
"Cron-выражение содержит ошибку!",
"Cron-выражение правильное!",
"Cron-выражение содержит ошибку!"
]
print(*results, sep=" ")
except Exception as error:
print(f"Ошибка: {error}")