diff --git a/TEMA6/popul.txt b/TEMA6/popul.txt new file mode 100644 index 0000000..e69de29 diff --git a/TEMA6/report.md b/TEMA6/report.md index 22f8189..d1006db 100644 --- a/TEMA6/report.md +++ b/TEMA6/report.md @@ -56,7 +56,7 @@ stroka ``` >>>import sys >>>sys.stdout.write('Функция write') -Функция write13 +Функция write13 #в cmd, если print то не будет >>>sys.stdout.write('Функция write\n') Функция write 14 diff --git a/TEMA6/task.md b/TEMA6/task.md new file mode 100644 index 0000000..e83660d --- /dev/null +++ b/TEMA6/task.md @@ -0,0 +1,73 @@ +# Общее контрольное задание по теме 6 + +Анисенков Павел, А-01-23 + +## Задание + +Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции: + • Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк. + • Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников. + • Записывается кортеж в бинарный файл. + • Записывается в этот же файл список и закрывается файл. + • Открывается этот файл для чтения и считывает из него данные в 2 новых объекта. + • Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение. + • Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами. + +## Решение + +```py +>>>import random +>>>import os +>>>import pickle +>>>str_kor = tuple(str(random.randint(6, 56)) for _ in range(125)) +>>>str_kor +('27', '38', '7', '18', '35', '11', '41', '35', '20', '24', '43', '7', '48', '17', '26', '39', '35', '17', '54', '22', '31', '11', '8', '38', '7', '34', '22', '14', '36', '7', '15', '23', '48', '34', '31', '18', '39', '55', '18', '11', '32', '18', '51', '34', '41', '31', '8', '11', '28', '25', '42', '56', '10', '52', '6', '9', '15', '53', '36', '27', '48', '6', '53', '50', '51', '49', '11', '11', '16', '36', '39', '39', '18', '52', '14', '44', '13', '27', '26', '27', '23', '13', '36', '24', '34', '27', '21', '6', '37', '29', '53', '13', '54', '22', '26', '46', '36', '22', '48', '11', '24', '28', '9', '23', '36', '45', '6', '55', '9', '31', '22', '42', '50', '55', '46', '7', '55', '17', '54', '32', '39', '41', '14', '49', '22') + +>>>L_fam = ["Anisenkov1", "Anisenkov2", "Anisenkov3", "Anisenkov4", "Anisenkov5"] + +>>>os.chdir("C:\\Users\\Professional\\Desktop\\python-labs\\TEMA6") + +>>>f = open('bin.mnz', 'wb') +>>>pickle.dump(str_kor, f) +>>>pickle.dump(L_fam, f) +>>>f.close() + +>>>f = open('bin.mnz', 'rb') +>>>obj1 = pickle.load(f) +>>>obj2_spis = pickle.load(f) +>>>obj1 +('27', '38', '7', '18', '35', '11', '41', '35', '20', '24', '43', '7', '48', '17', '26', '39', '35', '17', '54', '22', '31', '11', '8', '38', '7', '34', '22', '14', '36', '7', '15', '23', '48', '34', '31', '18', '39', '55', '18', '11', '32', '18', '51', '34', '41', '31', '8', '11', '28', '25', '42', '56', '10', '52', '6', '9', '15', '53', '36', '27', '48', '6', '53', '50', '51', '49', '11', '11', '16', '36', '39', '39', '18', '52', '14', '44', '13', '27', '26', '27', '23', '13', '36', '24', '34', '27', '21', '6', '37', '29', '53', '13', '54', '22', '26', '46', '36', '22', '48', '11', '24', '28', '9', '23', '36', '45', '6', '55', '9', '31', '22', '42', '50', '55', '46', '7', '55', '17', '54', '32', '39', '41', '14', '49', '22') +>>>obj2_spis +['Anisenkov1', 'Anisenkov2', 'Anisenkov3', 'Anisenkov4', 'Anisenkov5'] +>>>if obj1 == str_kor: + print("обьекты кортежа совпадают") +else: print("обьекты кортежа не совпадают") + +обьекты кортежа совпадают + +>>>if obj2_spis == L_fam: + print("обьекты списка совпадают") +else: print("обьекты списка не совпадают") + +обьекты списка совпадают + +>>>List = [] +>>>for i in range(0, 125, 5): + List.append(list(str_kor[i:i + 5])) + + +>>>List +[['27', '38', '7', '18', '35'], ['11', '41', '35', '20', '24'], ['43', '7', '48', '17', '26'], ['39', '35', '17', '54', '22'], ['31', '11', '8', '38', '7'], ['34', '22', '14', '36', '7'], ['15', '23', '48', '34', '31'], ['18', '39', '55', '18', '11'], ['32', '18', '51', '34', '41'], ['31', '8', '11', '28', '25'], ['42', '56', '10', '52', '6'], ['9', '15', '53', '36', '27'], ['48', '6', '53', '50', '51'], ['49', '11', '11', '16', '36'], ['39', '39', '18', '52', '14'], ['44', '13', '27', '26', '27'], ['23', '13', '36', '24', '34'], ['27', '21', '6', '37', '29'], ['53', '13', '54', '22', '26'], ['46', '36', '22', '48', '11'], ['24', '28', '9', '23', '36'], ['45', '6', '55', '9', '31'], ['22', '42', '50', '55', '46'], ['7', '55', '17', '54', '32'], ['39', '41', '14', '49', '22']] + +>>>lists_dict = {} +>>>for i in range(25): + list_name = f"list{i + 1}" + code = f"{list_name} = List[{i}]" + exec(code) + +>>>print(list1) +>>>print(list2) + +['27', '38', '7', '18', '35'] +['11', '41', '35', '20', '24'] +``` diff --git a/TEMA6/test.md b/TEMA6/test.md index 258baf9..6193295 100644 --- a/TEMA6/test.md +++ b/TEMA6/test.md @@ -1,17 +1,20 @@ -# Общее контрольное задание по теме 6 +# Контрольное задание Модуль 2 Анисенков Павел, А-01-23 ## Задание -Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции: - • Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк. - • Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников. - • Записывается кортеж в бинарный файл. - • Записывается в этот же файл список и закрывается файл. - • Открывается этот файл для чтения и считывает из него данные в 2 новых объекта. - • Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение. - • Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами. +M2_8 +Создайте множество с 40 элементами - случайными числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки. + +Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки. + +Запишите множество в бинарный файл с указанным именем. + +Удалите из памяти созданное множество. + +Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки. + ## Решение @@ -19,54 +22,39 @@ >>>import random >>>import os >>>import pickle ->>>str_kor = tuple(str(random.randint(6, 56)) for _ in range(125)) ->>>str_kor -('27', '38', '7', '18', '35', '11', '41', '35', '20', '24', '43', '7', '48', '17', '26', '39', '35', '17', '54', '22', '31', '11', '8', '38', '7', '34', '22', '14', '36', '7', '15', '23', '48', '34', '31', '18', '39', '55', '18', '11', '32', '18', '51', '34', '41', '31', '8', '11', '28', '25', '42', '56', '10', '52', '6', '9', '15', '53', '36', '27', '48', '6', '53', '50', '51', '49', '11', '11', '16', '36', '39', '39', '18', '52', '14', '44', '13', '27', '26', '27', '23', '13', '36', '24', '34', '27', '21', '6', '37', '29', '53', '13', '54', '22', '26', '46', '36', '22', '48', '11', '24', '28', '9', '23', '36', '45', '6', '55', '9', '31', '22', '42', '50', '55', '46', '7', '55', '17', '54', '32', '39', '41', '14', '49', '22') - ->>>L_fam = ["Anisenkov1", "Anisenkov2", "Anisenkov3", "Anisenkov4", "Anisenkov5"] - >>>os.chdir("C:\\Users\\Professional\\Desktop\\python-labs\\TEMA6") ->>>f = open('bin.mnz', 'wb') ->>>pickle.dump(str_kor, f) ->>>pickle.dump(L_fam, f) ->>>f.close() - ->>>f = open('bin.mnz', 'rb') ->>>obj1 = pickle.load(f) ->>>obj2_spis = pickle.load(f) ->>>obj1 -('27', '38', '7', '18', '35', '11', '41', '35', '20', '24', '43', '7', '48', '17', '26', '39', '35', '17', '54', '22', '31', '11', '8', '38', '7', '34', '22', '14', '36', '7', '15', '23', '48', '34', '31', '18', '39', '55', '18', '11', '32', '18', '51', '34', '41', '31', '8', '11', '28', '25', '42', '56', '10', '52', '6', '9', '15', '53', '36', '27', '48', '6', '53', '50', '51', '49', '11', '11', '16', '36', '39', '39', '18', '52', '14', '44', '13', '27', '26', '27', '23', '13', '36', '24', '34', '27', '21', '6', '37', '29', '53', '13', '54', '22', '26', '46', '36', '22', '48', '11', '24', '28', '9', '23', '36', '45', '6', '55', '9', '31', '22', '42', '50', '55', '46', '7', '55', '17', '54', '32', '39', '41', '14', '49', '22') ->>>obj2_spis -['Anisenkov1', 'Anisenkov2', 'Anisenkov3', 'Anisenkov4', 'Anisenkov5'] ->>>if obj1 == str_kor: - print("обьекты кортежа совпадают") -else: print("обьекты кортежа не совпадают") - -обьекты кортежа совпадают - ->>>if obj2_spis == L_fam: - print("обьекты списка совпадают") -else: print("обьекты списка не совпадают") - -обьекты списка совпадают - ->>>List = [] ->>>for i in range(0, 125, 5): - List.append(list(str_kor[i:i + 5])) +>>>numbers = {round(random.uniform(-20, 10), 2) for _ in range(40)} +numbers +{-0.48, 1.68, 2.38, 3.86, 4.91, 5.83, 4.2, 7.17, 8.31, 9.92, 9.68, 9.15, 9.52, 0.27, -18.3, -17.27, -17.51, -3.5, -14.69, -0.15, -9.82, -6.91, -18.08, -18.46, -16.27, -15.08, -18.42, -17.19, -13.97, -11.2, -11.48, -9.35, -13.16, -7.77, -6.61, -12.69, -4.01, -3.17, -2.11, -1.49} + +file_name = input("Введите имя бинарного файла: ") +Введите имя бинарного файла: popul.txt +file_name = file_name.replace(" ", "") + +f=open('popul.txt', 'wb') +pickle.dump(numbers, f) +f.close() + +del numbers +numbers +Traceback (most recent call last): + File "", line 1, in + numbers +NameError: name 'numbers' is not defined. Did you forget to import 'numbers'? + +f=open('popul.txt', 'rb') +obj1 = pickle.load(f) +obj1 +{-0.48, 1.68, 2.38, 3.86, 4.91, 5.83, 4.2, 7.17, 8.31, 9.92, 9.68, 9.15, 9.52, 0.27, -6.61, -13.16, -0.15, -12.69, -9.35, -3.17, -7.77, -4.01, -18.3, -17.27, -17.51, -18.08, -14.69, -18.46, -16.27, -15.08, -18.42, -9.82, -17.19, -13.97, -6.91, -11.2, -11.48, -3.5, -2.11, -1.49} + +if obj1: + average = sum(obj1) / len(obj1) + average = round(average, 2) + print(f"По {len(obj1)} элементам среднее = {average}") +else: + print("Множество пустое") ->>>List -[['27', '38', '7', '18', '35'], ['11', '41', '35', '20', '24'], ['43', '7', '48', '17', '26'], ['39', '35', '17', '54', '22'], ['31', '11', '8', '38', '7'], ['34', '22', '14', '36', '7'], ['15', '23', '48', '34', '31'], ['18', '39', '55', '18', '11'], ['32', '18', '51', '34', '41'], ['31', '8', '11', '28', '25'], ['42', '56', '10', '52', '6'], ['9', '15', '53', '36', '27'], ['48', '6', '53', '50', '51'], ['49', '11', '11', '16', '36'], ['39', '39', '18', '52', '14'], ['44', '13', '27', '26', '27'], ['23', '13', '36', '24', '34'], ['27', '21', '6', '37', '29'], ['53', '13', '54', '22', '26'], ['46', '36', '22', '48', '11'], ['24', '28', '9', '23', '36'], ['45', '6', '55', '9', '31'], ['22', '42', '50', '55', '46'], ['7', '55', '17', '54', '32'], ['39', '41', '14', '49', '22']] - ->>>lists_dict = {} ->>>for i in range(25): - list_name = f"list{i + 1}" - lists_dict[list_name] = List[i] - ->>>print(list1) ->>>print(list2) - -['27', '38', '7', '18', '35'] -['11', '41', '35', '20', '24'] +По 40 элементам среднее = -5.31 ```