Skip to content
Merged
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
41 changes: 41 additions & 0 deletions L5T1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Урок 5. Практическое задание 1.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать программно файл в текстовом формате, записать в него построчно данные, вводимые
# пользователем. Об окончании ввода данных свидетельствует пустая строка.
from os import path


print('Программа создания файла и записи информации в него')
exit_flag = False
choice = '1'
while not exit_flag:
file_name = input('Введите имя файла: ')
if path.exists(file_name):
print('Такой файл уже существует. Выберите дальнейшее действие.')
while True:
choice = input('1 - для ввода нового имени, 2 - обнулить текущий файл, 3 - добавить в конец файла: ')
if choice == '1':
break
elif choice == '2':
file_name = open(file_name, 'w', encoding='UTF-8')
exit_flag = True
break
elif choice == '3':
file_name = open(file_name, 'a', encoding='UTF-8')
exit_flag = True
break
else:
print('Некорректный ввод. Повторите выбор.')
else:
file_name = open(file_name, 'w', encoding='UTF-8')
exit_flag = True
while True:
input_str = input('Введите строку для записи в файл или нажмите Enter для выхода.\n')
if input_str != '':
file_name.write(input_str + '\n')
else:
break
file_name.close()
21 changes: 21 additions & 0 deletions L5T2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Урок 5. Практическое задание 2.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать текстовый файл (не программно), сохранить в нем несколько строк, выполнить подсчет
# количества строк, количества слов в каждой строке.

def words_count(string):
string = string.split()
return len(string)


str_num = 0
total_words = 0
with open('text_3.txt', 'r', encoding='UTF-8') as f_name:
for content in f_name:
str_num += 1
print(f'{str_num}я строка содержит {words_count(content)} слов')
total_words += words_count(content)
print(f'Всего в файле {str_num} строк и {total_words} слов.')
23 changes: 23 additions & 0 deletions L5T3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Урок 5. Практическое задание 3.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать текстовый файл (не программно), построчно записать фамилии сотрудников и величину их
# окладов (не менее 10 строк). Определить, кто из сотрудников имеет оклад менее 20 тыс., вывести
# фамилии этих сотрудников. Выполнить подсчет средней величины дохода сотрудников.
# Пример файла:
# Иванов 23543.12
# Петров 13749.32

print('Список сотрудников с зарплатой меньше 20 000 руб:')
total_salary = 0
emploees = 0
with open('text_3.txt', 'r', encoding='utf-8') as f_name:
for content in f_name:
content = content.split()
if float(content[1]) < 20000:
print(content[0])
emploees += 1
total_salary += float(content[1])
print(f'В организации работает {emploees} сотрудников со средним доходом {total_salary / emploees:.2f}')
38 changes: 38 additions & 0 deletions L5T4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Урок 5. Практическое задание 4.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать (не программно) текстовый файл со следующим содержимым:
# One — 1
# Two — 2
# Three — 3
# Four — 4
# Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные. При
# этом английские числительные должны заменяться на русские. Новый блок строк должен записываться
# в новый текстовый файл.

from googletrans import Translator


# using dict ------------------------------
dictionary = {'One': 'Один', 'Two': 'Два', 'Three': 'Три', 'Four': 'Четыре'}
ru_file = open('text_4_ru.txt', 'w', encoding='utf-8')
with open('text_4.txt', 'r', encoding='utf-8') as eng_f:
for orig_str in eng_f:
orig_str = orig_str.split()
new_str = f'{dictionary[orig_str[0]]} - {orig_str[-1]}'
print(new_str, file=ru_file)
ru_file.close()

# using Google Translator ---------------------------

translator = Translator()
ru_file_online = open('text_4_ru_online.txt', 'w', encoding='utf-8')
with open('text_4.txt', 'r', encoding='utf-8') as eng_f:
for orig_str in eng_f:
orig_str = orig_str.split()
translated = translator.translate(orig_str[0], src='en', dest='ru')
new_str = f'{translated.text.capitalize()} - {orig_str[-1]}'
print(new_str, file=ru_file_online)
ru_file.close()
41 changes: 41 additions & 0 deletions L5T5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Урок 5. Практическое задание 5.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать (программно) текстовый файл, записать в него программно набор чисел, разделенных
# пробелами. Программа должна подсчитывать сумму чисел в файле и выводить ее на экран.

import random


def input_digit():
"""Функция по вводу только чисел"""
while True:
try:
num1 = int(input('Введите количество чисел, которое будет содержать файл: '))
return num1
except ValueError:
print('Надо вводить числа! Давайте еще раз.')


def create_f(count, name_f):
numb_list = [random.randint(-10, 10) for _ in range(count)]
numb_str = ' '.join(map(str, numb_list))
with open(name_f, 'w', encoding='utf-8') as f:
print(numb_str, file=f)


def amount_f(name_f):
with open(name_f, 'r', encoding='utf-8') as f:
numbs = f.read()
numbs = list(map(int, numbs.split()))
total = 0
for el in numbs:
total += el
print(f'Сумма чисел в файле {name_f} равна {total}')


file_name = input('Введите имя файла: ')
create_f(input_digit(), file_name)
amount_f(file_name)
29 changes: 29 additions & 0 deletions L5T6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Урок 5. Практическое задание 6.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Необходимо создать (не программно) текстовый файл, где каждая строка описывает учебный предмет
# и наличие лекционных, практических и лабораторных занятий по этому предмету и их количество.
# Важно, чтобы для каждого предмета не обязательно были все типы занятий. Сформировать словарь,
# содержащий название предмета и общее количество занятий по нему. Вывести словарь на экран.
# Примеры строк файла: Информатика: 100(л) 50(пр) 20(лаб).
# Физика: 30(л) — 10(лаб)
# Физкультура: — 30(пр) —
# Пример словаря: {“Информатика”: 170, “Физика”: 40, “Физкультура”: 30}

def exclude_parenthesis(str_les):
return int(str_les[:str_les.index('(')])


result_dict = {}
with open('text_6.txt', 'r', encoding='utf-8') as f:
content_list = f.readlines()
for el in content_list:
el = el.split()
hours = 0
for el_1 in el[1:]:
if '(' in el_1:
hours += exclude_parenthesis(el_1)
result_dict.update({el[0][:-1]: hours})
print(result_dict)
36 changes: 36 additions & 0 deletions L5T7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Урок 5. Практическое задание 7.
# ФИО: Артур Назарян
# Курс: Основы языка Python
# Факультет: Geek University Python-разработки
#
# Создать вручную и заполнить несколькими строками текстовый файл, в котором каждая строка должна
# содержать данные о фирме: название, форма собственности, выручка, издержки.
# Пример строки файла: 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


with open('text_7.txt', 'r', encoding='utf-8') as f:
i = 0
firms_profit = []
firms_dict = {}
total_profit = 0
for el in f:
el = el.split()
firms_profit.append(int(el[2]) - int(el[3]))
firms_dict.update({el[0]: firms_profit[-1]})
if firms_profit[-1] > 0:
total_profit += firms_profit[-1]
i += 1
final_list = [firms_dict, {'average_profit': total_profit / i}]
with open('my_file.json', 'w', encoding='utf-8') as f:
json.dump(final_list, f, indent=4, ensure_ascii=False)
14 changes: 14 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
certifi==2020.6.20
chardet==3.0.4
googletrans==3.0.0
h11==0.9.0
h2==3.2.0
hpack==3.0.0
hstspreload==2020.8.8
httpcore==0.9.1
httpx==0.13.3
hyperframe==5.2.0
idna==2.10
Pillow==7.1.2
rfc3986==1.4.0
sniffio==1.1.0