Создайте Python-приложение, которое принимает путь к текстовому файлу и определяет, является ли его содержимое палиндромом построчно. Программа должна сохранять результаты проверки (является строка палиндромом или нет) в новый файл
results.txt
.•
python app.py check_palindrome input.txt
— проверяет каждую строку файла input.txt и сохраняет результат в results.txt.Решение задачи
import sys
def is_palindrome(line):
stripped_line = ''.join(char.lower() for char in line if char.isalnum())
return stripped_line == stripped_line[::-1]
def check_palindrome(input_file):
with open(input_file, 'r', encoding='utf-8') as file:
lines = file.readlines()
results = []
for line in lines:
line = line.strip()
result = 'палиндром' if is_palindrome(line) else 'не палиндром'
results.append(f'"{line}" — {result}')
with open('results.txt', 'w', encoding='utf-8') as result_file:
result_file.write('\n'.join(results))
print('Результаты проверки сохранены в "results.txt"')
if __name__ == '__main__':
if len(sys.argv) != 3:
print('Используйте: pythonapp.py check_palindrome <путь к файлу>')
sys.exit(1)
action = sys.argv[1]
file_path = sys.argv[2]
if action == 'check_palindrome':
check_palindrome(file_path)
else:
print('Неизвестное действие. Используйте "check_palindrome".')
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1
💬 Плохое название — это баг с задержкой
Переменная temp сейчас понятна, но через месяц будет выглядеть как головоломка.
👉 Совет: не экономь на именах. Название — это первый способ понять, что делает код. Хорошее имя делает комментарий ненужным. Плохое — превращает читателя в детектива.
Переменная temp сейчас понятна, но через месяц будет выглядеть как головоломка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Напишите функцию, которая принимает список email-адресов и возвращает уникальные домены из этого списка. Домен — это часть адреса после символа
@
.["user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]
#{"example.com", "test.com", "sample.com"}
Решение задачи
def get_unique_domains(emails):
domains = {email.split('@')[1] for email in emails}
return domains
# Пример использования:
emails = ["user1@example.com ", " user2@test.com ", " user3@example.com ", " user4@sample.com "]
result = get_unique_domains(emails)
print(result) # Ожидаемый результат: {'example.com ', ' test.com ', ' sample.com '}
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2
asyncio
в Python и как оно используется для асинхронного программирования?asyncio
— это стандартная библиотека Python, предоставляющая инструменты для асинхронного программирования, таких как задачи (tasks), корутины (coroutines) и управление циклами событий (event loops). Она позволяет выполнять множество операций ввода-вывода (например, сетевые запросы) параллельно, не блокируя основной поток.import asyncio
async def fetch_data(delay, name):
print(f"Начинаем получение данных {name}")
await asyncio.sleep(delay) # Асинхронная задержка
print(f"Завершено получение данных {name}")
async def main():
# Запускаем несколько задач параллельно
await asyncio.gather(
fetch_data(2, "A"),
fetch_data(1, "B"),
fetch_data(3, "C"),
)
# Запуск цикла событий
asyncio.run(main())
🗣️ В этом примере asyncio.gather запускает три асинхронные задачи одновременно, позволяя эффективно использовать время ожидания ввода-вывода. asyncio полезен для построения сетевых приложений, ботов и других асинхронных систем.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2
⁉️ Хотите узнать, как устроен рабочий процесс в ML и получить базовые навыки работы с данными?
23 июля в 20:00 МСК OTUS проводит открытый урок «ML для начинающих – первые шаги с Jupyter Notebook». Вас ждёт:
– Обзор этапов машинного обучения: от подготовки данных до первой модели.
– Настройка виртуального окружения для изоляции экспериментов.
– Знакомство с Jupyter Notebook: анализ, визуализация, код и Markdown вместе.
Этот урок — идеальная отправная точка перед стартом курса «Специализация Machine Learning». Все участники получат скидку на обучение.
➡️ Регистрация открыта: https://vk.cc/cNV4ZH
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, erid: 2VtzqxAgETJ
23 июля в 20:00 МСК OTUS проводит открытый урок «ML для начинающих – первые шаги с Jupyter Notebook». Вас ждёт:
– Обзор этапов машинного обучения: от подготовки данных до первой модели.
– Настройка виртуального окружения для изоляции экспериментов.
– Знакомство с Jupyter Notebook: анализ, визуализация, код и Markdown вместе.
Этот урок — идеальная отправная точка перед стартом курса «Специализация Machine Learning». Все участники получат скидку на обучение.
➡️ Регистрация открыта: https://vk.cc/cNV4ZH
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, erid: 2VtzqxAgETJ