Как сделать цикл для итерации вместе с внутренним циклом для итераций на массиве в Python? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь сделать программу, которую можно добавить, буквально считая.Но для этого у меня есть 2 for петли, которые должны работать вместе.например, если я введу 3 и 2, внешний цикл for повторяется до «3» в массиве, а затем другой цикл for повторяется в массиве до «2» таким образом, что внешний цикл должен (но не) итерируйте с ним, и позиция, в которой он находится, в конечном итоге распечатывается (что должно быть 5).Как мне этого добиться?потому что прямо сейчас внутренний цикл завершит свою итерацию и прервется.

arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
#print(arr[0])
a = str(input()) #first number
b = str(input()) #second number

for i in arr:
    if i == a:
        for j in arr:
            if j == b:
                print(i)
                break

эта программа выводит 3 для входа 3 и 2, но я хочу 5

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Вы можете использовать другую переменную для отслеживания счетчика, например:

arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]

a = str(input())  # first number
b = str(input())  # second number

counter = 0
for i in arr:
    if i == a:
        for j in arr:
            if j == b:
                print(counter)
                break
            counter += 1
    counter += 1

Мы можем написать программу, которая значительно упрощает подобное поведение:

a = int(input())  # first number
b = int(input())  # second number

counter = 0

for _ in range(a):
    counter += 1
for _ in range(b):
    counter += 1
print(counter)

и это имеет то преимущество, что мы не ограничены входами в arr.

0 голосов
/ 23 сентября 2019

Вот мое решение:

arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
num_list = list(range(int(arr[-1])*2+1))

new_dict = dict()
for index, value in enumerate(num_list):
    new_dict[value] = set()
    for item1 in arr:
        for item2 in arr:
            if int(value) == int(item1) + int(item2):
                new_dict[value].add((item1, item2))

a = str(input())  # first number
b = str(input())  # second number

target = (a, b)

for key, value in new_dict.items():
    if target in value:
        print(int(key))

Надеюсь, это поможет.Мне интересно, если вы можете достичь цели, не используя "+".Пожалуйста, поделитесь, если вы найдете это.Заранее спасибо!

...