x = 10000
digits = 0
while x != 0:
x = x // 10
digits += 1
if x == 0: # you only want to print once when you have digits correct so check here
print(digits) # print your digits
break # break your loop
else: # remove the expression here for the else (not elif)
print(1)
Похоже:
>>> x = 10000
>>> digits = 0
>>>
>>> while x != 0:
... x = x // 10
... digits += 1
... if x == 0:
... print(digits)
... break
... else:
... print(1)
...
5
Редактировать:
Как отметил Карл в комментариях, это не обычный способ сделать что-то в Python. Этот ответ таков, потому что казалось, что вы специально хотели использовать while/else
, что и является способом сделать это. Реорганизация его так, как он это делает в своем ответе, встречается гораздо чаще, но не удовлетворяет требованиям делать while/else
, если это требование для вас.