Я привык писать код на с ++, но сейчас я пытаюсь выучить python. Я узнал о языке Python, и он очень популярен среди всех. Итак, я подумал, давайте попробуем.
В настоящее время я готовлюсь к интервью с компаниями и могу решить большинство из них на С ++. Наряду с этим я пытаюсь написать код для того же самого в Python. Для вещей, с которыми я не знаком, я делаю поиск в Google или смотрю учебные пособия и т.д. c.
Когда я писал код для своих ранее решенных простых вопросов для интервью в python, я столкнулся с проблемой .
Код : Учитывая массив целых чисел, вернуть индексы двух чисел так, чтобы они складывались до заданной c цели.
Можно предположить, что каждый вход будет иметь ровно одно решение, и вы не сможете использовать один и тот же элемент дважды.
Учитывая массив целых чисел, выведите индексы двух чисел так, чтобы они складывались до заданной цели c.
def twoNum(*arr, t):
cur = 0
x = 0
y = 0
for i in range (len(arr) - 1):
for j in range (len(arr) - 1):
if(i == j):
break
cur = arr[i] + arr[j]
if(t == cur):
x = arr[i]
y = arr[j]
break
if(t == cur):
break
print(f"{x} + {y} = {x+y} ")
arr = [3, 5, -4, 8, 11, 1, -1, 6]
target = 10
twoNum(arr, t=target)
Так вот в чем проблема: я определил x, y
в функции, а затем использовал x = arr[i]
и y = arr[j]
, и я печатаю эти значения.
output будет: 0 + 0 = 10 (где цель 10)
Это, наверное, потому, что я изначально использую x = 0
и y = 0
в функции и похоже x
и y
значения не обновляются, тогда я увидел наброски SE В VSCode я видел, что x
и y
объявляются дважды, один раз при запуске функции и второй за l oop.
Может кто-нибудь объяснить мне, что здесь происходит?
Для справки, вот изображение кода, который я написал на C ++
