BenderF
@BenderF

Форматирование вывода?

Привет.
Есть простая программа на Питон, для высчета факториала.
import math
while True:
    x = int(input("Введите число для вычисления факториала:  "))
    fc = math.factorial(x)
    print(" Факториал числа", x,  "равен", fc,  "цифр в числе - ", len(str(fc)))

Вопрос! Можно ли при выводе значения факториала переменной (fc) её обрезать(отформатировать) так чтоб она выводила первые 5 цифр числа и ставила двоеточие без преобразования в строку?
К примеру факториал 100 имеет 158 цифр, но должна вывести программа первые 5 цифр -> 93326..
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
import math

def first_n_digits(num, n):
    return num // 10 ** (int(math.log(num, 10)) - n + 1)

while True:
    x = int(input("Введите число для вычисления факториала:  "))
    fc = math.factorial(x)
    print(" Факториал числа", x,  "равен", first_n_digits(fc,5),  ".. цифр в числе - ", len(str(fc)))

How can I get the first two digits of a number?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lob4Noff
import math

while True:
    x = int(input("Введите число для вычисления факториала: "))
    fc = math.factorial(x)
    if len(str(fc)) > 5:
        print(f"Факториал числа {x} равен {str(fc)[:6]}..., цифр в числе - {len(str(fc))}")
    else:
        print(f"Факториал числа {x} равен {fc}, цифр в числе - {len(str(fc))}")


При этом тип переменной остаётся таким же, каким и был.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы