记录一下刚上手Python3时遇到的坑


前言

最近同时用Java和Python3刷LeetCode。每天早上起来先用Java给出一个解答,再用Python给出一个解答,两者所采用的算法和数据结构基本相同。
我本科时候主要用C++,刷题过程中,我发现Java的很多写法都和C++相似,但用Python3实现同样的算法时,却遇到不少坑,在此一一记录。


一、Python基础

1.基本运算

Python3中实现整数除法需要用“//”,不能像Java或C++里面用“/”。

>>> 3/2
1.5
>>> 3//2
1

然而,当被除数是负数时,“//”是向下取整。若想实现类似Java或C++的整数除法向零取整的性质,建议无论被除数是正数还是负数,整数除法一律用“/”结合int强制类型转换。

>>> 13 / 10
1.3
>>> 13 // 10
1
>>> -13 / 10
-1.3
>>> -13 // 10
-2
>>> int(-13 / 10)
-1
>>> int(13 / 10)
1

另外,Python3中取余的计算公式和其余语言类似,都是:r = a - n * (a // n)。其中r是余数,a是被除数,n是除数,“//”表示整除。只不过,由于Python3中“//”结果和其余语言不一致,故取余结果也有差异。写程序时一定要格外注意。

>>> -123 // 10
-13
>>> -123 % 10
7
>>> -123 // -10
12
>>> -123 % -10
-3

本人向来习惯用前置++或者后置++功能,但Python3没有这种运算。只能通过i+=1等操作实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值