文字列をpythonでintに変換する方法

ソリューションプレビュー:数値文字列をで変換しますint()。非決定的な入力(バイナリ、ヘックス)の場合、ベースを渡します。無効な入力に対処するために、エラー処理または事前検証を追加します。

方法1:int()に10進数字文字列を変換します

ステップ1:数値文字列を保存または読み取ります。

s = "42"

ステップ2:文字列を整数に変換します。

n = int(s)

ステップ3:計算で整数を使用するか、印刷してください。

print(n * 2)  # 84

ヒント:int()主要/末尾の空白を無視し、ようなオプションの標識をサポートします"+17"または" -3 "。

方法2:他のベースの弦を解析する(バイナリ、六角、オクタル)

ステップ1:文字列のベースを識別します(バイナリの場合は2、オクタルの場合は8、1666個)。

提案された読み:

ステップ2:2番目の引数としてベースを渡しますint()。

# Binary
b = "1010"
n = int(b, 2)   # 10

# Hexadecimal
h = "1A"
m = int(h, 16)  # 26

注:2〜36の任意のベースを使用できます。

方法3:無効な入力を安全に処理します(試してください/除いて、または事前チェック)

ステップ1:コンバージョンをtry/を除いてブロックを除いて、悪い入力をキャッチします。

s = "abc"
try:
    n = int(s)
    print(n)
except ValueError:
    print("Invalid input: cannot convert to integer")

ステップ2:オプションでは、以前に検証しますstr.isdigit()数字の入力用。

s = "12345"
if s.isdigit():
    print(int(s))
else:
    print("Not a pure digit string")

チェック:str.isdigit()兆候を受け入れません("-5")または小数("12.3")。これらのケースのパスを除いてtry/を使用します。

ステップ1:文字列をフロートに変換し、次にintに変換します。

s = "88.8"
n = int(float(s))  # 88 (truncates toward zero)

注:これにより、部分的な部分が切り捨てられます。丸めが必要な場合は、変換してくださいfloat適用しますround()前にint()。

方法5:数値文字列のリストを変換します

ステップ1:各要素を介してマップしますint新しいリストを作成します。

xs = ["1", "2", "3"]
nums = list(map(int, xs))  # [1, 2, 3]

ステップ2:または、リストの理解を使用します。

nums = [int(x) for x in xs]

ヒント:アイテムが無効になる可能性がある場合は、Try/を除いてそれを使用して適用する関数に変換を包みますmapまたは理解。

一般的な落とし穴

  • 非数字のテキストを渡す(たとえば、"hello")上昇ValueError。プログラムを実行し続けることを除いて、try/を使用してください。
  • フロート文字列を解析する(たとえば、"12.5") とint()失敗;に変換しますfloat最初に切り捨てが許容される場合。
  • 正しいベースのないベース固有の文字列を解析すると、誤った結果またはエラーが得られます。文字列が小数点でない場合は、常にベースを渡します。

とint()直接的な解析、非決定的な文字列の基本引数、および簡単な検証の場合、入力を自信を持って変換して、コードを堅牢に保つことができます。

Related Posts