文字列が整数であるかどうかを判断する Python の方法: まず、文字列の最初の文字に基づいて整数の符号を判断し、次に文字列を右から左に走査します (例: 111)。これは [11 *10 1] として見ることができ、11 は [1*10 1] として見ることができます。
このチュートリアルの動作環境: Windows 7 システム、Python バージョン 3.9、DELL G3 コンピューター。
文字列が整数であるかどうかを判断する Python メソッド:
メソッド 1: 再帰的メソッド
整数の場合、Forたとえば、111 は 11*10 1 として表示され、11 は 1*10 1 として表示されます。そして、-111 は (-11)*10-1 とみなすことができ、-11 は (-1)*10-1 とみなすことができます。この機能によれば、再帰的手法を使用して問題を解くことができます。文字列の最初の文字に基づいて決定されます。整数の正と負、そして文字列を右から左に走査します。
class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判断c是否是数字,如果是返回数字,且设置flag=True,否则返回False def 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 = 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("不是数字") 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("不是数字") 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))
#方法 2: 非再帰的方法
まず、文字負の値によって整数の正負を判断し、次に符号ビットを削除し、次の文字列を正の数として扱い、処理後に正に基づいて正しい結果を返します。完成しました。実装方法は、文字列を左から右に走査して整数の値を計算します。「123」を例にすると、「2」まで走査すると結果は 1*10 2=12 となり、「 」まで走査すると結果は 1*10 2=12 になります。 3' の場合、結果は 12*10 3=123 となります。class Test: def __init__(self): self.flag = None def getFlag(self): return self.flag # 判断c是否是数字,如果是返回True,否则返回False def isNumber(self, c): return c >= "0" and c <= "9" def strToint(self, strs): if strs == None: self.flag = False print("不是数字") return -1 self.flag = True res = 0 i = 0 minus = False # 是否是负数 if list(strs)[i] == '-': # 结果是负数 minus = True i += 1 if list(strs)[i] == '+': # 结果是正数 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("不是数字") 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 で文字列が整数かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。