Помогите пожалуйста с задачами на пайтон
1. Поиск и замена слов списка в содержимом бинарного файла
2. Подсчет количества слов и чисел(по отдельности) в содержимом бинарного файла
3. Вывести слова спрятанные за ключами в словае в содержимом бинарном файле
4. Напишите информационную систему «Сотрудники». Программа должна обеспечивать ввод данных, редактирование данных сотрудника, удаление сотрудника, поиск сотрудника по фамилии, вывод информации обо всех сотрудниках, указанного возраста, или фамилия которых начинается на указанную букву. Организуйте возможность сохранения найденной информации в файл. Также весь список сотрудников сохраняется в файл (при выходе из программы — автоматически, в процессе исполнения программы — по команде пользователя). При старте программы происходит загрузка списка сотрудников из указанного пользователем файла
5. Создайте репозиторий в гитхабе, загрузите в него все ваши выполненные домашние задания,
в качестве результат пошлите ссылку на репозиторий с файлами домашних заданий
Ответы
Ответ:
1. Пример кода для поиска и замены слов:
```python
# Открываем бинарный файл в режиме "чтение и запись"
with open('file.bin', 'r+b') as file:
# Читаем полный текст из файла
text = file.read()
# Создаем список слов для замены
replace_words = ['word1', 'word2', 'word3']
# Проходимся по списку и заменяем каждое слово в тексте на новое
for word in replace_words:
text = text.replace(word.encode(), b'new_word')
# Перемещаем указатель в начало файла и записываем измененный текст
file.seek(0)
file.write(text)
```
2. Пример кода для подсчета количества слов и чисел в содержимом бинарного файла:
```python
# Открываем бинарный файл в режиме "чтение"
with open('file.bin', 'rb') as file:
# Читаем полный текст из файла
text = file.read()
# Создаем множество символов, которые могут встречаться в числах
digit_chars = set(b'0123456789.')
# Разбиваем текст на слова
words = text.split()
# Считаем количество слов и чисел
n_words = 0
n_numbers = 0
for word in words:
# Проверяем, является ли слово числом
is_number = True
for char in word:
if char not in digit_chars:
is_number = False
break
# Увеличиваем соответствующий счетчик
if is_number:
n_numbers += 1
else:
n_words += 1
# Выводим результаты
print('Количество слов:', n_words)
print('Количество чисел:', n_numbers)
```
3. Пример кода для поиска слов, спрятанных за ключами в содержимом бинарного файла:
```python
# Открываем бинарный файл в режиме "чтение"
with open('file.bin', 'rb') as file:
# Читаем полный текст из файла
text = file.read()
# Создаем множество символов, которые могут встречаться в ключах
key_chars = set(b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
# Разбиваем текст на слова
words = text.split()
# Проходимся по каждому слову
for word in words:
# Проверяем, начинается ли слово с ключа (только буквы)
if word.startswith(b'#'):
key = word[1:]
is_key = True
for char in key:
if char not in key_chars:
is_key = False
break
# Если ключ найден, выводим следующее слово
if is_key:
index = words.index(word)
if index < len(words) - 1:
print(words[index + 1])
```
4. Пример кода для информационной системы сотрудников:
```python
import pickle
class Employee:
def __init__(self, name, surname, age, position):
self.name = name
self.surname = surname
self.age = age
self.position = position
class EmployeeSystem:
def __init__(self, file_path):
self.file_path = file_path
self.employees = []
def load(self):
# Если файл существует, загружаем список сотрудников из него
try:
with open(self.file_path, 'rb') as file:
self.employees = pickle.load(file)
except:
pass
def save(self):
# Сохраняем список сотрудников
Объяснение: