Я работаю над проектом и, чтобы сократить код, я определил функцию. Но он работает не так, как должен, когда я его назвал. Задача, которую я хочу выполнить в этом проекте, заключается в том, что, когда в списке букв есть буквы «a» и «b», код делает переменные «x» и «y» равными нулю. Для этого я сделал словарь, в котором алфавиты являются ключевыми, а переменные имеют нулевые значения. Теперь, когда «for» l oop находит буквы в ключах, он выполняет значения. Этот код отлично работает, когда я использую его просто. Но когда я скопировал весь этот код в пользовательскую функцию и вызвал ее, он не работал. Переменные остаются без изменений. Я хочу использовать этот код с функцией. Ниже приведен код, который не работает с функцией, и я хочу, чтобы мой код выглядел примерно так.
x = y = z = 10
letters = ['a', 'b']
def operator(lis):
dic = {'a': 'x=0', 'b': 'y=0', 'c': 'z=0'}
for key, value in dic.items():
if key in lis:
exec(value)
operator(letters)
print(x) # Output is 10
print(y) # Output is 10
А вот код, который работает без функции.
x = y = z = 10
letters = ['a', 'b']
dic = {'a': 'x=0', 'b': 'y=0', 'c': 'z=0'}
for key, value in dic.items():
if key in letters:
exec(value)
print(x) # Output is 0
print(y) # Output is 0
Я трачу много времени, чтобы исправить это. Пожалуйста, устраните эту проблему и укажите, почему она не работает.