Есть ли способ в Python, чтобы избежать десятичной части числа результата, когда он равен нулю?
Когда a = 12 и b = 2 Я хочу:
a = 12
b = 2
print(a/b)
для печати:
6 # not 6.0
и если a = 13 и b = 2
a = 13
6.5 # not 6
в общем виде.
Вы можете использовать деление по полу, если b делит a без остатка и обычного деления, в противном случае:
b
a
data = [ (12,2),(13,2)] for a,b in data: print(f"{a} / {b} = ", a // b if (a//b == a/b) else a / b)
Вывод:
12 / 2 = 6 13 / 2 = 6.5
Это троичное выражение coditional (далее: Имеет ли Python троичный условный оператор? ) и оценивает a//b == a/b.
a//b == a/b
a//b - floordiv, а a/b - нормальный div, они всегда равны, если b делит a без остатка (подробнее: В чем разница между '/' и '//' при использовании для деления? )
a//b
a/b
Вы можете использовать методы int () / round ().Все, что нужно сделать, это
print(int(a/b))