小編給大家分享一下python怎么判斷字符串是否為整數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
站在用戶的角度思考問題,與客戶深入溝通,找到諸城網(wǎng)站設(shè)計與諸城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋諸城地區(qū)。python判斷字符串是否為整數(shù)的方法:首先可以根據(jù)字符串的第一個字符確定整數(shù)的正負(fù);然后對字符串從右向左遍歷,例如111,可以看成【11*10+1】,而11又可以看成【1*10+1】。
python判斷字符串是否為整數(shù)的方法:
方法一:遞歸法
對于整數(shù)而言,例如111,可以看成11*10+1,而11又可以看成1*10+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根據(jù)這個特點(diǎn)可以采用遞歸的方法求解,可以先根據(jù)字符串的第一個字符確定整數(shù)的正負(fù),接著對字符串從右向左遍歷.
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判斷c是否是數(shù)字,如果是返回數(shù)字,且設(shè)置flag=True,否則返回False def isNumber(self, c): return c >= '0' and c <= '9' # 判斷str是否是數(shù)字 def strtoint(self, strs, length): if length > 1: if not self.isNumber(list(strs)[length - 1]): # 不是數(shù)字 print("不是數(shù)字") self.flag = False return -1 if list(strs)[0] == '-': return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord('0')) else: return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord('0') else: if list(strs)[0] == '-': return 0 else: if not self.isNumber(list(strs)[0]): print("不是數(shù)字") self.flag = False return -1 return ord(list(strs)[0]) - ord('0') def strToint(self, s): self.flag = True if s == None or len(s) <= 0 or (list(s)[0] == '-' and len(s) == 1): print("不是數(shù)字") self.flag = False return -1 if list(s)[0] == '+': return self.strToint(s[1:len(s)], len(s) - 1) else: return self.strToint(s, len(s))
方法二:非遞歸法
首先通過一個字符的值確定整數(shù)的正負(fù)性,然后去掉符號位,把后面的字符串當(dāng)做正數(shù)來處理,處理完成后再根據(jù)正負(fù)性返回正確的結(jié)果。實(shí)現(xiàn)方法為從左向右遍歷字符串計算整數(shù)的值,以“123”為例,遍歷到'2'的時候結(jié)果為1*10+2=12,遍歷到‘3’的時候結(jié)果為12*10+3=123。
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判斷c是否是數(shù)字,如果是返回True,否則返回False def isNumber(self, c): return c >= "0" and c <= "9" def strToint(self, strs): if strs == None: self.flag = False print("不是數(shù)字") return -1 self.flag = True res = 0 i = 0 minus = False # 是否是負(fù)數(shù) if list(strs)[i] == '-': # 結(jié)果是負(fù)數(shù) minus = True i += 1 if list(strs)[i] == '+': # 結(jié)果是正數(shù) i += 1 while i < len(strs): if self.isNumber(list(strs)[i]): res = res * 10 + ord(list(strs)[i]) - ord('0') else: self.flag = False print("不是數(shù)字") return -1 i += 1 return -res if minus else res if __name__ == "__main__": t = Test() s = "-543" print(t.strToint(s)) s = "543" print(t.strToint(s)) s = "+543" print(t.strToint(s)) s = "++43" result = t.strToint(s) if t.getFlag(): print(result)
以上是“python怎么判斷字符串是否為整數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文名稱:python怎么判斷字符串是否為整數(shù)-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://aaarwkj.com/article42/dppiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、品牌網(wǎng)站設(shè)計、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站制作、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容