-
Notifications
You must be signed in to change notification settings - Fork 325
HomeWork_5 done #1784
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
base: master
Are you sure you want to change the base?
HomeWork_5 done #1784
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| 123 123 3456 | ||
| 123 wertyu tyuiuop | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,3 +2,13 @@ | |
| 2) Создать текстовый файл (не программно), сохранить в нем несколько строк, | ||
| выполнить подсчет количества строк, количества слов в каждой строке. | ||
| """ | ||
|
|
||
| with open('text_file_2.txt', encoding='utf-8') as my_f: | ||
| x = 0 | ||
| for line in my_f: | ||
| x += 1 | ||
| my_list = line.split(' ') | ||
| y = len(my_list) | ||
| print(f"{line} Количество слов в строке: {y}\n") | ||
| print(f"Количество строк: {x}") | ||
| my_f.close() | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| Хакер, юзер, программист — | ||
| За компьютером артист! | ||
| Выдает лихие вещи, | ||
| Не поймешь его, хоть тресни! | ||
| Он с программами на «ты» | ||
| От «каспера» до «винды». | ||
| Что с процессором случится — | ||
| Каждый в гости к нему мчится. | ||
| Он решит любой вопрос, | ||
| Гениальный мега-мозг! |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,7 +4,23 @@ | |
| Two — 2 | ||
| Three — 3 | ||
| Four — 4 | ||
| Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные. | ||
| Необходимо написать программу, открывающую файл на чтение и считывающую | ||
| построчно данные. | ||
| При этом английские числительные должны заменяться на русские. | ||
| Новый блок строк должен записываться в новый текстовый файл. | ||
| """ | ||
|
|
||
| with open('text_file_3.txt', 'r', encoding='utf-8') as my_f, \ | ||
| open('text_file_3_new.txt', 'w', encoding='utf-8') as my_f_new: | ||
| for line in my_f: | ||
| my_string = line.split(' ') | ||
| if my_string[0] == 'One': | ||
| my_string[0] = 'Один' | ||
| elif my_string[0] == 'Two': | ||
| my_string[0] = 'Два' | ||
| elif my_string[0] == 'Three': | ||
| my_string[0] = 'Три' | ||
| elif my_string[0] == 'Four': | ||
| my_string[0] = 'Четыре' | ||
| new_text = " ".join(my_string) | ||
| my_f_new.write(new_text) | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| 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 @@ | ||
| Один — 1 | ||
| Два — 2 | ||
| Три — 3 | ||
| Четыре — 4 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,25 @@ | ||
| """ | ||
| 3. Создать текстовый файл (не программно), построчно записать фамилии сотрудников | ||
| и величину их окладов (не менее 10 строк). Определить, кто из сотрудников имеет оклад менее 20 тыс., | ||
| вывести фамилии этих сотрудников. Выполнить подсчет средней величины дохода сотрудников. | ||
| 3. Создать текстовый файл (не программно), построчно записать фамилии | ||
| сотрудников и величину их окладов (не менее 10 строк). Определить, | ||
| кто из сотрудников имеет оклад менее 20 тыс.,вывести фамилии этих сотрудников. | ||
| Выполнить подсчет средней величины дохода сотрудников. | ||
| Пример файла: | ||
|
|
||
| Иванов 23543.12 | ||
| Петров 13749.32 | ||
| """ | ||
|
|
||
| with open('text_file_4.txt', 'r', encoding='utf-8') as my_f: | ||
| print(f"Оклад сотрудников меньше 20 тыс.: ") | ||
| sum_salary = 0 | ||
| n = 0 | ||
| for line in my_f: | ||
| my_string = line.split(' ') | ||
| y = my_string[1].rstrip() | ||
| x = float(y) | ||
| if x < 20000: | ||
| print(f"{my_string[0]}") | ||
| n += 1 | ||
| sum_salary = sum_salary + x | ||
| average_income = round(sum_salary / n, 2) | ||
| print(f"Средняя величина дохода этих сотрудников: {average_income}") | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| Иванов 23543.12 | ||
| Петров 13749.32 | ||
| Сидоров 24603.52 | ||
| Медведев 16538.46 | ||
| Патрушев 28310.88 | ||
| Виноградов 18091.21 | ||
| Денисов 22379.43 | ||
| Гусакова 16792.77 | ||
| Строева 25529.38 | ||
| Колосова 23204.11 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,19 @@ | ||
| """ | ||
| 5) Создать (программно) текстовый файл, записать в него программно набор чисел, | ||
| разделенных пробелами. Программа должна подсчитывать сумму чисел в файле и выводить ее на экран. | ||
| 5) Создать (программно) текстовый файл, записать в него программно набор | ||
| чисел, разделенных пробелами. Программа должна подсчитывать сумму чисел | ||
| в файле и выводить ее на экран. | ||
| """ | ||
|
|
||
| from random import randint | ||
|
|
||
| with open("text_file_5.txt", "w") as my_f1: | ||
| for i in range(10): | ||
| my_f1.write(str(randint(0, 10000))) | ||
| my_f1.write(" ") | ||
|
|
||
| total_sum = 0 | ||
| with open("text_file_5.txt", "r") as my_f2: | ||
| line = my_f2.readline() | ||
| for integer in line.split(): | ||
| total_sum += int(integer) | ||
| print(f"Сумма чисел в файле: {total_sum}") | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| 569 3858 4747 428 3333 5454 3815 7293 1219 8318 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,26 @@ | ||
| """ | ||
| 6) Необходимо создать (не программно) текстовый файл, где каждая строка описывает учебный предмет и наличие лекционных, практических и лабораторных занятий по этому предмету и их количество. Важно, чтобы для каждого предмета не обязательно были все типы занятий. Сформировать словарь, содержащий название предмета и общее количество занятий по нему. Вывести словарь на экран. | ||
| 6) Необходимо создать (не программно) текстовый файл, где каждая строка | ||
| описывает учебный предмет и наличие лекционных, практических и лабораторных | ||
| занятий по этому предмету и их количество. Важно, чтобы для каждого предмета | ||
| не обязательно были все типы занятий. Сформировать словарь, содержащий | ||
| название предмета и общее количество занятий по нему. Вывести словарь на | ||
| экран. | ||
| Примеры строк файла: Информатика: 100(л) 50(пр) 20(лаб). | ||
| Физика: 30(л) — 10(лаб) | ||
| Физкультура: — 30(пр) — | ||
| Физика: 30(л) — 10(лаб) | ||
| Физкультура: — 30(пр) — | ||
| Пример словаря: {“Информатика”: 170, “Физика”: 40, “Физкультура”: 30} | ||
| """ | ||
|
|
||
| result = {} | ||
| with open("text_file_6.txt", "r", encoding='utf-8') as my_f: | ||
| for line in my_f: | ||
| items = line.split(':')[0] | ||
| amount = line.split()[1:] | ||
| result[items] = 0 | ||
| amount_sum = 0 | ||
| for i in amount: | ||
| count = i.split('(')[0] | ||
| if count != '—': | ||
| amount_sum += int(count) | ||
| result[items] += amount_sum | ||
| print(result) | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| Информатика: 100(л) 50(пр) 20(лаб) | ||
| Физика: 30(л) — 10(лаб) | ||
| Физкультура: — 30(пр) — |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| [{"firm_1": 5000, "firm_2": 5000, "firm_3": 6000, "firm_4": 5000, "firm_5": 17000}, {"average_profit": 7600.0}] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,11 +1,39 @@ | ||
| """ | ||
| 7) Создать вручную и заполнить несколькими строками текстовый файл, в котором каждая строка должна содержать данные о фирме: название, форма собственности, выручка, издержки. | ||
| 7) Создать вручную и заполнить несколькими строками текстовый файл, | ||
| в котором каждая строка должна содержать данные о фирме: название, форма | ||
| собственности, выручка, издержки. | ||
| Пример строки файла: firm_1 ООО 10000 5000. | ||
| Необходимо построчно прочитать файл, вычислить прибыль каждой компании, а также среднюю прибыль. Если фирма получила убытки, в расчет средней прибыли ее не включать. | ||
| Далее реализовать список. Он должен содержать словарь с фирмами и их прибылями, а также словарь со средней прибылью. Если фирма получила убытки, также добавить ее в словарь (со значением убытков). | ||
| Пример списка: [{“firm_1”: 5000, “firm_2”: 3000, “firm_3”: 1000}, {“average_profit”: 2000}]. | ||
| Необходимо построчно прочитать файл, вычислить прибыль каждой компании, | ||
| а также среднюю прибыль. Если фирма получила убытки, в расчет средней прибыли | ||
| ее не включать. | ||
| Далее реализовать список. Он должен содержать словарь с фирмами и их прибылями, | ||
| а также словарь со средней прибылью. Если фирма получила убытки, также | ||
| добавить ее в словарь (со значением убытков). | ||
| Пример списка: | ||
| [{“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 | ||
|
|
||
| sum_of_profit = 0 | ||
| firms_dict = dict() | ||
| profit_counter = 0 | ||
| firms_list = list() | ||
| with open("text_file_7.txt", "r", encoding='utf-8') as my_f: | ||
| while True: | ||
| line = list(my_f.readline().split()) | ||
| if not line: | ||
| break | ||
| if int(line[2]) > int(line[3]): | ||
| sum_of_profit += int(line[2]) - int(line[3]) | ||
| profit_counter += 1 | ||
| firms_dict.update({line[0]: int(line[2]) - int(line[3])}) | ||
| firms_list.append(firms_dict) | ||
| firms_list.append(dict(average_profit=sum_of_profit / profit_counter)) | ||
| print(firms_list) | ||
| with open("file_7.json", "w", encoding='utf-8') as my_f: | ||
| json.dump(firms_list, my_f) | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. выполнено |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| firm_1 ООО 10000 5000 | ||
| firm_2 ОАО 11000 6000 | ||
| firm_3 ПАО 15000 9000 | ||
| firm_4 ИП 13000 8000 | ||
| firm_5 ЗАО 20000 3000 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено