Python エラー: ValueError: 基数 10 の int() のリテラルが無効です: 'xxx'、解決策は何ですか?

WBOY
リリース: 2023-08-27 13:48:27
オリジナル
2783 人が閲覧しました

Python报错:ValueError: invalid literal for int() with base 10: \'xxx\',解决方法是?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート