Python エラー: ValueError: 基数 10 の int() のリテラルが無効です: 'xxx'、解決策は何ですか?
Python プログラミングでは、さまざまなエラー メッセージに遭遇することがよくあります。このうち、ValueError は一般的なエラーの種類で、無効な文字を整数に変換しようとすると、ValueError エラーが発生します。よくある状況は、int() 関数を使用して文字列を変換するときに、文字列に数値以外の文字または無効な数値が含まれていることです。
たとえば、次のコードを実行すると:
num = int('xxx')
「ValueError: valid literal for int() with base 10: 'xxx'」というエラー メッセージが表示されます。
それでは、このエラーを解決するにはどうすればよいでしょうか?以下に、一般的な解決策をいくつか紹介します。
方法 1: 文字列に数字以外の文字が含まれているかどうかを確認する
まず、変換された文字列に数字以外の文字が含まれているかどうかを確認する必要があります。文字列から整数への変換は、文字列全体が数字で構成されている場合にのみ成功します。 isdigital() メソッドを使用すると、文字列に数字のみが含まれているかどうかを判断できます。
num_str = 'xxx' if num_str.isdigit(): num = int(num_str) else: print("字符串中含有非数字字符")
方法 2: try-Except ステートメントを使用して例外をキャッチする
もう 1 つの解決策は、try-Except ステートメントを使用して例外をキャッチすることです。 int() 関数を使用して文字列を変換するときに try ステートメントを使用し、Exception ブロックで ValueError 例外を処理できます。
num_str = 'xxx' try: num = int(num_str) except ValueError: print("字符串无法转换为整数")
方法 3: 正規表現を使用して数値以外の文字をフィルタリングする
正規表現を使用すると、数値以外の文字を簡単にフィルタリングできます。 re モジュールの sub() 関数を正規表現と組み合わせて使用すると、文字列内の数値以外の文字を空の文字列に置き換えることができます。
import re num_str = 'xxx' num_str = re.sub(r'D', '', num_str) num = int(num_str)
上記はいくつかの一般的な解決策です。数値以外の文字を避ける、例外処理を使用する、または正規表現を使用して数値以外の文字をフィルタリングすることにより、ValueError: valid literal for int() with Base を正常に解決できます。 10: 「xxx」エラー。
この記事がこのエラーの理解と解決に役立つことを願っています。
以上がPython エラー: ValueError: 基数 10 の int() のリテラルが無効です: 'xxx'、解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。