🏠 Практика в VS Code

⚡ Кратко

Создайте генератор случайных пользователей (имя + email + дата регистрации) и запишите 100 записей в CSV-файл.

Задача. Генератор случайных пользователей

Создайте программу generate_users.py, которая:

  1. Генерирует случайные имена и фамилии.
  2. Формирует email в формате firstname.lastname@example.com в нижнем регистре.
  3. Генерирует случайную дату регистрации за последние 2 года.
  4. Записывает 100 записей в файл users.csv.

Эталонное решение

# generate_users.py
import csv
import random
from datetime import datetime, timedelta


FIRST_NAMES = ["Alice", "Bob", "Charlie", "Diana", "Eve", "Frank"]
LAST_NAMES = ["Smith", "Johnson", "Williams", "Brown", "Jones", "Garcia"]


def random_users(count: int = 100):
    """Генератор случайных пользователей."""
    for _ in range(count):
        first = random.choice(FIRST_NAMES)
        last = random.choice(LAST_NAMES)
        email = f"{first.lower()}.{last.lower()}@example.com"
        days_ago = random.randint(0, 730)
        registered = (datetime.now() - timedelta(days=days_ago)).strftime("%Y-%m-%d")
        yield {"name": f"{first} {last}", "email": email, "registered": registered}


def main():
    with open("users.csv", "w", newline="", encoding="utf-8") as file:
        writer = csv.DictWriter(file, fieldnames=["name", "email", "registered"])
        writer.writeheader()
        writer.writerows(random_users(100))
    print("Файл users.csv создан.")


if __name__ == "__main__":
    main()

Как проверить

  1. Создайте generate_users.py.
  2. Запустите: python generate_users.py
  3. Откройте users.csv и проверьте 100 строк.