Я пытаюсь создать длинный калькулятор вычислений (делает длинное разделение, добавление и т. Д.), А в секции длинного разделения я пытаюсь получить номер разделите, но я не могу (как в numdiv)TypeError: строковые индексы должны быть числами, а не объектом (Python)
Ex: В 240/12 число, которое я пытаюсь найти, равно 24, тогда у меня будет еще один цикл, который добавит 12, чтобы найти 2 (as в 24/12 - 2).
Вот мой код:
##############
#number is bigger (or equal) to number 2
number = 19000
operation = '/'
number2 = 12
##############
import math
longer = len(str(number))
shorter = len(str(number2))
if operation == '/':
print str(number2) + '/' + str(number)
for i in range(longer - 1):
if int(str(number)[0, i]) >= number2:
numdiv = int(str(number)[0, i])
for i in range(1, math.trunc(numdiv/number2)):
if number2 * (i + 1) >= numdiv:
print (shorter + 1) * ' ' + number * i
Ошибка 5 строк с конца, где я сделал
if int(str(number)[0, i]) >= number2:
Он сказал
TypeError: string indices must be numbers, not object
НОВЫЙ
Я пытался
if str(number)[:i] >= number2:
numdiv = str(number)[:i]
for i in range(1, math.trunc(numdiv/number2)):
if number2 * (i + 1) >= numdiv:
print (shorter + 1) * ' ' + number * i
numdiv в данном случае пытается быть целым числом и делать это вызывает проблему:
ValueError: invalid literal for int() with base 10: ''
Как это исправить?
Первое, что я заметил, это использование '' '[0: i]' '' для представления диапазона индексов, а не [0, i]. Тем не менее, когда я реплицировал его, я понял, что это «не кортеж» вместо «not object» ... – limasxgoesto0
Вы не индексируете строку правильно. Я не уверен точно, что вы пытаетесь сделать, но форматирование индексации [start: stop: step], прямо сейчас он думает, что вы пытаетесь индексировать список, следовательно, ошибку. – user3014097
Этот [учебник] (http://pythoncentral.io/cutting-and-slicing-strings-in-python/) должен дать вам представление о том, как разрезать строки и что можно сделать с помощью фрагментов. –