Избегайте десятичной части в питоне - PullRequest
0 голосов
/ 28 января 2019

Есть ли способ в Python, чтобы избежать десятичной части числа результата, когда он равен нулю?

Когда a = 12 и b = 2 Я хочу:

print(a/b)

для печати:

6   # not 6.0

и если a = 13 и b = 2

6.5 # not 6

в общем виде.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете использовать деление по полу, если 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 - floordiv, а a/b - нормальный div, они всегда равны, если b делит a без остатка (подробнее: В чем разница между '/' и '//' при использовании для деления? )

0 голосов
/ 28 января 2019

Вы можете использовать методы int () / round ().Все, что нужно сделать, это

print(int(a/b)) 
...