diff --git a/TEMA3/control_task_results.txt b/TEMA3/control_task_results.txt new file mode 100644 index 0000000..1e1e815 --- /dev/null +++ b/TEMA3/control_task_results.txt @@ -0,0 +1,26 @@ +РЕЗУЛЬТАТЫ КОНТРОЛЬНОГО ЗАДАНИЯ +================================================== + +1. Преобразование восьмеричного значения: + Восьмеричное 45 = десятичное 37 + +2. Работа со словарем: + Исходный словарь: {'усиление': 23, 'запаздывание': 12, 'постоянная времени': 78} + Кортеж из списков: (['усиление', 'запаздывание', 'постоянная времени'], [23, 12, 78]) + Отличие кортежа от списка: кортеж неизменяем, список изменяем + +3. Математические операции: + Результат: 5.278031643091577 + +4. Битвые операции: + Результат: -32 + +5. Проверка подстроки: + Наличие 'аткол' в 'колебатколебат': True + +6. Методы словаря: + Ключи: ['усиление', 'запаздывание', 'постоянная времени'] + Значения: [23, 12, 78] + +7. Финальный список слов: + ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] diff --git a/TEMA3/task.md b/TEMA3/task.md new file mode 100644 index 0000000..afee37c --- /dev/null +++ b/TEMA3/task.md @@ -0,0 +1,217 @@ +# Задание + +* Преобразовать восьмеричное значение 45 в целое число. +* Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка? +* Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4. +* Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево. +* Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка. +* Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов. +* Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список. + + +```python +print("1. Преобразование восьмеричного значения 45 в целое число:") +octal_value = '45' +decimal_value = int(octal_value, 8) +print(f"Восьмеричное {octal_value} = десятичное {decimal_value}") +print() + + +print("2. Работа со словарем:") +D = {"усиление": 23, "запаздывание": 12, "постоянная времени": 78} +print(f"Исходный словарь: {D}") + +keys_list = list(D.keys()) +values_list = list(D.values()) +print(f"Список ключей: {keys_list}") +print(f"Список значений: {values_list}") + +tuple_result = (keys_list, values_list) +print(f"Кортеж из двух списков: {tuple_result}") + +print("\nОтличие кортежа от списка:") +print("- Кортеж НЕИЗМЕНЯЕМ (immutable) - после создания нельзя изменить элементы") +print("- Список ИЗМЕНЯЕМ (mutable) - можно добавлять, удалять, изменять элементы") +print("- Кортеж занимает меньше памяти и работает быстрее") +print("- Кортеж используется для группировки разнородных данных") +print("- Список используется для последовательностей однородных данных") +print() + + +print("3. Единое выражение с математическими операциями:") +result_3 = ((1768 // 24.8) % 3) ** 2.4 +print("Выражение: ((1768 // 24.8) % 3) ** 2.4") +print(f"Результат: {result_3}") +print() + + +print("4. Единое выражение с битовыми операциями:") +result_4 = ((~(13 & 27)) ^ 14) << 2 +print("Выражение: ((~(13 & 27)) ^ 14) << 2") +print(f"Результат: {result_4}") +print() + + +print("5. Работа со списком и проверка подстроки:") +list_5 = ['колебат'] * 4 +print(f"Список: {list_5}") + +concatenated = list_5[1] + list_5[2] +print(f"Конкатенация 2-го и 3-го элементов: '{concatenated}'") + +has_substring = 'аткол' in concatenated +print(f"Наличие 'аткол' в '{concatenated}': {has_substring}") +print() + + +print("6. Методы словаря D:") +methods = [method for method in dir(D) if not method.startswith('_')] +print(f"Доступные методы: {methods}") + +print("\nИспользование метода keys():") +keys_method = D.keys() +print(f" D.keys() = {keys_method}") +print(f" Тип: {type(keys_method)}") +print(f" Можно преобразовать в список: {list(keys_method)}") + +print("\nИспользование метода values():") +values_method = D.values() +print(f" D.values() = {values_method}") +print(f" Тип: {type(values_method)}") +print(f" Можно преобразовать в список: {list(values_method)}") + +print("\nВывод:") +print(" - keys() возвращает представление ключей словаря") +print(" - values() возвращает представление значений словаря") +print(" - Эти представления динамически связаны со словарем") +print(" - Изменения в словаре автоматически отражаются в представлениях") +print() + + +print("7. Работа со строкой и списком:") +text = "Создать объект - символьную строку с текстом данного предложения" +print(f"Исходный текст: '{text}'") + +words_list = text.split() +print(f"Список слов: {words_list}") + +index = words_list.index('-') +words_list[index] = ',' +print(f"После замены '-' на ',': {words_list}") + +words_list.remove('данного') +print(f"После удаления 'данного': {words_list}") + + +print("\n=== ЗАПИСЬ РЕЗУЛЬТАТОВ В ФАЙЛ ===") +with open('TEMA3/control_task_results.txt', 'w', encoding='utf-8') as file: + file.write("РЕЗУЛЬТАТЫ КОНТРОЛЬНОГО ЗАДАНИЯ\n") + file.write("=" * 50 + "\n\n") + + file.write("1. Преобразование восьмеричного значения:\n") + file.write(f" Восьмеричное {octal_value} = десятичное {decimal_value}\n\n") + + file.write("2. Работа со словарем:\n") + file.write(f" Исходный словарь: {D}\n") + file.write(f" Кортеж из списков: {tuple_result}\n") + file.write(" Отличие кортежа от списка: кортеж неизменяем, список изменяем\n\n") + + file.write("3. Математические операции:\n") + file.write(f" Результат: {result_3}\n\n") + + file.write("4. Битвые операции:\n") + file.write(f" Результат: {result_4}\n\n") + + file.write("5. Проверка подстроки:\n") + file.write(f" Наличие 'аткол' в '{concatenated}': {has_substring}\n\n") + + file.write("6. Методы словаря:\n") + file.write(f" Ключи: {list(D.keys())}\n") + file.write(f" Значения: {list(D.values())}\n\n") + + file.write("7. Финальный список слов:\n") + file.write(f" {words_list}\n") + +print("Результаты записаны в файл 'control_task_results.txt'") + + + +print("\n=== АНАЛИЗ РЕЗУЛЬТАТОВ ===") +print("1. Восьмеричное преобразование: успешно выполнено") +print("2. Словарь преобразован в кортеж списков: структура данных сохранена") +print("3. Математическое выражение: все операции выполнены в правильном порядке") +print("4. Битовые операции: продемонстрирована работа с битовыми операторами") +print("5. Проверка подстроки: показана работа со строками и оператором 'in'") +print("6. Методы словаря: изучены методы keys() и values()") +print("7. Обработка списка: выполнены все требуемые операции модификации") +``` + +Ответ программы: + +```shell +1. Преобразование восьмеричного значения 45 в целое число: +Восьмеричное 45 = десятичное 37 + +2. Работа со словарем: +Исходный словарь: {'усиление': 23, 'запаздывание': 12, 'постоянная времени': 78} +Список ключей: ['усиление', 'запаздывание', 'постоянная времени'] +Список значений: [23, 12, 78] +Кортеж из двух списков: (['усиление', 'запаздывание', 'постоянная времени'], [23, 12, 78]) + +Отличие кортежа от списка: +- Кортеж НЕИЗМЕНЯЕМ (immutable) - после создания нельзя изменить элементы +- Список ИЗМЕНЯЕМ (mutable) - можно добавлять, удалять, изменять элементы +- Кортеж занимает меньше памяти и работает быстрее +- Кортеж используется для группировки разнородных данных +- Список используется для последовательностей однородных данных + +3. Единое выражение с математическими операциями: +Выражение: ((1768 // 24.8) % 3) ** 2.4 +Результат: 5.278031643091577 + +4. Единое выражение с битовыми операциями: +Выражение: ((~(13 & 27)) ^ 14) << 2 +Результат: -32 + +5. Работа со списком и проверка подстроки: +Список: ['колебат', 'колебат', 'колебат', 'колебат'] +Конкатенация 2-го и 3-го элементов: 'колебатколебат' +Наличие 'аткол' в 'колебатколебат': True + +6. Методы словаря D: +Доступные методы: ['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] + +Использование метода keys(): + D.keys() = dict_keys(['усиление', 'запаздывание', 'постоянная времени']) + Тип: + Можно преобразовать в список: ['усиление', 'запаздывание', 'постоянная времени'] + +Использование метода values(): + D.values() = dict_values([23, 12, 78]) + Тип: + Можно преобразовать в список: [23, 12, 78] + +Вывод: + - keys() возвращает представление ключей словаря + - values() возвращает представление значений словаря + - Эти представления динамически связаны со словарем + - Изменения в словаре автоматически отражаются в представлениях + +7. Работа со строкой и списком: +Исходный текст: 'Создать объект - символьную строку с текстом данного предложения' +Список слов: ['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +После замены '-' на ',': ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] +После удаления 'данного': ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] + +=== ЗАПИСЬ РЕЗУЛЬТАТОВ В ФАЙЛ === +Результаты записаны в файл 'TEMA3/control_task_results.txt' + +=== АНАЛИЗ РЕЗУЛЬТАТОВ === +1. Восьмеричное преобразование: успешно выполнено +2. Словарь преобразован в кортеж списков: структура данных сохранена +3. Математическое выражение: все операции выполнены в правильном порядке +4. Битовые операции: продемонстрирована работа с битовыми операторами +5. Проверка подстроки: показана работа со строками и оператором 'in' +6. Методы словаря: изучены методы keys() и values() +7. Обработка списка: выполнены все требуемые операции модификации +``` \ No newline at end of file diff --git a/TEMA3/taskO.py b/TEMA3/taskO.py new file mode 100644 index 0000000..9f404aa --- /dev/null +++ b/TEMA3/taskO.py @@ -0,0 +1,133 @@ +print("1. Преобразование восьмеричного значения 45 в целое число:") +octal_value = '45' +decimal_value = int(octal_value, 8) +print(f"Восьмеричное {octal_value} = десятичное {decimal_value}") +print() + + +print("2. Работа со словарем:") +D = {"усиление": 23, "запаздывание": 12, "постоянная времени": 78} +print(f"Исходный словарь: {D}") + +keys_list = list(D.keys()) +values_list = list(D.values()) +print(f"Список ключей: {keys_list}") +print(f"Список значений: {values_list}") + +tuple_result = (keys_list, values_list) +print(f"Кортеж из двух списков: {tuple_result}") + +print("\nОтличие кортежа от списка:") +print("- Кортеж НЕИЗМЕНЯЕМ (immutable) - после создания нельзя изменить элементы") +print("- Список ИЗМЕНЯЕМ (mutable) - можно добавлять, удалять, изменять элементы") +print("- Кортеж занимает меньше памяти и работает быстрее") +print("- Кортеж используется для группировки разнородных данных") +print("- Список используется для последовательностей однородных данных") +print() + + +print("3. Единое выражение с математическими операциями:") +result_3 = ((1768 // 24.8) % 3) ** 2.4 +print("Выражение: ((1768 // 24.8) % 3) ** 2.4") +print(f"Результат: {result_3}") +print() + + +print("4. Единое выражение с битовыми операциями:") +result_4 = ((~(13 & 27)) ^ 14) << 2 +print("Выражение: ((~(13 & 27)) ^ 14) << 2") +print(f"Результат: {result_4}") +print() + + +print("5. Работа со списком и проверка подстроки:") +list_5 = ['колебат'] * 4 +print(f"Список: {list_5}") + +concatenated = list_5[1] + list_5[2] +print(f"Конкатенация 2-го и 3-го элементов: '{concatenated}'") + +has_substring = 'аткол' in concatenated +print(f"Наличие 'аткол' в '{concatenated}': {has_substring}") +print() + + +print("6. Методы словаря D:") +methods = [method for method in dir(D) if not method.startswith('_')] +print(f"Доступные методы: {methods}") + +print("\nИспользование метода keys():") +keys_method = D.keys() +print(f" D.keys() = {keys_method}") +print(f" Тип: {type(keys_method)}") +print(f" Можно преобразовать в список: {list(keys_method)}") + +print("\nИспользование метода values():") +values_method = D.values() +print(f" D.values() = {values_method}") +print(f" Тип: {type(values_method)}") +print(f" Можно преобразовать в список: {list(values_method)}") + +print("\nВывод:") +print(" - keys() возвращает представление ключей словаря") +print(" - values() возвращает представление значений словаря") +print(" - Эти представления динамически связаны со словарем") +print(" - Изменения в словаре автоматически отражаются в представлениях") +print() + + +print("7. Работа со строкой и списком:") +text = "Создать объект - символьную строку с текстом данного предложения" +print(f"Исходный текст: '{text}'") + +words_list = text.split() +print(f"Список слов: {words_list}") + +index = words_list.index('-') +words_list[index] = ',' +print(f"После замены '-' на ',': {words_list}") + +words_list.remove('данного') +print(f"После удаления 'данного': {words_list}") + + +print("\n=== ЗАПИСЬ РЕЗУЛЬТАТОВ В ФАЙЛ ===") +with open('TEMA3/control_task_results.txt', 'w', encoding='utf-8') as file: + file.write("РЕЗУЛЬТАТЫ КОНТРОЛЬНОГО ЗАДАНИЯ\n") + file.write("=" * 50 + "\n\n") + + file.write("1. Преобразование восьмеричного значения:\n") + file.write(f" Восьмеричное {octal_value} = десятичное {decimal_value}\n\n") + + file.write("2. Работа со словарем:\n") + file.write(f" Исходный словарь: {D}\n") + file.write(f" Кортеж из списков: {tuple_result}\n") + file.write(" Отличие кортежа от списка: кортеж неизменяем, список изменяем\n\n") + + file.write("3. Математические операции:\n") + file.write(f" Результат: {result_3}\n\n") + + file.write("4. Битвые операции:\n") + file.write(f" Результат: {result_4}\n\n") + + file.write("5. Проверка подстроки:\n") + file.write(f" Наличие 'аткол' в '{concatenated}': {has_substring}\n\n") + + file.write("6. Методы словаря:\n") + file.write(f" Ключи: {list(D.keys())}\n") + file.write(f" Значения: {list(D.values())}\n\n") + + file.write("7. Финальный список слов:\n") + file.write(f" {words_list}\n") + +print("Результаты записаны в файл 'control_task_results.txt'") + + +print("\n=== АНАЛИЗ РЕЗУЛЬТАТОВ ===") +print("1. Восьмеричное преобразование: успешно выполнено") +print("2. Словарь преобразован в кортеж списков: структура данных сохранена") +print("3. Математическое выражение: все операции выполнены в правильном порядке") +print("4. Битовые операции: продемонстрирована работа с битовыми операторами") +print("5. Проверка подстроки: показана работа со строками и оператором 'in'") +print("6. Методы словаря: изучены методы keys() и values()") +print("7. Обработка списка: выполнены все требуемые операции модификации") \ No newline at end of file