初学Python,遇到一个圆整问题。
圆整
对于整数运算,需要明白一个重点就是它向下圆整结果,即圆整后得到的值不大于实际值。
整除:因此在结果为负数的情况下,圆整后将离0更远。比如-3.3圆整后的结果就是-4。着意味着对于-10 // 3,将向下圆整到-4,而不是向上圆整到-3。
>>> 10 // 3 # 10 ÷ 3 = 3.33333……向下圆整为 3
3
>>> 10 // -3 #10 ÷ -3 = -3.33333……向下圆整为 -4
-4
>>> -10 // 3 #-10 ÷ 3 = -3.33333……向下圆整为 -4
-4
>>> -10 // -3 #-10 ÷ -3 = 3.33333……向下圆整为 3
3
取模:x%y 的结果为x除以y的余数。换而言之,结果为执行整除时余
下的部分,即x %y 等价于x - ((x // y) * y)
>>> 10 % 3 # 10 // 3 =3 ; 10 - (3*3) = 1
1
>>> 10 % -3 # 10 // -3 = - 4 ; 10 - (-4*-3) = -2
-2
>>> -10 % 3 # -10 // 3 = - 4 ; -10 - (-4*3) = 2
2
>>> -10 % -3 # -10 // -3 = 3 ; -10 - (3*-3) = 1
-1
round函数:整数总是向下圆整,而round圆整到最接近的整数,并在两
个整数一样近时(x.5)圆整到偶数。
>>>round(3 / 2) # 3除以2值为1.5
2
>>>round(5 / 2) # 5除以2值为2.5
2
>>>round(5 / 3) # 5除以3值为1.66666……
2
>>>round(10/3) # 10除以3值为3.33333……
3