背景:
BMPixel
194***4370@qq.com
列表反转函数:
#!/user/bin/python # -*- coding: UTF-8 -*- def reverse(li): for i in range(0, len(li)/2): temp = li[i] li[i] = li[-i-1] li[-i-1] = temp l = [1, 2, 3, 4, 5] reverse(l) print(l)
问题解决
为什么range内的数据是float呢 ?
怀疑/
在py2跟py3之间有差别,搜了一下,的确是有差别。请看下面的用法:
pyhon2
C:\Users\chenjun>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (
AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> 0/200 + 1
1
>>> 1/200 + 1
1
python3
C:\Users\chenjun>python3
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]
on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> 0/200 + 1
1.0
>>> 1/200 + 1
1.005
在python2,/
只留下了整数部分,去掉了小数,是int型。而在python3里,/
的结果是真正意义上的除法,结果是float型。所以便出现了Error Message: ‘float’ object cannot be interpreted as an integer。
解决办法:将float类型强转化为int类型就可以了