Python tests
7.44K subscribers
498 photos
2 videos
45 links
Тесты и задания python разработчиков

По всем вопросам- @notxxx1

@ai_machinelearning_big_data - машинное обучение

@programming_books_it - бесплатные it книги

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot -ds книги
Download Telegram
Forwarded from Python/ django
🖥 Что выведет код ниже?


def append_to_list(val, my_list=[]):
my_list.append(val)
return my_list

print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))


🤯 Подвох
Многие думают, что каждый вызов append_to_list() создаёт новый список, и ожидают вывод:


[1]
[2]
[3]

Но на самом деле Python выведет:


[1]
[1, 2]
[1, 2, 3]

🧠 Почему так происходит?
В Python значения аргументов по умолчанию вычисляются один раз — при определении функции, а не при каждом вызове.

Значение my_list=[] создаётся один раз и сохраняется между вызовами. Это работает как статическая переменная внутри функции.

Как это исправить?
Используй None как значение по умолчанию:


def append_to_list(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list

print(append_to_list(1)) # [1]
print(append_to_list(2)) # [2]
print(append_to_list(3)) # [3]

💡 Вывод
Не используйте изменяемые объекты (например, list, dict, set) как значения по умолчанию для аргументов функций в Python.


@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код ?
Каким будет вывод этого кода в консоли?
Anonymous Quiz
7%
{1, 2}
40%
True
17%
False
29%
Это невозможная операция
7%
Посмотреть ответ
Что выведет код ?
Каким будет вывод этого кода?
Anonymous Quiz
4%
5 5 6
39%
5 6 7
43%
5 5 6 7 7 7
2%
5 6 7 7 7
12%
Посмотреть ответ
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 ЗАДАЧА С СОБЕСЕДОВАНИЯ: что выведет код?

Что выведет следующий код — и почему?


a = 256
b = 256
print(a is b)

x = 257
y = 257
print(x is y)


Ожидаешь True в обоих случаях? Не всё так просто.

📌 В Python целые числа от -5 до 256 кешируются.
То есть a и b указывают на один и тот же объект → a is b → True

Но x и y — это уже разные объекты, потому что 257 не кешируется → x is y → False

⚠️ is сравнивает объекты, а не значения.
Если хочешь сравнить значения — используй ==

💡 Вывод: даже базовые типы могут вести себя неожиданно, если сравнивать их через is.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python RU
Forwarded from Python RU
Каким будет вывод этого кода?
Anonymous Quiz
53%
[0]
32%
[1]
7%
[1, 0]
5%
[0, 1]
3%
Посмотреть ответ
👩‍💻 Что выведет этот код и почему?
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Что выведет этот код и почему?

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM