この記事では、文字列として与えられた数値から先頭のゼロを削除する Python プログラムを学習します。
数値を文字列形式で取得するとします。以下に示す方法を使用して、先行ゼロ (数字の先頭にあるゼロ) をすべて削除します。
使用説明書
以下は、このタスクを達成するために使用されるさまざまな方法です-
-
For ループと remove() 関数の使用
-
正規表現を使用する
-
int() 関数を使用する
方法 1: For ループと remove() 関数を使用する
アルゴリズム (ステップ)
以下は、目的のタスクを実行するために従うアルゴリズム/手順です。−
-
文字列として関数に渡される数値から先頭のゼロを削除する関数 deleteLeadingZeros() を作成します。
-
for ループを使用して、len() 関数を使用して文字列の長さを繰り返し処理します。
-
len()関数-オブジェクト内のアイテムの数は、len()メソッドによって返されます。オブジェクトが文字列の場合、len() 関数は文字列の文字数を返します。
-
if 条件文と ! = 演算子は、文字列内の現在の文字が 0 でないかどうかをチェックします
-
スライスを使用して、先頭のゼロの後の文字列の残りの文字を取得します。
-
入力文字列から先頭のゼロをすべて削除した結果の文字列を返します。
-
先頭の 0 が見つからない場合は 0 を返します。
-
文字列として渡された入力数値を格納する変数を作成します。
-
上記で定義した deleteLeadingZeros() 関数に入力文字列を渡して呼び出し、先頭のゼロを削除した後の結果文字列を取得します。
-
先行ゼロのない他の文字列も同様にチェックされます。
例
次のプログラムは、 for ループと remove() 関数を使用して、文字列として渡された数値からすべての先行ゼロを削除する文字列を返します-
# 先頭のゼロを削除する関数を作成する # 文字列として関数に渡された数値から def deleteLeadingZeros(inputString): # 文字列の長さを k の範囲でトラバースする(len(inputString)): # 現在のstring の character is not 0 if inputString[k] != '0': # スライシングを使用して残りの文字列を取得する outputString= inputString[k::] # 先頭の 0 を削除した後に結果の文字列を返す return outputString # ない場合は 0 を返す文字列全体で先頭の 0 が見つかった return "0" # 数値を文字列として入力する inputString = "0002056" print("指定された文字列は:", inputString) # 入力文字列を渡して deleteLeadingZeros() 関数を呼び出す print("先行ゼロを削除した後:",deleteLeadingZeros(inputString)) # 先頭に 0 がない他の文字列をチェックする inputString = "256" print("Given String is:", inputString) # 入力文字列を渡して deleteLeadingZeros() 関数を呼び出す print("After Removal先行ゼロ:", deleteLeadingZeros(inputString))
出力
実行時に、上記のプログラムは次の出力を生成します-
指定された文字列: 0002056 先頭のゼロを削除した後: 2056 指定された文字列: 256 先頭のゼロを削除した後: 256
方法 2: 正規表現を使用する
アルゴリズム (ステップ)
以下は、目的のタスクを実行するために従うアルゴリズム/手順です。−
-
import キーワードを使用して、正規表現 (re) モジュールをインポートします。
-
文字列として関数に渡される数値から先頭のゼロを削除する関数 deleteLeadingZeros() を作成します。
-
入力文字列から先行ゼロを削除するために使用される正規表現パターンを格納する変数を作成します。
-
sub() 関数を使用して、一致する正規表現パターンを空の文字列に置き換えます。
-
sub() 関数 (指定されたパターンに一致するすべての出現箇所を置換文字列に置き換えた文字列を返します)。
-
入力文字列から先頭のゼロをすべて削除した後、結果の文字列を出力します。
例
次のプログラムは、正規表現を使用して文字列として渡された数値からすべての先行ゼロを削除する文字列を返します-
# re モジュールをインポートする import re # 先頭のゼロを削除する関数を作成する # 関数に文字列として渡された数値から def deleteLeadingZeros(inputString): # 入力文字列から先頭のゼロを削除するための正規表現パターン regexPattern = "^0+( ?!$)" # 一致した正規表現パターンを空の文字列に置き換える outputString = re.sub(regexPattern, "", inputString) # 先頭の 0 を削除して出力文字列を返す return outputString # 数値を文字列として入力する inputString = "0002056" print ("Given String is:", inputString) # 入力文字列を渡して deleteLeadingZeros() 関数を呼び出す print("After Removal Leading Zeros:", deleteLeadingZeros(inputString))
出力
実行時に、上記のプログラムは次の出力を生成します-
指定された文字列は次のとおりです: 0002056 先頭のゼロを削除した後: 2056
方法 3: int() 関数を使用する
アルゴリズム (ステップ)
以下は、目的のタスクを実行するために従うアルゴリズム/手順です。−
-
文字列として関数に渡される数値から先頭のゼロを削除する関数 deleteLeadingZeros() を作成します。
-
int() 関数を使用して入力文字列を整数に変換します (指定されたオブジェクトから整数を返します)。この関数は、先頭のゼロをすべて削除します。
-
入力文字列から先頭のゼロをすべて削除した結果の数値を返します。
例
次のプログラムは、int()関数を使用して文字列として渡された数値からすべての先行ゼロを削除する数値として返します-
# 先頭のゼロを削除する関数を作成する # 文字列として関数に渡された数値から def deleteLeadingZeros(inputString): # 入力文字列を整数に変換すると、すべての先頭のゼロが削除される result = int(inputString) # 結果の数値を返す先頭のゼロを削除した後、結果を返す # 文字列として数値を入力する inputString = "0002056" print("Given String is:", inputString) # 入力文字列を渡して deleteLeadingZeros() 関数を呼び出す print("After Removal Leading Zeros: ", deleteLeadingZeros(inputString))
出力
実行時に、上記のプログラムは次の出力を生成します-
指定された文字列は次のとおりです: 0002056 先頭のゼロを削除した後: 2056
結論は
この記事では、3 つの異なる方法を使用して、文字列として指定された数値から先頭のゼロを削除する方法を学びました。スライシングを使用して、文字列、リスト、タプルなどの反復可能なオブジェクトのサブセットを取得する方法を学びました。また、正規表現モジュールを使用して、あるパターンを別のパターンに置き換える (置き換える) 方法も学びました。