python怎么取模,Python运算符之取模%

为了可以成为测试,最近在学Python。菜鸟教程中叫%运算为取余,而之前我在学习Java时记得书上是叫%运算为取模。因此想知道这两者到底有啥区别。

一.定义

在matlab中,关于取余和取模是这么定义的:

当y≠0时:

取余:rem(x,y)=x-y * fix(x./y)

取模:mod(x,y)=x-y * floor(x./y)

其中,fix()函数是向0取整,floor()函数是向负无穷取整

取余,遵循尽可能让商向0靠近的原则

取模,遵循尽可能让商向负无穷靠近的原则

二.测试

我用Java和Python分别运行了5%3、-5%3...

5%3

5除以3=1.667产生了两个商1和2

如果%表示的是取余则rem(5,3)=5 - 3 * 1 = 2

如果%表示的是取模则mod(5,3) = 5 - 3 * 1 = 2

-5%3

-5除以3=-1.667产生了两个商-1和-2

如果%表示的是取余则rem(5,3)= -5 - 3 * (-1) = -2

如果%表示的是取模则mod(5,3) = -5 - 3 * (-2) = 1

5%-3

5除以-3=-1.667产生了两个商-1和-2

如果%表示的是取余则rem(5,3)= 5 - (-3) * (-1) = 2

如果%表示的是取模则mod(5,3) = 5 - (-3) * (-2) = -1

-5%-3

-5除以-3=1.667产生了两个商1和2

如果%表示的是取余则rem(5,3)= -5 - (-3) * 1 = -2

如果%表示的是取模则mod(5,3) = -5 - (-3) * 1 = -2

JAVA

public static void main(String[] args) {

System.out.println("5 % 3 =" + 5 % 3);

System.out.println("-5 % 3 = " + -5 % 3);

System.out.println("5 % (-3) = " +5 % (-3));

System.out.println("-5 % (-3) = " + -5 % (-3));

}

// 输出结果

// 5 % 3 =2

// -5 % 3 = -2

// 5 % (-3) = 2

// 5 % (-3) = -2

Python

>>> 5 % 3 # 取模

2

>>> -5 % 3

1

>>> 5 % -3

-1

>>> -5 % -3

-2

>>> 5.2 %3

2.2

>>> -5.2 % 3

0.7999999999999998

三.结论

由测试结果可得Python中的%为取模,Java的%才是取余。

你可能感兴趣的:(python怎么取模)