Python不使用int()函數(shù)把字符串轉(zhuǎn)換為數(shù)字的方法
不使用int()函數(shù)的情況下把字符串轉(zhuǎn)換為數(shù)字,如把字符串"12345"轉(zhuǎn)換為數(shù)字12345。
方法一:利用str函數(shù)
既然不能用int函數(shù),那我們就反其道而行,用str函數(shù)找出每一位字符表示的數(shù)字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): for j in range(0, 10): if v == str(j): num += j * (10 ** i) return num
方法二:利用ord函數(shù)
利用ord求出每一位字符的ASCII碼再減去字符0的ASCII碼求出每位表示的數(shù)字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) return num
方法三:利用eval函數(shù)
eval的功能是將字符串str當(dāng)成有效的表達(dá)式來求值并返回計算結(jié)果。我們利用這特點可以利用每位字符構(gòu)造成和1相乘的表達(dá)式,再用eval算出該表達(dá)式的返回值就表示數(shù)字大寫。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): t = '%s * 1' % v n = eval(t) num += n * (10 ** i) return num
以上這篇Python不使用int()函數(shù)把字符串轉(zhuǎn)換為數(shù)字的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法
今天小編就為大家分享一篇python分塊讀取大數(shù)據(jù),避免內(nèi)存不足的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python使用requests模塊實現(xiàn)爬取電影天堂最新電影信息
這篇文章主要介紹了python使用requests模塊實現(xiàn)爬取電影天堂最新電影信息,本文通過實例代碼給大家介紹了str/list/tuple三者之間怎么相互轉(zhuǎn)換,需要的朋友可以參考下2019-04-04淺談django2.0 ForeignKey參數(shù)的變化
今天小編就為大家分享一篇淺談django2.0 ForeignKey參數(shù)的變化,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Windows環(huán)境下python環(huán)境安裝使用圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows環(huán)境下python安裝使用圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Pycharm如何導(dǎo)入python文件及解決報錯問題
這篇文章主要介紹了Pycharm如何導(dǎo)入python文件及解決報錯問題,本文通過示例截圖相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05利用selenium爬蟲抓取數(shù)據(jù)的基礎(chǔ)教程
這篇文章主要給大家介紹了關(guān)于如何利用selenium爬蟲抓取數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用selenium具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06