少儿编程100讲轻松学python(九)-python如何判断字符串是否为整数
生活随笔
收集整理的這篇文章主要介紹了
少儿编程100讲轻松学python(九)-python如何判断字符串是否为整数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
python判斷字符串是否為整數的方法:首先可以根據字符串的第一個字符確定整數的正負;然后對字符串從右向左遍歷,例如111,可以看成【1110+1】,而11又可以看成【110+1】。
本教程操作環境:windows7系統、python3.9版,DELLG3電腦。
python判斷字符串是否為整數的方法:
方法一:遞歸法
對于整數而言,例如111,可以看成1110+1,而11又可以看成110+1。而-111可以看成(-11)*10-1,-11可以看成(-1)*10-1.根據這個特點可以采用遞歸的方法求解,可以先根據字符串的第一個字符確定整數的正負,接著對字符串從右向左遍歷.
class Test:def __init__(self):self.flag = Nonedef getFlag(self):return self.flag# 判斷c是否是數字,如果是返回數字,且設置flag=True,否則返回Falsedef isNumber(self, c):return c >= '0' and c <= '9'# 判斷str是否是數字def strtoint(self, strs, length):if length > 1:if not self.isNumber(list(strs)[length - 1]):# 不是數字print("不是數字")self.flag = Falsereturn -1if 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 0else:if not self.isNumber(list(strs)[0]):print("不是數字")self.flag = Falsereturn -1return ord(list(strs)[0]) - ord('0')def strToint(self, s):self.flag = Trueif s == None or len(s) <= 0 or (list(s)[0] == '-' and len(s) == 1):print("不是數字")self.flag = Falsereturn -1if list(s)[0] == '+':return self.strToint(s[1:len(s)], len(s) - 1)else:return self.strToint(s, len(s))方法二:非遞歸法
首先通過一個字符的值確定整數的正負性,然后去掉符號位,把后面的字符串當做正數來處理,處理完成后再根據正負性返回正確的結果。實現方法為從左向右遍歷字符串計算整數的值,以“123”為例,遍歷到’2’的時候結果為110+2=12,遍歷到‘3’的時候結果為1210+3=123。
class Test:def __init__(self):self.flag = Nonedef getFlag(self):return self.flag# 判斷c是否是數字,如果是返回True,否則返回Falsedef isNumber(self, c):return c >= "0" and c <= "9"def strToint(self, strs):if strs == None:self.flag = Falseprint("不是數字")return -1self.flag = Trueres = 0i = 0minus = False # 是否是負數if list(strs)[i] == '-': # 結果是負數minus = Truei += 1if list(strs)[i] == '+': # 結果是正數i += 1while i < len(strs):if self.isNumber(list(strs)[i]):res = res * 10 + ord(list(strs)[i]) - ord('0')else:self.flag = Falseprint("不是數字")return -1i += 1return -res if minus else resif __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)總結
以上是生活随笔為你收集整理的少儿编程100讲轻松学python(九)-python如何判断字符串是否为整数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 少儿编程100讲轻松学python(十七
- 下一篇: 少儿编程100讲轻松学python(十二