Помогите написать программу и с пояснением если не трудно
1. Описание классовой структуры
Есть Алфавит, характеристиками которого являются:
1. Язык
2. Список букв
Для Алфавита можно:
2. Напечатать все буквы алфавита
3. Посчитать количество букв
Так же есть Английский алфавит, который обладает следующими свойствами:
1. Язык
2. Список букв
3. Количество букв
Для Английского алфавита можно:
1. Посчитать количество букв
2. Определить, относится ли буква к английскому алфавиту
3. Получить пример текста на английском языке
1. Задание
1. Класс Alphabet
4. Создайте класс Alphabet
5. Создайте метод __init__(), внутри которого будут определены два атрибута: 1) lang – язык и 2) letters – список букв. Начальные значения свойств берутся из входных параметров метода
6. Создайте метод print(), который выведет в консоль буквы алфавита
7. Создайте метод letters_num(), который вернет количество букв в алфавите
2. Класс EngAlphabet
1. Создайте класс EngAlphabet путем наследования от класса Alphabet
2. Создайте метод __init__(), внутри которого будет вызываться родительский метод __init__(). В качестве параметров ему будут передаваться обозначение языка (например, En) и строка, состоящая из всех букв алфавита (можно воспользоваться свойством ascii_uppercase из модуля string)
3. Добавьте приватный статический атрибут _letters_num, который будет хранить количество букв в алфавите.
4. Создайте метод is_en_letter(), который будет принимать букву в качестве параметра и определять, относится ли эта буква к английскому алфавиту.
5. Переопределите метод letters_num() – пусть в текущем классе классе он будет возвращать значение атрибута _letters_num
6. Создайте статический метод example(), который будет возвращать пример текста на английском языке.
3. Тесты (main)
1. Создайте объект класса EngAlphabet
2. Напечатайте буквы алфавита для этого объекта
3. Выведите количество букв в алфавите
4. Проверьте, относится ли буква F к английскому алфавиту
5. Проверьте, относится ли буква Щ к английскому алфавиту
6. Выведите пример текста на английском языке
Пример вывода программы
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
26
True
False
English Example:
Don't judge a book by it's cover.
import string
class Alphabet:
def __init__(self, lang, letters):
self.lang = lang
self.letters = letters
def print(self):
print(self.letters)
def letters_num(self):
return len(self.letters)
class EngAlphabet(Alphabet):
_letters_num = len(string.ascii_uppercase)
def __init__(self):
super().__init__('En', string.ascii_uppercase)
def is_en_letter(self, letter):
return letter.upper() in self.letters
def letters_num(self):
return self._letters_num
@staticmethod
def example():
return "Don't judge a book by it's cover."
eng_alphabet = EngAlphabet()
eng_alphabet.print() # ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
print(eng_alphabet.letters_num()) # 26
print(eng_alphabet.is_en_letter('F')) # True
print(eng_alphabet.is_en_letter('Щ')) # False
print(EngAlphabet.example()) # "Don't judge a book by it's cover."
не благодари)