PYTHON_JOB_INTERVIEW Telegram 1104
🐍 Задача с подвохом на Python. Что выведет данный код?
def update_dict(key, value, d={}):
d[key] = value
return d

dict1 = update_dict('a', 1)
dict2 = update_dict('b', 2, {})
dict3 = update_dict('c', 3)

print("dict1 =", dict1)
print("dict2 =", dict2)
print("dict3 =", dict3)

— Варианты ответа:

A.
dict1 = {'a': 1}  
dict2 = {'b': 2}
dict3 = {'c': 3}


B.
dict1 = {'a': 1, 'c': 3}  
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


C.
dict1 = {'a': 1}  
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


Какой из этих ответов правильный и почему?🧐

— Подсказка:
аргументы по умолчанию в Python вычисляются только один раз - при определении функции. Словарь, как и список, является изменяемым объектом.

В функции update_dict параметр d={} создается один раз и используется для всех вызовов, где не передается явно другой словарь.


— Правильный ответ: B

Объяснение:
1️⃣ dict1 = update_dict('a', 1) → используется словарь по умолчанию → {'a': 1}
2️⃣ dict2 = update_dict('b', 2, {}) → создан новый словарь → {'b': 2}
2️⃣ dict3 = update_dict('c', 3) → снова используется исходный словарь → {'a': 1, 'c': 3}
4️⃣ dict1 тоже изменится, так как это ссылка на тот же объект → {'a': 1, 'c': 3}

Итоговый вывод:
dict1 = {'a': 1, 'c': 3}
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


@python_job_interview
👍242



tgoop.com/python_job_interview/1104
Create:
Last Update:

🐍 Задача с подвохом на Python. Что выведет данный код?

def update_dict(key, value, d={}):
d[key] = value
return d

dict1 = update_dict('a', 1)
dict2 = update_dict('b', 2, {})
dict3 = update_dict('c', 3)

print("dict1 =", dict1)
print("dict2 =", dict2)
print("dict3 =", dict3)

— Варианты ответа:

A.
dict1 = {'a': 1}  
dict2 = {'b': 2}
dict3 = {'c': 3}


B.
dict1 = {'a': 1, 'c': 3}  
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


C.
dict1 = {'a': 1}  
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


Какой из этих ответов правильный и почему?🧐

— Подсказка:
аргументы по умолчанию в Python вычисляются только один раз - при определении функции. Словарь, как и список, является изменяемым объектом.

В функции update_dict параметр d={} создается один раз и используется для всех вызовов, где не передается явно другой словарь.


— Правильный ответ: B

Объяснение:
1️⃣ dict1 = update_dict('a', 1) → используется словарь по умолчанию → {'a': 1}
2️⃣ dict2 = update_dict('b', 2, {}) → создан новый словарь → {'b': 2}
2️⃣ dict3 = update_dict('c', 3) → снова используется исходный словарь → {'a': 1, 'c': 3}
4️⃣ dict1 тоже изменится, так как это ссылка на тот же объект → {'a': 1, 'c': 3}

Итоговый вывод:
dict1 = {'a': 1, 'c': 3}
dict2 = {'b': 2}
dict3 = {'a': 1, 'c': 3}


@python_job_interview

BY Python вопросы с собеседований


Share with your friend now:
tgoop.com/python_job_interview/1104

View MORE
Open in Telegram


Telegram News

Date: |

Administrators Among the requests, the Brazilian electoral Court wanted to know if they could obtain data on the origins of malicious content posted on the platform. According to the TSE, this would enable the authorities to track false content and identify the user responsible for publishing it in the first place. In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option. Step-by-step tutorial on desktop: Hui said the messages, which included urging the disruption of airport operations, were attempts to incite followers to make use of poisonous, corrosive or flammable substances to vandalize police vehicles, and also called on others to make weapons to harm police.
from us


Telegram Python вопросы с собеседований
FROM American