Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ======================================================================================================================
- # 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('Задание решено неверно!')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement