PYTHON_TESTIT Telegram 1183
🐍 Python-задача: что выведет этот код и почему?


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

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


🔍 Варианты:
• a) [1], [2], [3]
• b) [1], [1, 2], [1, 2, 3]
• c) Ошибка исполнения
• d) [1], [2], [3] — но в разных объектах

💡 Разбор:

Аргумент my_list=[]изменяемый объект, созданный один раз при компиляции функции, а не каждый раз при вызове. Поэтому:

- Первый вызов:
my_list = [] → добавили 1[1]
- Второй вызов: та же
my_list, теперь [1] → добавили 2[1, 2]
- Третий: тот же список →
[1, 2, 3]

Правильный ответ: b) `[1]`, `[1, 2]`, `[1, 2, 3]`

🧠 Вывод: никогда не используй изменяемые значения (`list`,
dict, `set`) в аргументах по умолчанию. Это одна из самых частых ловушек в Python.

🛠️ Правильный способ:



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


📌 Теперь каждый вызов будет работать с новым списком.



tgoop.com/python_testit/1183
Create:
Last Update:

🐍 Python-задача: что выведет этот код и почему?


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

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


🔍 Варианты:
• a) [1], [2], [3]
• b) [1], [1, 2], [1, 2, 3]
• c) Ошибка исполнения
• d) [1], [2], [3] — но в разных объектах

💡 Разбор:

Аргумент my_list=[]изменяемый объект, созданный один раз при компиляции функции, а не каждый раз при вызове. Поэтому:

- Первый вызов:
my_list = [] → добавили 1[1]
- Второй вызов: та же
my_list, теперь [1] → добавили 2[1, 2]
- Третий: тот же список →
[1, 2, 3]

Правильный ответ: b) `[1]`, `[1, 2]`, `[1, 2, 3]`

🧠 Вывод: никогда не используй изменяемые значения (`list`,
dict, `set`) в аргументах по умолчанию. Это одна из самых частых ловушек в Python.

🛠️ Правильный способ:



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


📌 Теперь каждый вызов будет работать с новым списком.

BY Python tests


Share with your friend now:
tgoop.com/python_testit/1183

View MORE
Open in Telegram


Telegram News

Date: |

To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. Concise Administrators “Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group.
from us


Telegram Python tests
FROM American