🐍 Python: Практические задания

Тема: Работа с библиотеками

📊 Прогресс:

0/0

🟢 Уровень 1: Генерация случайных чисел

Задача 1.1: Случайное целое число
Сгенерируйте и выведите одно случайное целое число от 1 до 10.
💡 Подсказка:
Используйте модуль random и функцию для генерации случайного целого числа в диапазоне.
✅ Решение:
import random
print(random.randint(1, 10))
Задача 1.2: Случайные дробные числа
Сгенерируйте и выведите три случайных числа с плавающей точкой от 0 до 1.
💡 Подсказка:
Используйте функцию генерации случайных чисел с плавающей точкой.
✅ Решение:
import random
print(random.random())
print(random.random())
print(random.random())
Задача 1.3: Список случайных чисел
Создайте список из 5 случайных целых чисел от 10 до 50 и выведите его.
💡 Подсказка:
Используйте random.randint() и список.
✅ Решение:
import random
numbers = [
    random.randint(10, 50),
    random.randint(10, 50),
    random.randint(10, 50),
    random.randint(10, 50),
    random.randint(10, 50)
]
print(numbers)

🟡 Уровень 2: Работа с Faker

Задача 2.1: Генерация личных данных
Используя библиотеку faker, сгенерируйте и выведите имя, фамилию и адрес одного пользователя.
💡 Подсказка:
Импортируйте Faker, создайте объект и вызовите методы для имени и адреса.
✅ Решение:
from faker import Faker
fake = Faker()
print(fake.first_name())
print(fake.last_name())
print(fake.address())
Задача 2.2: Список имён
Сгенерируйте с помощью faker список из 3 полных имён (имя + фамилия). Выведите список.
💡 Подсказка:
Используйте метод fake.name() для генерации полного имени.
✅ Решение:
from faker import Faker
fake = Faker()
names = []
names.append(fake.name())
names.append(fake.name())
names.append(fake.name())
print(names)
Задача 2.3: Кортеж случайных чисел
Создайте кортеж из 4 случайных целых чисел от 1 до 20 с помощью random. Выведите тип и содержимое.
💡 Подсказка:
Используйте генератор списка с random.randint(), а затем преобразуйте в кортеж.
✅ Решение:
import random
numbers = tuple([
    random.randint(1, 20),
    random.randint(1, 20),
    random.randint(1, 20),
    random.randint(1, 20)
])
print(type(numbers))
print(numbers)

🟠 Уровень 3: Выбор и даты

Задача 3.1: Случайный выбор
Используя random, выберите случайный элемент из списка ['apple', 'banana', 'cherry', 'date'] и выведите его.
💡 Подсказка:
Используйте функцию для случайного выбора из последовательности.
✅ Решение:
import random
fruits = ['apple', 'banana', 'cherry', 'date']
print(random.choice(fruits))
Задача 3.2: Даты рождения
Сгенерируйте 5 случайных дат рождения (формат строки: YYYY-MM-DD) с помощью faker и сохраните в список. Выведите список.
💡 Подсказка:
Используйте метод fake.date_of_birth() и преобразуйте к строке.
✅ Решение:
from faker import Faker
fake = Faker()
dates = []
dates.append(str(fake.date_of_birth()))
dates.append(str(fake.date_of_birth()))
dates.append(str(fake.date_of_birth()))
dates.append(str(fake.date_of_birth()))
dates.append(str(fake.date_of_birth()))
print(dates)
Задача 3.3: Множество случайных чисел
Создайте множество из 10 случайных целых чисел от 1 до 15 с помощью random. Выведите множество и его длину.
💡 Подсказка:
Используйте генератор списка и преобразование в множество для удаления дубликатов.
✅ Решение:
import random
numbers = set([
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15),
    random.randint(1, 15)
])
print(numbers)
print(len(numbers))

🔴 Уровень 4: Словари и перемешивание

Задача 4.1: Профиль пользователя
С помощью faker сгенерируйте словарь с данными пользователя: ключи 'name', 'email', 'city'. Выведите словарь.
💡 Подсказка:
Используйте соответствующие методы объекта Faker.
✅ Решение:
from faker import Faker
fake = Faker()
user = {
    'name': fake.name(),
    'email': fake.email(),
    'city': fake.city()
}
print(user)
Задача 4.2: Перемешивание списка
Создайте список из 5 слов, потом с помощью random.shuffle() перемешайте их и выведите.
💡 Подсказка:
Импортируйте shuffle из модуля random и примените к списку.
✅ Решение:
import random
words = ['python', 'java', 'c++', 'ruby', 'js']
random.shuffle(words)
print(words)
Задача 4.3: Множество email
Сгенерируйте 3 случайных адреса электронной почты с помощью faker, сохраните их в множество и выведите.
💡 Подсказка:
Используйте метод fake.email() и преобразование списка в множество.
✅ Решение:
from faker import Faker
fake = Faker()
emails = {fake.email(), fake.email(), fake.email()}
print(emails)

🟣 Уровень 5: Комплексные задачи

Задача 5.1: Словарь чисел и строк
Создайте список из 5 случайных чисел от 1 до 100, затем создайте словарь, где ключ — число, а значение — его строковое представление. Выведите словарь.
💡 Подсказка:
Используйте генератор словаря и функцию str().
✅ Решение:
import random
num1 = random.randint(1, 100)
num2 = random.randint(1, 100)
num3 = random.randint(1, 100)
num4 = random.randint(1, 100)
num5 = random.randint(1, 100)
num_str_dict = {
    num1: str(num1),
    num2: str(num2),
    num3: str(num3),
    num4: str(num4),
    num5: str(num5)
}
print(num_str_dict)
Задача 5.2: Профили пользователей
С помощью faker сгенерируйте и выведите 2 разных профиля пользователя, каждый в виде словаря, с ключами 'name', 'birthdate', 'address'.
💡 Подсказка:
Используйте метод fake.profile() и достаньте нужные поля.
✅ Решение:
from faker import Faker
fake = Faker()

# Первый профиль
profile1 = fake.profile()
user1 = {
    'name': profile1['name'],
    'birthdate': str(profile1['birthdate']),
    'address': profile1['address']
}
print(user1)

# Второй профиль
profile2 = fake.profile()
user2 = {
    'name': profile2['name'],
    'birthdate': str(profile2['birthdate']),
    'address': profile2['address']
}
print(user2)
Задача 5.3: Уникальные и отсортированные
Сгенерируйте список из 7 случайных чисел от 1 до 50, удалите дубликаты с помощью множества, а затем преобразуйте обратно в отсортированный список и выведите.
💡 Подсказка:
Используйте set() для удаления дубликатов и функцию sorted().
✅ Решение:
import random
numbers = [
    random.randint(1, 50),
    random.randint(1, 50),
    random.randint(1, 50),
    random.randint(1, 50),
    random.randint(1, 50),
    random.randint(1, 50),
    random.randint(1, 50)
]
unique_sorted = sorted(set(numbers))
print(unique_sorted)

💡 Полезные советы