ответвлено от main/python-labs
171 строка
4.2 KiB
Markdown
171 строка
4.2 KiB
Markdown
\## Индивидуально контрольное задание по Теме 6
|
|
|
|
|
|
|
|
Володин Денис, А-02-23
|
|
|
|
|
|
|
|
|
|
|
|
\## Задание
|
|
|
|
|
|
|
|
M2\_9
|
|
|
|
|
|
|
|
1\) Создайте список с 40 элементами - случайными вещественными числами, равномерно распределенными на интервале от -10 до +25. Числа должны быть округлены до трех знаков после точки.
|
|
|
|
|
|
|
|
2\) Запросите у пользователя и введите два целых числа: N1 и N2 (оба в диапазоне от 1 до 40 и должно быть N1<N2). Проверьте выполнение этих условий и при невыполнении - сообщите об ошибке и повторите ввод.
|
|
|
|
|
|
|
|
3\) Рассчитайте по элементам списка, начиная с N1 и до N2 среднее значение и вывести его на экран по шаблону: "Для элементов с <N1> по <N2> среднее = <рассчитанное среднее значение>". Значение среднего округлите до двух знаков после точки.
|
|
|
|
|
|
|
|
4\) Выведите элементы списка с N1 и до N2 в текстовый файл с некоторым именем и с размещением по два элемента на строке с разделителем "," (запятая).
|
|
|
|
|
|
|
|
|
|
|
|
\## Решение
|
|
|
|
|
|
|
|
```py
|
|
|
|
>>> import random
|
|
|
|
>>> import statistics as s
|
|
|
|
|
|
|
|
\# задача 1
|
|
|
|
|
|
|
|
>>> ls = \[round(random.uniform(-10,25), 3) for i in range(40)]
|
|
|
|
>>> ls
|
|
|
|
\[5.593, 11.646, 21.831, 16.838, 7.196, -3.278, 13.094, 10.889, 3.748, -1.791, -8.37, 11.543, 6.465, 14.959, 19.224, 4.497, 18.171, 1.949, 18.913, 10.893, -5.047, 14.986, -0.171, 24.507, 12.176, -0.913, 12.096, -6.397, 2.606, 22.988, 2.624, 3.735, 22.156, -8.006, 2.271, -2.078, 15.368, 7.756, 3.344, 3.355]
|
|
|
|
|
|
|
|
\# задача 2
|
|
|
|
|
|
|
|
>>> while True:
|
|
|
|
print("Введите через пробел два целых числа от 1 до 40, так чтобы первое было меньше второго")
|
|
|
|
N1, N2 = map(int, input("Ввод: ").split())
|
|
|
|
if N1 > N2:
|
|
|
|
print("Первое должно быть меньше второго. Повторите попытку.")
|
|
|
|
elif N1<1:
|
|
|
|
print("Условия ввода не выполнены. Повотрите попытку")
|
|
|
|
elif N1>40:
|
|
|
|
print("Условия ввода не выполнены. Повотрите попытку")
|
|
|
|
elif N2<1:
|
|
|
|
print("Условия ввода не выполнены. Повотрите попытку")
|
|
|
|
elif N2>40:
|
|
|
|
print("Условия ввода не выполнены. Повотрите попытку")
|
|
|
|
else: break
|
|
|
|
|
|
|
|
|
|
|
|
Введите через пробел два целых числа от 1 до 40, так чтобы первое было меньше второго
|
|
|
|
Ввод: 40 15
|
|
|
|
Первое должно быть меньше второго. Повторите попытку.
|
|
|
|
Введите через пробел два целых числа от 1 до 40, так чтобы первое было меньше второго
|
|
|
|
Ввод: -2 50
|
|
|
|
Условия ввода не выполнены. Повотрите попытку
|
|
|
|
Введите через пробел два целых числа от 1 до 40, так чтобы первое было меньше второго
|
|
|
|
Ввод: 23 35
|
|
|
|
|
|
|
|
>>> N1; N2
|
|
|
|
23
|
|
|
|
35
|
|
|
|
|
|
|
|
\# задача 3
|
|
|
|
|
|
|
|
>>> m = s.mean(ls\[N1:N2+1])
|
|
|
|
>>> print("Для элементов с ", N1, "по", N2, "среднее = ", round(m, 2))
|
|
|
|
Для элементов с 23 по 35 среднее = 6.75
|
|
|
|
|
|
|
|
\# зачача 4
|
|
|
|
|
|
|
|
>>> import os
|
|
|
|
>>> os.chdir(r"C:\\Users\\denvo\\OneDrive\\Рабочий стол\\python-labs\\TEMA6")
|
|
|
|
>>> st=ls\[N1:N2+1]
|
|
|
|
>>> with open('test1.txt', 'w') as fp:
|
|
|
|
for i in range(len(st)//2+1):
|
|
|
|
fp.write(str(ls\[N1:N2+1]\[2\*i:2\*i+2]) + "\\n")
|
|
|
|
|
|
|
|
|
|
|
|
\[24.507, 12.176]
|
|
|
|
\[-0.913, 12.096]
|
|
|
|
\[-6.397, 2.606]
|
|
|
|
\[22.988, 2.624]
|
|
|
|
\[3.735, 22.156]
|
|
|
|
\[-8.006, 2.271]
|
|
|
|
\[-2.078]
|
|
|
|
```
|
|
|