Найти - Пользователи
Полная версия: Как можно исправить код, чтобы он работал всегда?
Начало » Центр помощи » Как можно исправить код, чтобы он работал всегда?
1
SpyBorgFly
 def expanded_form(num):
    num = str(num)
    count = 1
    result = []
    for i in range(len(num)):
        result.append(num[i] + ('0' * (len(num) - count)))
        count += 1
    for i in result:
        for x in i:
            if x == '0':
                result.remove(i)
                break
            break
    for i in result:
        i = str(i)
        if i[0] == '0':
            result.remove(i)
    return ' + '.join(result))




Задача такова: нужно вернуть число в развернутом виде . То есть из числа 7304 должно получиться 7300 + 4, из числа 73000004: 70000000 + 3000000 + 4. В 90 из 100 случаев код работает исправно, но иногда выдает случайный 0 или пару нулей, как например в том же числе 73000004 выдаёт 70000000 + 3000000 + 000 + 4, хотя нулей быть не должно. Или в числах по типу 900000000 также выводит некорректно
AD0DE412
 print(' + '.join([i + (len(str(args)) - j - 1) * '0' for j, i in enumerate(str(args)) if int(i)]))
зы конечно число не должно начинаться с нуля типа ‘args = 010’
xam1816
  
def split_num(num):
    l = []
    i = 0
    while num:
        temp = (num % 10) * 10**i
        if temp:
            l.append(temp)
        i += 1
        num //= 10
    return l[::-1]
res = split_num(73000004)
print(' + '.join(str(i) for i in res))
py.user.next
SpyBorgFly
То есть из числа 7304 должно получиться 7300 + 4, из числа 73000004: 70000000 + 3000000 + 4.
Из 7304 должно получиться 7000 + 300 + 4 ?

SpyBorgFly
но иногда выдает случайный 0 или пару нулей
Ошибка у тебя такая же, как здесь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB