Python вопросы с собеседований
25.8K subscribers
602 photos
46 videos
17 files
484 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Удобный контекстный менеджер для работы с файлами

Использование контекстного менеджера делает работу с файлами более безопасной и удобной. В этом примере мы создадим собственный контекстный менеджер для автоматического закрытия файла и обработки ошибок.


class ManagedFile:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None

def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file

def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()

with ManagedFile('example.txt', 'w') as f:
f.write('Hello, Custom Context!')
3😁3👍2🔥1
🐍 Хитрая ловушка в Python, на которую попадаются даже опытные


matrix = [[0] * 3] * 3

matrix[0][0] = 1
matrix[1].append(9)

print(matrix)
print(len(matrix))
print(len(matrix[0]))


Интуитивно кажется, что это создаёт независимые строки матрицы.
Но на самом деле Python копирует ссылки - все три строки указывают на один и тот же список.

🔍 Поэтому изменение matrix[0][0] или append() влияет сразу на все строки.

🧠 Вывод программы:

[[1, 0, 0, 9],
[1, 0, 0, 9],
[1, 0, 0, 9]]
3
4


✔️ Как правильно создавать матрицу с независимыми строками:

matrix = [[0] * 3 for _ in range(3)]


Теперь каждая строка - отдельный список, и изменения не “протекают” по всей матрице.
👍81