Salt la conținutul principal
Modulul 4 · Lecția 4 din 416/36 în curs~10 min
Lecții din modul (4/4)

Conversii de tip

Python este tastat puternic: nu adaugă niciodată un șir unui număr decât dacă dvs spune asa. Pentru a trece de la un tip la altul folosiți funcțiile de constructor: int(), float(), str(), bool(), list(), tuple(), _INLINE_13, list()

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() cu șiruri

int("42") funcționează; int("42.5") crește ValueError. Pentru șiruri zecimale, treceți mai întâi prin float: int(float("42.5")) → 42 (trunchiază, nu rotund).

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() cu șiruri

Acceptă notația zecimală și științifică.

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

str(): conversia „prietenoasă”.

str(x) apelează intern x.__str__() pentru a obține reprezentarea „umană”. Există, de asemenea, repr(x) pentru reprezentarea „depanator”, adesea mai mult explicit (cu ghilimele pentru șiruri de caractere etc.).

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

bool() și adevăr

bool(x) returnează False numai pentru valorile falsy ale lui Python:

  • False, None
  • zero numere: 0, 0.0
  • containere goale: "", [], (), {}, set()

Orice altceva este adevar.

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

Model: parsare sigură a intrărilor

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

Evaluare booleană (Adevăr)

În Python, fiecare obiect are o valoare implicită de adevăr. Puteți verifica valoarea booleană a oricărui obiect folosind funcția bool(...). Colecții goale (de ex. "", [], {}, set()) și valori zero (0, __PROTECTED_INLINE_43_ECT, întotdeauna evaluate IN_42) False. Toate celelalte obiecte sunt evaluate ca True.

Încearcă

Exercițiu#python.m4.l4.e1
Încercări: 0Se încarcă…

Având în vedere `a = '10'` și `b = '32'` (șiruri), calculați `total` ca suma lor INTEGER. Evaluați „total”.

Se încarcă editorul...
Afișează indiciu

int(a) + int(b), altfel concatenați șirurile.

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#python.m4.l4.e2
Încercări: 0Se încarcă…

Având în vedere lista `valori = ['', 'x', 0, None, 1, []]`, construiți `truthy` NUMAI cu elementele truthy folosind bool(). Evaluează „adevărul”.

Se încarcă editorul...
Afișează indiciu

Lista de înțelegere cu filtru bool(v) (sau doar „dacă v”).

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#python.m4.l4.e3
Încercări: 0Se încarcă…

Având în vedere lista de șiruri de caractere \`string_numbers = ["1", "2", "3"]\`, convertiți fiecare element într-un număr întreg folosind \`int()\` și însumați-le pentru a obține valoarea \`6\`. Stocați suma în \`sum_val\` și evaluați-o.

Se încarcă editorul...
Afișează indiciu

Accesați elemente prin index, de ex. int(string_numbers[0]) și însumați-le.

Soluție disponibilă după 3 încercări