Почему функция может использоваться в определенном диапазоне? - PullRequest
0 голосов
/ 25 апреля 2020

Некоторое время я изучал Python и разрабатывал функцию для составления списка Счастливых чисел Я сделал этот код:

def lucky(n):

    list = []
    rem1 = []
    rem2 = []

    # First verification

    for i in range(1,n+1,2):
        list.append(i)

    print (list)

    # Second verification

    for i in range(2,m,3):
        element = list[i]
        rem1.append(element)

    list = [x for x in list if x not in rem1]

    # Third verification

    n=(len(list))+1

    for i in range(6,n,7):
        element = list[i]
        rem2.append(element)

    list = [x for x in list if x not in rem2]

    return list

Мои проблемы начинаются при запуске значения больше 55. Почему Python может выводить код за пределы указанного после c номера вне допустимого диапазона и как его можно исправить?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Читая в математическом вебе , я нашел эту проблему.

Решается с помощью этого кода:

    def lucky(n):   
    # Lista inicial
    lista = list(range(1, n + 1, 2))
    # Variable inicial
    indice = 1
    # Ciclo de ejecución
    while indice <= len(lista) - 1 and lista[indice] <= len(lista):
        lista = [Li for i, Li in enumerate(lista) if (i + 1) % lista[indice]]
        indice += 1
    # Resultados
    return lista

Мой вопрос здесь о том, как строка 8 рабочих

0 голосов
/ 25 апреля 2020
  1. Слово "список" является зарезервированным словом в python, вы должны изменить имя на незарезервированное слово.
  2. У вас есть тип в строке 16: for i in range(2,m,3):, который «m» должно быть «n», не так ли?
  3. Диапазон, который вы используете в секунду для l oop, превышает длину объекта списка. Вам необходимо проверить длину с помощью оператора if.

    for i in range(2,n,3):
        if len(my_list) > i:
            element = my_list[i]
            rem1.append(element)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...