форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
65 строки
1.6 KiB
Python
65 строки
1.6 KiB
Python
def func_1(file, KK):
|
|
"""Разделение чисел на два файла по пороговому значению KK"""
|
|
numbers = []
|
|
with open(file, 'r') as f:
|
|
for line in f:
|
|
parts = line.split()
|
|
for x in parts:
|
|
num = float(x)
|
|
numbers.append(num)
|
|
|
|
file_1 = []
|
|
file_2 = []
|
|
for x in numbers:
|
|
if x > KK:
|
|
file_1.append(x)
|
|
else:
|
|
file_2.append(x)
|
|
|
|
name_1 = file.replace('.txt', '1.txt')
|
|
name_2 = file.replace('.txt', '2.txt')
|
|
|
|
with open(name_1, 'w') as f:
|
|
for x in file_1:
|
|
f.write(f"{x} ")
|
|
|
|
with open(name_2, 'w') as f:
|
|
for x in file_2:
|
|
f.write(f"{x} ")
|
|
|
|
return numbers
|
|
|
|
def func_2(file):
|
|
import statistics
|
|
import math
|
|
numbers = []
|
|
|
|
with open(file, 'r') as f:
|
|
for line in f:
|
|
parts = line.split()
|
|
for x in parts:
|
|
num = float(x)
|
|
numbers.append(num)
|
|
|
|
# Исправление деления на ноль
|
|
if len(numbers) <= 1:
|
|
if numbers:
|
|
x = numbers[0]
|
|
return x, x, x, x, 0.0
|
|
else:
|
|
return None
|
|
|
|
sred = sum(numbers) / len(numbers)
|
|
mediana = statistics.median(numbers)
|
|
minimum = min(numbers)
|
|
maximum = max(numbers)
|
|
|
|
sum_kvadratov = 0
|
|
for x in numbers:
|
|
kvadrat = (x - sred) * (x - sred)
|
|
sum_kvadratov += kvadrat
|
|
|
|
std = math.sqrt(sum_kvadratov / (len(numbers) - 1))
|
|
|
|
return sred, mediana, minimum, maximum, std
|