新手已经被Python的运算符搞蒙,求助!

zheermao 2017-04-15 07:29:59
有3个运算符我已经蒙了:
第一个是 %
我知道 10%3 结果是1
但是为什么: 10%-3结果是-2 ? -10%3结果是2? -10%-3结果是-1?

第二个是 //
我知道10//3结果是3
但为什么: -10//3结果是-4? 10//-3结果是-4?

第三个是**
我知道 3**2结果是9
但为什么: (-3)**2是9? -3**2结果是9?括号起什么作用?

请求帮助,谢谢!!
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheermao 2017-04-25
  • 打赏
  • 举报
回复
引用 4 楼 chuifengde 的回复:
再不明白就给你举个例 子:如求10%-3 根据上面的公式有10%-3=10-math.floor(10/-3)*-3 =10-math.floor(-3.33333333333)*-3 =10-(-4)*-3=-2 结果就是你提问中给出的答案啊
感谢您的耐心解答!!新手懂了!!谢谢!!
chuifengde 2017-04-17
  • 打赏
  • 举报
回复
再不明白就给你举个例 子:如求10%-3 根据上面的公式有10%-3=10-math.floor(10/-3)*-3 =10-math.floor(-3.33333333333)*-3 =10-(-4)*-3=-2 结果就是你提问中给出的答案啊
chuifengde 2017-04-17
  • 打赏
  • 举报
回复
引用 2 楼 zheermao 的回复:
[quote=引用 1 楼 chuifengde 的回复:] 看原理: a%b=a-math.floor(a//b)*b a//b=math.floor(a//b)
谢谢您的回复!!但是新手不明白为什么负数一掺进来结果就变了?[/quote] 没有变啊,python中求余与整除的基本运算就是上面两个算式啊,哦,对了上面写错了,应该是
a%b=a-math.floor(a/b)*b
a//b=math.floor(a/b)
chuifengde 2017-04-16
  • 打赏
  • 举报
回复
看原理: a%b=a-math.floor(a//b)*b a//b=math.floor(a//b)
zheermao 2017-04-16
  • 打赏
  • 举报
回复
引用 1 楼 chuifengde 的回复:
看原理: a%b=a-math.floor(a//b)*b a//b=math.floor(a//b)
谢谢您的回复!!但是新手不明白为什么负数一掺进来结果就变了?

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧