Код диапазона Капрекара "ValueError: недопустимый литерал для int () с основанием 10: '' - PullRequest
0 голосов
/ 04 апреля 2020

Итак, я пытаюсь создать этот код Капрекара, который получает два числа, преобразует их в диапазон, и в конце он получает список чисел Капрекара из исходного диапазона. Число Капрекара - это число, которое при возведении в квадрат get разделяется на две части, а когда сложенные пополам цифры дополняют друг друга, оно равно исходному числу. Число в квадрате может заканчиваться нечетным числом цифр. Я просто новичок в python и мне интересно , как я могу исправить эту некорректную буквальную проблему , чтобы заставить код работать? Я почти уверен, что это связано с тем, что переменная "middle" должна быть плавающей точкой, так как иногда середина может заканчиваться на .5 в конце, и я читал кое-что о том, что если вы попытаетесь преобразовать float в int, int в конечном итоге будет числом до .5, поэтому я положил +1 во второй половине. Это весь код. Ошибка находится в секции second_half.

#Kaprekar
# User enters 2 numbers, and range of Kaprekar numbers are displayed between the range.
#Create 2 inputs for the numbers, and create an index that makes a range between them.

minimum = int(input("Enter a starting number from 1 to 5000: "))
maximum = int(input("Enter an ending number from 1 to 5000: "))
not_kaprekar = [10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 100000000]

num_range = list(range(minimum,maximum+1))

for original in num_range:

 original_sqrt = original**2

digits = (str(original_sqrt))

digits_length = len(digits)
#First you need to establish the amount of digits there will be from the squared number.
middle = digits_length / 2
for middle in num_range:
    first_half = int("".join(digits[0:int(middle)]))

    second_half = int("".join(digits[int(middle) + 1:-1]))

#in this part, you are getting the indexes of the squared number.

if (first_half) + (second_half) == original and (original not in not_kaprekar):
 kaprekar_list.append(original)

print(kaprekar_list)

помощь приветствуется,

...