Задача. Генератор случайных пользователей
Создайте программу generate_users.py, которая:
- Генерирует случайные имена и фамилии.
- Формирует email в формате
firstname.lastname@example.comв нижнем регистре. - Генерирует случайную дату регистрации за последние 2 года.
- Записывает 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()
Как проверить
- Создайте
generate_users.py. - Запустите:
python generate_users.py - Откройте
users.csvи проверьте 100 строк.