Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

[PYTHON] Оцените пожалуйста корректность кода. (не использовать больше 3 переменных)

Тут просят вывести код который проверят от 1 до 9 чисел сколько чисел тут имеется. Другого варианта не смог придумать. Я использовал то что мы только проходили

number = int(input("Enter 1 to 9 digit number : "))
print(f'one digit:{number//1!=0}')
print(f'two digit:{number//10!=0}')
print(f'three digit:{number//100!=0}')
print(f'four digit:{number//1000!=0}')
print(f'five digit:{number//10000!=0}')
print(f'six digit:{number//100000!=0}')
print(f'seven digit:{number//1000000!=0}')
print(f'eight digit:{number//10000000!=0}')
print(f'nine digit:{number//100000000!=0}')

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

> сколько чисел тут имеется.
То есть посчитать количество цифр в числе? Потому что число у тебя "имеется" всегда только одно.

>Другого варианта не смог придумать.
Количество цифр в целом десятичном числе равно десятичному логарифму этого числа, округленному вверх. Таким образом, тебе нужна только 1 переменная и программа в 2 строки ровно. И зачем программистам математика?

Аватар пользователя
Гуру
5лет

#1 способ, через цикл:
count = 0
number = 1234567
while number != 0:
~~~~count+=1
~~~~number //= 10
print(count)

#2 способ, конвертируем число в строку
#и замеряем длинну строки
number = 1234567
print(len(str(number)))

#3 способ чепез логарифм по основ. 10
#логарифм - это обратное степени действие
#то есть возвращает число, которое нужно возвести 10, чтобы вышло 1234567. Число получится дробное, округляем его вверх до целого
numbers = 1234567
import math
print(math.ceil(math.log10(abs(numbers))))

#4й способ
Еще можно использовать if, elif, else. Как раз для твоего случая это лучшее решение. Без вычислений самый быстрый вариант по скорости исполнения выйдет:
if numbers >= 1000: print(4)
elif numbers >= 10000: print(5)

Аватар пользователя
Искусственный Интеллект
5лет

print (len(list(str(int(input('Число? '))))))

Бросай ты это программирование... Пусть им китайцы занимаются... :)))