Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Lesson_5/file_6.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Informatics: 100(л) 50(пр) 20(лаб)
Physics: 30(л) - 10(лаб)
Physical: - 30(пр) -
Literature: 90(л) 50(пр) -
1 change: 1 addition & 0 deletions Lesson_5/file_7.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"Firm_1": 5000, "Firm_2": 50000, "Firm_3": 5000, "Firm_4": -150000}
4 changes: 4 additions & 0 deletions Lesson_5/file_7.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Firm_1 АО 10000 5000
Firm_2 ЗАО 200000 150000
Firm_3 ООО 750000 745000
Firm_4 ПАO 500000 650000
10 changes: 10 additions & 0 deletions Lesson_5/task_1.py
Original file line number Diff line number Diff line change
@@ -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)
15 changes: 15 additions & 0 deletions Lesson_5/task_2.py
Original file line number Diff line number Diff line change
@@ -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.')

18 changes: 18 additions & 0 deletions Lesson_5/task_3.py
Original file line number Diff line number Diff line change
@@ -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)}')
42 changes: 42 additions & 0 deletions Lesson_5/task_4.py
Original file line number Diff line number Diff line change
@@ -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')
19 changes: 19 additions & 0 deletions Lesson_5/task_5.py
Original file line number Diff line number Diff line change
@@ -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()
36 changes: 36 additions & 0 deletions Lesson_5/task_6.py
Original file line number Diff line number Diff line change
@@ -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)
44 changes: 44 additions & 0 deletions Lesson_5/task_7.py
Original file line number Diff line number Diff line change
@@ -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}')
6 changes: 6 additions & 0 deletions Lesson_5/text.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Какой-то текст написанный заранее и он не содержит никакой информации.
Какой-то текст написанный заранее и он не содержит никакой информации.
Какой-то текст написанный заранее и он не содержит никакой информации.
Какой-то текст написанный заранее и он не содержит никакой информации.
Какой-то текст написанный заранее и он не содержит никакой информации.
Какой-то текст написанный заранее и он не содержит никакой информации.
12 changes: 12 additions & 0 deletions Lesson_5/text_3.txt
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions Lesson_5/text_4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
one-1
two-2
three-3
four-4
Empty file added Lesson_5/text_4_1.txt
Empty file.