您的位置:

Python取余运算详解

一、概述

Python中的取余运算符是%。这个运算符返回了第一个操作数除以第二个操作数所得的余数。

a = 10
b = 3
c = a % b
print(c)  # 输出1

二、整数的取余运算

1.正数的取余

若一个整数为正数,那么取余结果的符号和被除数相同,除数对结果取绝对值得到余数。例如:

a = 10
b = 3
c = a % b
print(c)  # 输出1

上面代码中,a为正数,b为正数,c的符号与a相同,为正号,同时c的绝对值为|a| mod |b|,即1。

2.负数的取余

若一个整数为负数,那么取余结果的符号和被除数相反,除数对结果取绝对值得到余数。例如:

a = -10
b = 3
c = a % b
print(c)  # 输出2

上面代码中,a为负数,b为正数,c的符号与a相反,为负号,同时c的绝对值为|a| mod |b|,即2。

3.整数取余运算的应用

整数取余运算经常适用于根据一个循环周期进行一些操作。例如:

for i in range(0, 10):
    if i % 3 == 0:
        print('hello')
    else:
        print(i)

上面代码中,如果i能够被3整除,那么就输出'hello',否则输出i。

三、浮点数的取余运算

1.浮点数的取余

浮点数的取余运算可使用math库的fmod()函数,该函数返回第一个操作数除以第二个操作数所得的余数,其结果与第一个操作数相同。使用方法如下:

import math

a = 10.5
b = 3.2
c = math.fmod(a, b)
print(c)  # 输出0.09999999999999964

2.浮点数取余运算的应用

浮点数取余运算经常适用于像计算等幅角或圆周率等问题时。例如,判断两个浮点数是否相等:

a = 1.1 + 2.2
b = 3.3
c = abs(a - b) < 1e-10
print(c)  # 输出True

上面代码中,a等于3.3000000000000003,因为浮点数在计算机中不能精确表示,所以需要进行误差判断。

四、复数的取余运算

1.复数的取余

复数的取余运算无定义。

2.复数取余运算的应用

无应用。