首页 > 编程知识 正文

python加减乘除,python中取余和取整

时间:2023-05-06 09:33:36 阅读:161856 作者:897

欢迎来到技术店的结界。 请注册或登录。

下载或查看需要登录,没有帐户吗? 立即注册请参加

x

这个帖子最后由watermelon在2020-8-3 10:53上编辑

昨天,小组里有一个学生讨论了求余的计算问题。 Fortran有求馀数的函数mod和modulo。 其中,两个函数说明如下。 (

模式(a,b ) )。

a,b=INTEGER/REAL

return=INTEGER/REAL

功能:计算a/b盈馀。 如果参数是浮点数,则返回(a-int ) a/b ) b )的值

模型(a,b ) )。

a,b=INTEGER/REAL

RETURN=INTEGER/REAL

功能:同样计算a/b的剩余,使用与MOD不同的公式计算。 如果参数是整数,则返回a-floor(real ) a/real ) b );如果参数是浮点数,则返回a-floor (a/b ) b

以前max在群里发过照片。 如下图所示,说明了Fortran求馀数过程中的计算方法。

QQ影像20200803100540.png(5.32kb,下载次数: 7) )。

2020-8-3 10:43上传

关于mod函数的计算方法非常明确。

接下来,让我们看一下Fortran、Python和C语言的取余数过程:

实验平台: win10 x64、Intel Visual Fortran2013学生版、Visual Studio 2013 Community、python3.8(cpython ) ) )。

Fortran实验代码:

程序主

implicit none

write(*,* ) mod 139,10 )! 139-10*(int(139//10 ) ) 139-10*int ) 13.9 )=139 - 130=9

write(*,* ) mod ) 139,-10! 139--10(*(int(139//-10 )=13910*int(-13.9 )=139(-130 )=9

write(*,* )模式(-139,10 )! -139-10*(int(-139//10 ) )-139-10*int )-13.9 )=-139 130=-9

write(*,* ) mod(-139,-10 )! -139--(-10 ) *(int(-139//-10 ) ) (-10 ) *(int ) 13.9 ) )=-139 )=-9

结束程序

执行结果:

9

9

-9

-9

请按任意键继续.

代码计算过程表明,Fortran实现了在取剩余计算过程中用int )取整数时,正数和负数都向0取整数的计算方法。

接下来,我们来看一下如何计算python3.8以获取剩余:

Python实验代码:

[Python]纯文本显示复印代码print(139(#139-10*(int ) 139//10 ) )=139-10*int ) 13.9 )=139 - 130=9

print(139%-10 ) #139-(-10 ) ) int ) 139/-10 ) 139 ) 10*int(-13.9 )=139(-140 )=-1

print(-139 ) #-139-10 * (int )-139//10 ) )-139-10*int(-13.9 )=-139 ) 140=1

print(-139%-10 ) #-139-(-10 ) *(int )-139-(-10 ) *(int ) 13.9 ) )=-139) )

执行结果:

[Python]纯文本显示复印代码python3.8.1(tags/v 3.8.1:1 b 293 b 6、dec 182019、2:11336046 (mscv.191664 bit ) amd64

Type 'help ',' copyright ',' credits' or 'license (),' for more information。

===========restart : c :/users/administrator/desktop/fuck.py=========restart : c 3:/ustor/ator

9

-1

1

-9

根据代码的计算过程,在Python取剩余的计算过程中使用int )取整数时,计算方法如下。 也就是说,正数朝着0取整数,负数朝着负的无限取整数。

c语言代码与Fortran代码的计算结果相同

实验步骤如下。

[C]纯文本查看二维码#include

intmain(intargc,char *argv[] ) ) ) ) ) ) ) ) ) int main ) ) ) int main ) ) ) int argc,char *argv[] ) ) ) ) ) ) ) int

{

打印(% d (n ),139 % 10 );

打印(% d (n ),139 % -10 );

打印(% d (n ),-139 % 10 );

printf(%d(n ),-139 % -10 );

返回0;

}

执行结果:

[C]纯文本显示复制码9

9

-9

-9

请按任意键继续.

因此,c语言在求馀的方法上与Fortran相同。

请注意,在Fortran中,使用int (,c语言中为(int ) )和Python中为int )对正数和负数进行四舍五入时,都采用了向0的四舍五入。 显然,Python在取馀过程中,其计算方法在负数方面发生了变化,变成了负的无限取整。

希望大家能多多批评和指正!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。