Pythonを少し勉強しています。Python String to Int or None
変数をint(stringToInt)
に設定しようとしています。文字列が空の場合はNone
に設定しています。
私はvariable = int(stringToInt) or None
をしようとしましたが、文字列が空の場合は、[なし]に設定するのではなくエラーになります。
これを回避する方法はありますか?
Pythonを少し勉強しています。Python String to Int or None
変数をint(stringToInt)
に設定しようとしています。文字列が空の場合はNone
に設定しています。
私はvariable = int(stringToInt) or None
をしようとしましたが、文字列が空の場合は、[なし]に設定するのではなくエラーになります。
これを回避する方法はありますか?
あなたが試みられてきたようにあなたはワンライナーをしたい場合は、これで行く:
variable = int(stringToInt) if stringToInt else None
これが空でなく、「数字」である場合にのみint(stringToInt)
にvariable
を割り当てます。例えば、stringToInt
が'mystring'
である場合、ValueError
が発生します。
のtry-除いて使用し、限りあなたはジェネレータ式を行っていないとして、ValueError
のを避けるために:ここで
try:
variable = int(stringToInt)
except ValueError:
variable = None
これは初心者のために詳細に説明します。 – Marcin
は、例外を発生させるという事実を使用する:stringToInt='ZZTop'
、例えば:
try:
variable = int(stringToInt)
except ValueError:
variable = None
これは、他の一般的なエラーのためNone
にvariable
結合の快適副作用を有します。
文字列に数字以外の文字も含まれている状況を処理するので、このソリューションはおそらく最高のものだと思います。 –
は、いくつかのオプションがあります
は例外をキャッチし、それを処理します。それは、本当にその例外ではないのです
はtry:
variable = int(stringToInt)
except ValueError, e:
variable = None
それを占める:
variable = int(stringToInt) if stringToInt.isdigit() else None
'all()'は必要ありません。 if stringToInt.isdigit(): 'で十分です。 –
@Robᵩ、ありがとう。いい視点ね。 –
あなたはそれらを除いて例外をキャッチしません..... –
これはisdigit()を持たないため、stringToIntがNoneの場合は動作しません。 – Damian
が '空' の定義: – dawg