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

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

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
# Задача 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).

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

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

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