Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lesson_5 #1815

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,19 @@
записать в него построчно данные, вводимые пользователем.
Об окончании ввода данных свидетельствует пустая строка.
"""


def string(text_input):
str2 = str(text_input)
total = ""
while str2 != "":
total = f'{total}{str2}\n'
str2 = input()
my_file = open("task1_leeson5.txt", "a")
my_file.write(total)
my_file.close()
return total

print(string(input()))


Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
� ���������
��� ������.
������� ���� �� ���� ���.
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,23 @@
2) Создать текстовый файл (не программно), сохранить в нем несколько строк,
выполнить подсчет количества строк, количества слов в каждой строке.
"""
my_f = open("task2_lesson5.txt", "r")
print(my_f.read())

my_f = open("task2_lesson5.txt", "r")
lines = 0
words = 0
numb = 1

for line in my_f:
print(f'{numb}-я строка содержит слов - {len(line.split())}')
words += len(line.split())
lines += 1
numb += 1

print(f"Количество строк в файле - {lines}")
print(f"Общее количество слов в файле - {words}")

my_f.close()


Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
��� 20000
����� 10000
���� 30000
���� 25000
���� 15000
���� 18000
������� 19000
����� 40000
������� 50000
���� 30000
����� 17000
��� 21000
����� 5000
���� 19000
���� 1700
Original file line number Diff line number Diff line change
@@ -1,10 +1,31 @@
"""
4) Создать (не программно) текстовый файл со следующим содержимым:
One — 1
Two — 2
Three — 3
Four — 4
Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные.
При этом английские числительные должны заменяться на русские.
Новый блок строк должен записываться в новый текстовый файл.
3. Создать текстовый файл (не программно), построчно записать фамилии сотрудников
и величину их окладов (не менее 10 строк). Определить, кто из сотрудников имеет оклад менее 20 тыс.,
вывести фамилии этих сотрудников. Выполнить подсчет средней величины дохода сотрудников.
Пример файла:

Иванов 23543.12
Петров 13749.32
"""

bill_list = open("Task3_lesson5.txt", "r")# открываем файл
my_text = bill_list.read().split()# создаём cписок, который содержит текст из файла
list1 = my_text[::2]# создаём 1-й список, где содержатся именна
list2 = my_text[1::2]# создаём 2-й список, где содержатся зарплата сотрудников
my_dict = dict(zip(list1, list2))# создаём из двух списков словарь, где имя это ключ, а зарплата - значение
total_incom = 0 # общий доход будет сумироваться в цикле for
num_of_staff = 0 # число сотрудников будет сумироваться в цикле for.

# далее получаем список сотрудникрв у кого зарпалта менее 20000, а также получаем общий доход всех сотрудников
print("Сотрудники с зарплатой менее 20000:")
for key, value in my_dict.items():
if int(value) < 20000:
print(key, value)
num_of_staff += 1
total_incom += int(value)
med_incom = total_incom / num_of_staff
print()
print("Средний доход имеющихся сотрудников составляет -", round(med_incom, 3))



Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
One - 1
Two - 2
Three - 3
Four - 4
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
One - 1
Two - 2
Three - 3
Four - 4
Original file line number Diff line number Diff line change
@@ -1,9 +1,34 @@
"""
3. Создать текстовый файл (не программно), построчно записать фамилии сотрудников
и величину их окладов (не менее 10 строк). Определить, кто из сотрудников имеет оклад менее 20 тыс.,
вывести фамилии этих сотрудников. Выполнить подсчет средней величины дохода сотрудников.
Пример файла:

Иванов 23543.12
Петров 13749.32
4) Создать (не программно) текстовый файл со следующим содержимым:
One — 1
Two — 2
Three — 3
Four — 4
Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные.
При этом английские числительные должны заменяться на русские.
Новый блок строк должен записываться в новый текстовый файл.
"""


from translate import Translator
translator = Translator(from_lang="en",to_lang="ru")

my_f = open("task4_lesson5.txt", "r") #открываем 1-й файл

content_en = my_f.read() #из 1-го файла переносим текст в переменную content_en
content_ru = translator.translate(content_en) #переводим content_en на русский язык и вставляем текст в content_ru
my_f2 = open("task4_lesson5_2.txt", "w")#открываем пустой 2-ой файл
my_f2.write(content_ru) #записываем в файл текст из content.ru

my_f.close()
my_f2.close()






print(content)



Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0 10 11 200
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,14 @@
5) Создать (программно) текстовый файл, записать в него программно набор чисел,
разделенных пробелами. Программа должна подсчитывать сумму чисел в файле и выводить ее на экран.
"""
my_f = open("task5_lesson5.txt", "w") #открываем файл на запись
my_f.write(input("введите числа через пробел:")) #записываем в файл данные
my_f = open("task5_lesson5.txt", "r") #открываем файл на чтение
content = my_f.read() #в переменную content помещаем данные из файла task5_lesson5.txt
content_2 = content.split() #преобразовываем строку с писок и помещаем данный список в переменную content_2
sum_cont2 = 0 #данная переменная будет меняться в следующем цикле
for el in content_2: #считаем сумму всех чесел, которые есть в файле task5_lesson5.txt
sum_cont2 += int(el)
my_f.close()

print(sum_cont2)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
�����������: 200(�) 50(��)
�����������: 100(��)
���������: 50(�) 50(��)
�����: 100(�) 50(��) 50(���)
������: 100(�) 50(��) 50(���)
�����������: 50(�) 25(��) 25(���)
����������: 100(�) 50(��)
����-��: 200(�) 100(��)
��������: 50(�) 50(��) 10(���)
����: 100(��)
Original file line number Diff line number Diff line change
@@ -1,7 +1,42 @@
"""
6) Необходимо создать (не программно) текстовый файл, где каждая строка описывает учебный предмет и наличие лекционных, практических и лабораторных занятий по этому предмету и их количество. Важно, чтобы для каждого предмета не обязательно были все типы занятий. Сформировать словарь, содержащий название предмета и общее количество занятий по нему. Вывести словарь на экран.
6) Необходимо создать (не программно) текстовый файл, где каждая строка описывает учебный предмет
и наличие лекционных, практических и лабораторных занятий по этому предмету и их количество.
Важно, чтобы для каждого предмета не обязательно были все типы занятий.
Сформировать словарь, содержащий название предмета и общее количество занятий по нему.
Вывести словарь на экран.
Примеры строк файла: Информатика: 100(л) 50(пр) 20(лаб).
Физика: 30(л) — 10(лаб)
Физкультура: — 30(пр) —
Пример словаря: {“Информатика”: 170, “Физика”: 40, “Физкультура”: 30}
"""

my_f = open('task6_lesson5.txt', "r") #открываем текстовый файл
content = my_f.readlines() #извлекаем из текстового файл полный список строк
my_dict2 = {} #данная переменная будет обновляться в следующем цикле
for el in content: #в данном цикле мы создаём из строки словарь, где название предмета ключ, а сумма чисел в строке -значение
a = el.replace('(л)', '').replace('(пр)', '').replace('(лаб)', '').replace("\n", "").replace(":", "")#убираем из очередной строки указанные символы
b = a.split()#создаем из строки список b
c = a.split()#создаем из строки список c
del b[1:]#из списка "b" убираем все элементы кроме 1-го и оставляем только название предмета
c.pop(0)#из списка "c" убираем первый элемент и оставляем только числа
el2 = 0 # данная переменная будет обновляться в следующем цикле
for el in c:#в данном цикле сумируем числа в строке
el2 += int(el)
for el in b:#в данном цикле списко "b" переводим в строку
b = el
my_dict = {b: el2} #создаём словарь, где название предмета - ключ, а cумма чисел - значение
my_dict2.update(my_dict) #объединяем все сгенениророванные словари в один

print(my_dict2)#выводим результат
my_f.close











Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"Nike": 60000, "SONY": 65000, "FILLA": 40000, "TURIST": 40000, "KOFFETEA": 45000, "TUKTUKTUK": 75000}, {"average profit": 54166}, {"losses": -30000}]
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Nike ��� 90000 30000
SONY ��� 80000 15000
FILLA ��� 70000 30000
TURIST ��� 60000 20000
SHAURMA-HOUS ��� 50000 60000
KOFFETEA 70000 ��� 25000
TUKTUKTUK 85000 ��� 10000
TIKTOK 50000 ��� 70000
SSS 10000 ��� 10000
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,40 @@
[{"firm_1": 5000, "firm_2": 3000, "firm_3": 1000}, {"average_profit": 2000}]
Подсказка: использовать менеджер контекста.
"""


import json

my_f = open("task7_lesson5.txt", "r")
content = my_f.readlines() #извлекаем из текстового файл полный список строк
profit = {} #данная переменная будет обновляться в следующем цикле
av_profit = {}
lines = 0
lines2 = 0
divider = 0 #это счётчик цикла for. По нему мы узнаем средню прибыль
for el in content: #в данном цикле мы создаём из строки словарь, где название предмета ключ, а сумма чисел в строке -значение
a = el.replace('ООО', '').replace('ОАО', '').replace('ЗАО', '').replace("\n", "")#убираем из очередной строки указанные символы
b = a.split()#создаем из строки список b
c = a.split()#создаем из строки список c
del b[1:]#из списка "b" убираем все элементы кроме 1-го и оставляем только название фирмы
del c[0:1]#из списка "c" убираем лишние элементы и оставляем только числа
line = 0 # данная переменная будет обновляться в следующем цикле
for i in range(len(c)): # в данном цике считаем прибыль в каждой строке
if i == 0:
line = int(c[i]) - int(c[1])
if line > 0: #выполняем данное условие, если нет убытка.
lines += line
for el in b: #в данном цикле списко "b" переводим в строку
b = el
my_dict = {b: line} #создаём словарь, где название фирмы - ключ, а cумма прибыли - значение
divider += 1 #счётчик увеличивается на 1 при условии, если фирма прибыльная
else: # Убытки склыдваем в переменную lines2
lines2 += line
profit.update(my_dict) #объединяем все прибыльные фирмы в один словарь
loss = {"losses": lines2} #создаём словарь с суммой убытков
av_profit = {"average profit": lines // divider}
print([profit, av_profit, loss])
data = [profit, av_profit, loss]
with open("my_json.json", "w") as write_f:
json.dump(data, write_f)
my_f.close()