Python — Пытается найти почтовый индекс в пределах цифр числа PI (диапазон 100 000)

#python #arrays #size #limit #pi

#python #массивы #размер #ограничение #Число pi

Вопрос:

Пользователь вводит почтовый индекс, затем программа ищет в массиве последовательность цифр. Более ранние цифры найдены, но более высокие цифры (около 50 тысяч элементов в) не найдены в массиве, но они должны быть там.

 def make_pi():
    q, r, t, k, m, x = 1, 0, 1, 1, 3, 3
    for j in range(100000):
        if 4 * q   r - t < m * t:
            yield m
            q, r, t, k, m, x = 10*q, 10*(r-m*t), t, k, (10*(3*q r))//t - 10*m, x
        else:
            q, r, t, k, m, x = q*k, (2*q r)*x, t*x, k 1, (q*(7*k 2) r*x)//(t*x), x 2


my_array = []

for i in make_pi():
    my_array.append(str(i))

num = input("Enter 5 digit ZIP Code: ")

while (1):
    try:
        val = int(num)
    except ValueError:
        print("Entered value is not an integer")
        num = input("Enter 5 digit ZIP code: ")
        continue

    if (len(num)!=5):
        print("ZIP code must be 5 digits!")
        num = input("Enter 5 digit ZIP Code: ")
    else:
        break

flag = 0

for i in range(len(my_array) - 5):

    if (int(my_array[i]) == int(num[0])):

        if (int(my_array[i   1]) == int(num[1])):

            if (int(my_array[i 2]) == int(num[2])):

              if(int(my_array[i   3]) == int(num[3])):

                if (int(my_array[i 4]) == int(num[4])):
                    print("ZIP match found at digit #", i   1)
                    flag = 1

if (flag == 0):
    print("ZIp match not found")
  

Комментарии:

1. можете ли вы привести пример и для какого ввода он работает и не работает

2. Ваш массив не выдает значение для каждой итерации цикла. Когда я запускаю это, my_array имеет длину всего 23126 элементов, поэтому неясно, что вы имеете в виду под 50k or so elements