python3中Error Message: ‘float’ object cannot be interpreted as an integer

來源:互聯網
上載者:User

背景:



   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] = templ = [1, 2, 3, 4, 5]reverse(l)print(l)
在python3中報錯Error Message: ‘float’ object cannot be interpreted as an integer,而在python2中運行正常;


問題解決

為什麼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/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類型就可以了









聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.