为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这两个代码结果不一样?

https://img1.sycdn.imooc.com//5d4cee7d00014d4c07780362.jpg

                                      第二个:不应该先计算括号里的吗?

正在回答

4 回答

因为(x1 + x100)结果是299,如果仅仅是除以2,python的计算结果只会取整数部分149,余数1被舍弃了,再乘以n (即100)就得到14900。但是反过来299先乘以100再除以2,就可以得到准确的14950。如果想要两个结果相同,把两个代码里面的2都改成2.0,用浮点数计算,两个结果就都是14950.0了。(详见3-8节)

4 回复 有任何疑惑可以回复我~
#1

qq_Thefaithofgl_0 提问者

我想问下:整数相除不是会得到浮点数吗,为什么这里299除以2没得到浮点数?
2019-08-09 回复 有任何疑惑可以回复我~
#2

Trapa 回复 qq_Thefaithofgl_0 提问者

整数相除,如果不能整除,答案保留整数商,余数舍弃,比如10/3得到3,5/2得到2
2019-08-09 回复 有任何疑惑可以回复我~
#3

qq_Thefaithofgl_0 提问者 回复 Trapa

// 才是保留商 % 保留余数
2019-08-09 回复 有任何疑惑可以回复我~
#4

Trapa 回复 qq_Thefaithofgl_0 提问者

那可能是版本不一样,我2.7的是/保留商,%保留余数
2019-08-09 回复 有任何疑惑可以回复我~
#5

qq_Thefaithofgl_0 提问者 回复 Trapa

我试了下,这个输出的也的确是149。谢谢你的回复!
2019-08-09 回复 有任何疑惑可以回复我~
#6

Trapa 回复 qq_Thefaithofgl_0 提问者

不客气不客气~
2019-08-10 回复 有任何疑惑可以回复我~
查看3条回复

http://img1.sycdn.imooc.com//5da01b8c00017a9c10070644.jpg

谢谢各位同事,我自己想还真的想不出来,特别希望大神们多多解答。

0 回复 有任何疑惑可以回复我~

分别比较了一下在python2和3下的运行结果,python3里面的/不会四舍五入,无法整除会得到浮点数,要取整需要用//,而2里面应该是直接取整

0 回复 有任何疑惑可以回复我~
#1

qq_Thefaithofgl_0 提问者

好的!
2019-08-15 回复 有任何疑惑可以回复我~

上面是n/2,下面是n,肯定不一样啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758363    人
  • 解答问题       8967    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么这两个代码结果不一样?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号