Почему моя логика кода Python3 не работает?Python

Программы на Python
Ответить
Anonymous
 Почему моя логика кода Python3 не работает?

Сообщение Anonymous »

Я пытаюсь создать программу, которая берет список, например [9,9,9] и добавляет к нему один, чтобы вернуть [1,0,0,0], поэтому она обрабатывает список как целое число поэтому [9,9,9] будет выглядеть как 999+1=1000, поэтому он возвращает [1,0,0,0], но мой код продолжает возвращать [9,10,0]
вот код( питон 3):

Код: Выделить всё

def plus_one(digits):
if digits==[9]:
digits=[1,0]
return digits
else:
if digits[-1]==9:
digits[-1]=0
digits[-2]=digits[-2]+1
while True:
if digits[0] > 9:
digits[0] = 1
digits.append(0)
return digits
else:
for digit in digits:
if digit>9:
digits[digits.index(digit) - 1] = digits[digits.index(digit)-1]+ 1
digits[digits.index(digit)] = 0

else:
return digits

print(plus_one([9,9,9]))
пожалуйста, я хочу понять, почему эта логика не работает, особенно для примера [9,9,9], прежде чем искать способы улучшения кода
мой код возвращает [9,10,0] вместо [1,0,0,0], но отлично работает для [9,9], то есть возвращает [1,0,0]

Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»