diff --git a/Lesson_5/file_6.txt b/Lesson_5/file_6.txt new file mode 100644 index 0000000..a5f197f --- /dev/null +++ b/Lesson_5/file_6.txt @@ -0,0 +1,4 @@ +Informatics: 100(л) 50(пр) 20(лаб) +Physics: 30(л) - 10(лаб) +Physical: - 30(пр) - +Literature: 90(л) 50(пр) - \ No newline at end of file diff --git a/Lesson_5/file_7.json b/Lesson_5/file_7.json new file mode 100644 index 0000000..4fa072d --- /dev/null +++ b/Lesson_5/file_7.json @@ -0,0 +1 @@ +{"Firm_1": 5000, "Firm_2": 50000, "Firm_3": 5000, "Firm_4": -150000} \ No newline at end of file diff --git a/Lesson_5/file_7.txt b/Lesson_5/file_7.txt new file mode 100644 index 0000000..0d68710 --- /dev/null +++ b/Lesson_5/file_7.txt @@ -0,0 +1,4 @@ +Firm_1 АО 10000 5000 +Firm_2 ЗАО 200000 150000 +Firm_3 ООО 750000 745000 +Firm_4 ПАO 500000 650000 diff --git a/Lesson_5/task_1.py b/Lesson_5/task_1.py new file mode 100644 index 0000000..b8f1585 --- /dev/null +++ b/Lesson_5/task_1.py @@ -0,0 +1,10 @@ +# Создать программный файл в текстовом формате, +# записать в него построчно данные, вводимые пользователем. +# Об окончании ввода данных будет свидетельствовать пустая строка. + +with open('text.txt', 'w', encoding='utf-8') as f: + while True: + mstr = input('Please enter any text: ') + if not mstr: + break + print(mstr, file=f) diff --git a/Lesson_5/task_2.py b/Lesson_5/task_2.py new file mode 100644 index 0000000..842bd76 --- /dev/null +++ b/Lesson_5/task_2.py @@ -0,0 +1,15 @@ +# Создать текстовый файл (не программно), сохранить в нём несколько строк, +# выполнить подсчёт строк и слов в каждой строке. + +f = open('text.txt', 'r', encoding='utf-8') +print(f.read()) + +with open('text.txt', 'r', encoding='utf-8') as f: + lines = 0 + words = 0 + for line in f: + lines += line.count('\n') + words += len(line.split()) + print(f'{words} words in each line.') + print(f'{lines} lines in the text document.') + diff --git a/Lesson_5/task_3.py b/Lesson_5/task_3.py new file mode 100644 index 0000000..d2ee2cd --- /dev/null +++ b/Lesson_5/task_3.py @@ -0,0 +1,18 @@ +# Создать текстовый файл (не программно). Построчно записать фамилии +# сотрудников и величину их окладов (не менее 10 строк). +# Определить, кто из сотрудников имеет оклад менее 20 тысяч, +# вывести фамилии этих сотрудников. +# Выполнить подсчёт средней величины дохода сотрудников. +# Пример файла: Иванов 23543.12, Петров 13749.32. + +with open('text_3.txt', 'r') as f: + salary = [] + min_sal = [] + mlist = f.read().split('\n') + for i in mlist: + i = i.split() + if float(i[1]) < 20000: + min_sal.append(i[0]) + salary.append(i[1]) +print(f'The salary less than 20000 have: {min_sal}') +print(f'The average salary is: {sum(map(float, salary)) / len(salary)}') diff --git a/Lesson_5/task_4.py b/Lesson_5/task_4.py new file mode 100644 index 0000000..ab46ad5 --- /dev/null +++ b/Lesson_5/task_4.py @@ -0,0 +1,42 @@ +# Создать (не программно) текстовый файл со следующим содержимым: +# One — 1 +# Two — 2 +# Three — 3 +# Four — 4 +# Напишите программу, открывающую файл на чтение и считывающую +# построчно данные. При этом английские числительные должны +# заменяться на русские. Новый блок строк должен +# записываться в новый текстовый файл. + +# from googletrans import Translator +# +# with open('text_4.txt', 'r', encoding='utf-8') as f: +# if f.mode == 'r': +# content = f.read() +# print(content) +# +# translator = Translator() +# result = translator.translate(content, dest='ru') +# print(result.text) + +mdict = {'One': 'Один', 'Two': 'Два', 'Three': 'Три', 'Four': 'Четыре'} + +new_list = [] +with open('text_4.txt', 'r', encoding='utf-8') as f: + for i in f: + i = i.split(' ', 1) + new_list.append(mdict[i[0]] + ' ' + i[1]) + print(new_list) + +with open('text_4_1.txt', 'w') as f_new: + f_new.writelines(new_list) + +# mdict = {'One': 'Один', 'Two': 'Два', 'Three': 'Три', 'Four': 'Четыре'} +# +# new_list = [] +# with open('text_4.txt', 'r', encoding='utf-8') as f: +# with open('text_4_1.txt', 'w', encoding='utf-8') as f2: +# for line in f: +# el, *num = line.split() +# ru = mdict[el] +# f2.write(' '.join([ru] + num) + '\n') diff --git a/Lesson_5/task_5.py b/Lesson_5/task_5.py new file mode 100644 index 0000000..eed3baa --- /dev/null +++ b/Lesson_5/task_5.py @@ -0,0 +1,19 @@ +# Создать (программно) текстовый файл, +# записать в него программно набор чисел, +# разделённых пробелами. Программа должна подсчитывать +# сумму чисел в файле и выводить её на экран. + +def msum(): + try: + with open('file_5.txt', 'w') as f: + line = input('Please enter numbers via space: ') + f.writelines(line) + my_numb = line.split() + print(sum(map(int, my_numb))) + except IOError: + print('I/O Error') + except ValueError: + print('Incorrect value. I/O Error') + + +msum() diff --git a/Lesson_5/task_6.py b/Lesson_5/task_6.py new file mode 100644 index 0000000..771502f --- /dev/null +++ b/Lesson_5/task_6.py @@ -0,0 +1,36 @@ +# Сформировать (не программно) текстовый файл. +# В нём каждая строка должна описывать учебный предмет и +# наличие лекционных, практических и лабораторных занятий +# по предмету. Сюда должно входить и количество занятий. +# Необязательно, чтобы для каждого предмета были все типы занятий. +# Сформировать словарь, содержащий название предмета и +# общее количество занятий по нему. Вывести его на экран. +# Примеры строк файла: Информатика: 100(л) 50(пр) 20(лаб). +# Физика: 30(л) — 10(лаб) +# Физкультура: — 30(пр) — +# Пример словаря: {“Информатика”: 170, “Физика”: 40, “Физкультура”: 30} + +# d = dict() +# +# with open('file_6.txt', 'r', encoding='utf-8') as f: +# for line in f: +# name, rest = line.split(':') +# rest = rest.split() +# num = 0 +# for part in rest: +# if "-" in part: +# continue +# nums, type = part.split('(') +# num += int(nums) +# d[name] = num +# print(d) + +subj = {} +with open('file_6.txt', 'r', encoding='utf-8') as f: + lines = f.readlines() + # print(lines) +for line in lines: + data = line.replace('(', ' ').split() + # print(data) + subj[data[0][:-1]] = sum(int(i) for i in data if i.isdigit()) +print(subj) diff --git a/Lesson_5/task_7.py b/Lesson_5/task_7.py new file mode 100644 index 0000000..fcc6f96 --- /dev/null +++ b/Lesson_5/task_7.py @@ -0,0 +1,44 @@ +# Создать вручную и заполнить несколькими строками текстовый файл, +# в котором каждая строка будет содержать данные о фирме: название, +# форма собственности, выручка, издержки. +# Пример строки файла: firm_1 ООО 10000 5000. +# +# Необходимо построчно прочитать файл, вычислить прибыль каждой компании, +# а также среднюю прибыль. Если фирма получила убытки, в расчёт средней +# прибыли её не включать. +# Далее реализовать список. Он должен содержать словарь с фирмами и их +# прибылями, а также словарь со средней прибылью. Если фирма получила убытки, +# также добавить её в словарь (со значением убытков). +# Пример списка: [{“firm_1”: 5000, “firm_2”: 3000, “firm_3”: 1000}, {“average_profit”: 2000}]. +# +# Итоговый список сохранить в виде json-объекта в соответствующий файл. +# Пример json-объекта: +# [{"firm_1": 5000, "firm_2": 3000, "firm_3": 1000}, {"average_profit": 2000}] +# Подсказка: использовать менеджер контекста. + +import json + +result = dict() +aver_profit = 0 +i = 0 + +with open('file_7.txt', 'r', encoding='utf-8') as f: + for line in f: + name, type, income, expenses = line.split() + # print(line) + profit = int(income) - int(expenses) + if profit >= 0: + aver_profit += profit + i += 1 + result[name] = profit +aver_profit /= i +print(f'Results of the companies: \n' + f'{result}') +print(f'Average profit is: \n' + f'{aver_profit}') + +with open('file_7.json', 'w', encoding='utf-8') as f: + json.dump(result, f) +json_str = json.dumps(result) +print(f'The json file has been created with the following content: \n ' + f' {json_str}') diff --git a/Lesson_5/text.txt b/Lesson_5/text.txt new file mode 100644 index 0000000..528bb16 --- /dev/null +++ b/Lesson_5/text.txt @@ -0,0 +1,6 @@ +Какой-то текст написанный заранее и он не содержит никакой информации. +Какой-то текст написанный заранее и он не содержит никакой информации. +Какой-то текст написанный заранее и он не содержит никакой информации. +Какой-то текст написанный заранее и он не содержит никакой информации. +Какой-то текст написанный заранее и он не содержит никакой информации. +Какой-то текст написанный заранее и он не содержит никакой информации. diff --git a/Lesson_5/text_3.txt b/Lesson_5/text_3.txt new file mode 100644 index 0000000..568b5d9 --- /dev/null +++ b/Lesson_5/text_3.txt @@ -0,0 +1,12 @@ +Иванов 23543.12 +Петров 13749.32 +Сидоров 9845.23 +Быков 25343.12 +Румянцева 17449.32 +Сапожников 19800.23 +Усыч 28543.12 +Камнев 23749.32 +Алабина 18345.23 +Седов 22353.12 +Кириллов 13749.32 +Семенов 7845.23 \ No newline at end of file diff --git a/Lesson_5/text_4.txt b/Lesson_5/text_4.txt new file mode 100644 index 0000000..cd6742c --- /dev/null +++ b/Lesson_5/text_4.txt @@ -0,0 +1,4 @@ +one-1 +two-2 +three-3 +four-4 \ No newline at end of file diff --git a/Lesson_5/text_4_1.txt b/Lesson_5/text_4_1.txt new file mode 100644 index 0000000..e69de29