# ======================================================================================================================
# Author: BERKYT
# ======================================================================================================================
import random
from abc import ABC, abstractmethod
class TaskException(Exception):
pass
class Task(ABC):
@abstractmethod
def get_info():
pass
@abstractmethod
def get_task():
pass
@abstractmethod
def input_respounse(task, respounse):
pass
class Example:
class TaskExample(Task):
def get_info():
return 'Напишите сложение чисел 1 + 1'
def get_task():
return (1, 1)
def input_respounse(*, task, respounse):
if sum(task) != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class LessonTwo:
class Task_1(Task):
def get_info():
return 'Проверить, является ли последовательность цифрами?'
def get_task():
alphabet = 'abcdefghijklmnopqrstuvwxyz'
length = random.randint(5, 25)
return ''.join([str(random.randint(0, 9)) for _ in range(length)]) if random.randint(0, 1) else ''.join([random.choice(alphabet) for _ in range(length)])
def input_respounse(*, task, respounse):
if task.isdigit() is not respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class Task_2(Task):
def get_info():
return 'Найти последний элемент в списке'
def get_task():
length = random.randint(5, 25)
return [random.randint(-10, 10) for _ in range(length)]
def input_respounse(*, task, respounse):
if task[-1] != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class Task_3(Task):
def get_info():
return 'Разбить строку на список по запятым'
def get_task():
return '255.255.255.0,255.255.255.128,255.255.255.192,255.255.255.224,255.255.255.240'
def input_respounse(*, task, respounse):
if task.split(',') != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class Task_4(Task):
def get_info():
return 'Заменить в строке слова "ЗАМЕНИ" на "***"'
def get_task():
return 'Язык характеризуется логичным синтаксисом, ЗАМЕНИ вследствие чего исходный код программ, написанных «на питоне», ЗАМЕНИ легко читается и воспринимается.'
def input_respounse(*, task, respounse):
if task.replace('ЗАМЕНИ', '***') != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class Task_5(Task):
def get_info():
return 'Узнать длину списка'
def get_task():
length = random.randint(5, 25)
return [random.randint(-10, 10) for _ in range(length)]
def input_respounse(*, task, respounse):
if len(task) != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class Task_6(Task):
def get_info():
return 'Найти где находится слово "НАЙДИ"'
def get_task():
return 'Язык характеризуется логичным синтаксисом, вследствие чего НАЙДИ исходный код программ, написанных «на питоне», легко читается и воспринимается.'
def input_respounse(*, task, respounse):
if task.find('НАЙДИ') != respounse:
raise TaskException('Задание решено неверно!')
else:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
class LessonThree:
class Task_1(Task):
def get_info():
return 'С помощью встроенных функций создать список'
def get_task():
return list
def input_respounse(*, task, respounse):
if isinstance(respounse, task):
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_2(Task):
def get_info():
return 'Проверить, все ли числа в списке больше 0'
def get_task():
res = []
for _ in range(10):
res.append(1 if random.randint(0,10) else 0)
return res
def input_respounse(*, task, respounse):
if all(task) is respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_3(Task):
def get_info():
return 'Проверить, есть ли в списке хоть одно число больше 0'
def get_task():
res = []
for _ in range(10):
res.append(1 if not random.randint(0,10) else 0)
return res
def input_respounse(*, task, respounse):
if any(task) is respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_4(Task):
def get_info():
return 'Найти минимальное значение в списке'
def get_task():
res = []
for _ in range(10):
res.append(random.randint(-100,100))
return res
def input_respounse(*, task, respounse):
if min(task) == respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_5(Task):
def get_info():
return 'Найти сумму элементов в списке'
def get_task():
return [x for x in range(random.randint(5, 40))]
def input_respounse(*, task, respounse):
if sum(task) == respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_6(Task):
def get_info():
return 'Выполнить сортировку списка'
def get_task():
alphabet = 'abcdefghijklmnopqrstuvwxyz'
return [random.randint(-10, 10) for _ in range(10)] if random.randint(0, 1) else [random.choice(alphabet) for _ in range(10)]
def input_respounse(*, task, respounse):
if sorted(task) == respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')
class Task_7(Task):
def get_info():
return 'Найти максимальное значение в списке'
def get_task():
res = []
for _ in range(10):
res.append(random.randint(-100,100))
return res
def input_respounse(*, task, respounse):
if max(task) == respounse:
print(f'Ваш ответ: {respounse=}\nВы справились с заданием! Переходите дальше.')
else:
raise TaskException('Задание решено неверно!')