メインコンテンツにスキップ
モジュール 4 · レッスン 4 / 4コース内の 16/36~10 min
モジュールのレッスン (4/4)

型変換

Python は 厳密に型指定されています。 そう言ってください。ある型から別の型に移動するには、コンストラクター関数を使用します。 int()、float()、str()、bool()、list()、tuple()、set()。

Python
int("42")        # 42
float("3.14")    # 3.14
str(42)          # '42'
list("abc")      # ['a', 'b', 'c']
tuple([1, 2])    # (1, 2)
set([1, 1, 2])   # {1, 2}

int() 文字列付き

int("42") は機能します。 int("42.5") は ValueError を発生させます。 10 進数の文字列の場合、 最初に float を通過します: int(float("42.5")) → 42 (切り捨てられます。 丸い)。

Python
int("42")         # 42
int("  42  ")     # 42        (strip automatico degli spazi)
int("42.5")       # ValueError
int(float("42.5"))  # 42
int("ff", 16)     # 255       (base esplicita)

float() 文字列付き

10 進数および科学表記を受け入れます。

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str(): 「フレンドリーな」変換

str(x) は内部で x.__str__() を呼び出して「人間」の表現を取得します。 「デバッガ」表現には repr(x) もあります。 明示的 (文字列などの引用符付き)。

Python
str(3.14)       # '3.14'
str([1, 2])     # '[1, 2]'
str(True)       # 'True'

bool() と真実性

bool(x) は、Python の falsy 値の場合にのみ False を返します。

  • False、None
  • ゼロの数値: 0、0.0
  • 空のコンテナ: ""、[]、()、{}、set()

それ以外はすべて真実です。

Python
bool(0)       # False
bool("")      # False
bool([])      # False
bool("0")     # True  !  (stringa non vuota)
bool([0])     # True  !  (lista non vuota, anche se contiene 0)

パターン: 安全な入力解析

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

ブール評価(真偽性)

Python では、すべてのオブジェクトに暗黙の真理値があります。 bool(...) 関数を使用して、任意のオブジェクトのブール値を確認できます。空のコレクション (""、[]、{}、set()) およびゼロ値 (0、0.0) は常に False と評価されます。他のすべてのオブジェクトは True として評価されます。

試してみてください

運動#python.m4.l4.e1
試行回数: 0読み込み中…

`a = '10'` および `b = '32'` (文字列) とすると、それらの INTEGER 合計として `total` を計算します。 「合計」を評価します。

エディターを読み込み中…
ヒントを表示

int(a) + int(b)、それ以外の場合は文字列を連結します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#python.m4.l4.e2
試行回数: 0読み込み中…

リスト `values = ['', 'x', 0, None, 1, []]` を指定すると、bool() を使用して真実の要素のみを含む `truthy` を構築します。 「真実」を評価する。

エディターを読み込み中…
ヒントを表示

フィルター bool(v) (または単に 'if v') を使用したリストの内包表記。

3 回の試行後に解決策が利用可能になります

追加の課題

運動#python.m4.l4.e3
試行回数: 0読み込み中…

文字列のリスト \`string_numbers = ["1", "2", "3"]\` を指定すると、\`int()\` を使用して各要素を整数に変換し、それらを合計して値 \`6\` を取得します。合計を \`sum_val\` に保存し、評価します。

エディターを読み込み中…
ヒントを表示

インデックスによって要素にアクセスします。例: int(string_numbers[0]) を計算し、それらを合計します。

3 回の試行後に解決策が利用可能になります