1. Главная
  2. Библиотека
  3. Программирование
  4. # Задача 3: Запись нового файла Описание: У Вас есть фа...
Решение задачи

# Задача 3: Запись нового файла Описание: У Вас есть файл с номерами кошельков. Программа должна перемешать этот список, присвоить каждому кошельку рандомное значение с плавающей запятой (от 0.001 до 0.5) и если это значение больше 0.2, записать в файл

  • Программирование

Условие:

# Задача 3: Запись нового файла

Описание: У Вас есть файл с номерами кошельков. Программа должна перемешать этот список,

присвоить каждому кошельку рандомное значение с плавающей запятой (от 0.001 до 0.5) и если это

значение больше 0.2, записать в файл large.txt, если меньше, то small.txt. Значение должно быть с пятью

знаками после запятой.

Домашнее задание


import random

with open("wallets", "r") as file:
wallets = file.readlines()

random.shuffle(wallets)
randomfloat = random.uniform(1, 5)

if randomfloat > 0.2:
with open("large.txt", "w") as file:
file.write(round(randomfloat, 5))

print(f"Значение числа больше 0,2: {randomfloat}\n")
elif randomfloat <= 0.2:
with open("small.txt", "w") as file:
file.write(round()randomfloat))

print(f"Значение числа меньше 0,2: {randomfloat}\n")

Решение:

Ниже привожу исправленный код с подробным описанием каждого шага и комментариями: ────────────────────────────── КОД: ───────────────────────────...

with open(wallets, r) as file: wallets = [line.strip() for line in file if line.strip()] random.shuffle(wallets) with open(large.txt, w) as largefile: # 4. Для каждого кошелька из перемешанного списка: for wallet in wallets: # Генерируем случайное число с плавающей точкой в диапазоне от 0.001 до 0.5. value = random.uniform(0.001, 0.5) # Форматируем число так, чтобы было ровно 5 знаков после запятой. formattedalue = f{value:.5f} # Подготавливаем строку для записи: номер кошелька и соответствующее значение. line = f{wallet} {formattedalue}\n # 5. Если значение больше 0.2 – записываем в файл large.txt, иначе – в файл small.txt. if value 0.2: largeile.write(line) else: smallile.write(line) print(Файлы сформированы.) ────────────────────────────── Пошаговое объяснение: 1. Сначала мы открываем файл wallets для чтения, считываем все строки и отбрасываем лишние пробельные символы с помощью метода strip(). Это позволяет избежать проблемы с лишними символами перевода строки. 2. Далее с помощью функции random.shuffle() перемешиваем список кошельков, чтобы их порядок стал случайным. 3. Затем открываем два файла – large.txt и small.txt – для записи. Используем менеджер контекста with, чтобы файлы автоматически закрывались по завершении работы с ними. 4. Для каждого кошелька: a) Генерируем случайное число (value) с плавающей точкой в диапазоне от 0.001 до 0.5 с помощью random.uniform(0.001, 0.5). b) Форматируем это число до пяти знаков после запятой с помощью конструкции f{value:.5f}. c) Формируем строку, содержащую номер кошелька и отформатированное число, разделённые пробелом, а в конце добавляем символ новой строки. d) Если значение value больше 0.2, записываем строку в файл large.txt, если value меньше или равно 0.2 – записываем в файл small.txt. 5. В конце выводим сообщение о завершении процесса. Таким образом, программа правильно выполняет задание: она перемешивает кошельки, генерирует для каждого случайное значение в заданном диапазоне (с пятью знаками после запятой) и распределяет их между двумя файлами в зависимости от условия (value 0.2 или value = 0.2).

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет