文字列が整数であるかどうかを判断する Python の方法: 1. 再帰的方法。最初に文字列の最初の文字に基づいて整数の符号を判断し、次に文字列を右から左に走査します。 2. 非再帰的メソッドは、文字列を左から右に走査して整数値を計算することによって実装されます。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。