ホームページ >バックエンド開発 >Python チュートリアル >Pythonで文字列が整数かどうかを判断する方法

Pythonで文字列が整数かどうかを判断する方法

coldplay.xixi
coldplay.xixiオリジナル
2021-03-16 15:57:2721391ブラウズ

文字列が整数であるかどうかを判断する Python の方法: 1. 再帰的方法。最初に文字列の最初の文字に基づいて整数の符号を判断し、次に文字列を右から左に走査します。 2. 非再帰的メソッドは、文字列を左から右に走査して整数値を計算することによって実装されます。

Pythonで文字列が整数かどうかを判断する方法

このチュートリアルの動作環境: 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 >= &#39;0&#39; and c <= &#39;9&#39;
 
    # 判断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] == &#39;-&#39;:
                return self.strtoint(strs, length - 1) * 10 - (ord(list[length - 1]) - ord(&#39;0&#39;))
            else:
                return self.strtoint(strs, length - 1) * 10 + ord(list(strs)[length - 1]) - ord(&#39;0&#39;)
 
        else:
            if list(strs)[0] == &#39;-&#39;:
                return 0
            else:
                if not self.isNumber(list(strs)[0]):
                    print("不是数字")
                    self.flag = False
                    return -1
                return ord(list(strs)[0]) - ord(&#39;0&#39;)
 
    def strToint(self, s):
        self.flag = True
        if s == None or len(s) <= 0 or (list(s)[0] == &#39;-&#39; and len(s) == 1):
            print("不是数字")
            self.flag = False
            return -1
 
        if list(s)[0] == &#39;+&#39;:
            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] == &#39;-&#39;:  # 结果是负数
            minus = True
            i += 1
 
        if list(strs)[i] == &#39;+&#39;:  # 结果是正数
            i += 1
        while i < len(strs):
            if self.isNumber(list(strs)[i]):
                res = res * 10 + ord(list(strs)[i]) - ord(&#39;0&#39;)
            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 ビデオ チュートリアル

以上がPythonで文字列が整数かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。