Chuyển đến nội dung chính
Mô-đun 4 · Bài học 4 trong tổng số 416/36 trong khóa học~10 min
Bài học theo mô-đun (4/4)

Chuyển đổi loại

Python được gõ mạnh: nó không bao giờ thêm một chuỗi vào một số trừ khi bạn nói vậy. Để chuyển từ kiểu này sang kiểu khác, bạn sử dụng các hàm tạo: 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() có chuỗi

int("42") hoạt động; int("42.5") tăng ValueError. Đối với chuỗi thập phân, đi qua float trước: int(float("42.5")) → 42 (cắt ngắn, không tròn).

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() có chuỗi

Chấp nhận ký hiệu thập phân và khoa học.

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

str(): chuyển đổi "thân thiện"

str(x) gọi nội bộ x.__str__() để có được đại diện "con người". Ngoài ra còn có repr(x) cho phần trình bày "trình gỡ lỗi", thường nhiều hơn rõ ràng (có dấu ngoặc kép cho chuỗi, v.v.).

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

bool() và tính trung thực

bool(x) chỉ trả về False cho các giá trị falsy của Python:

  • False, None
  • số 0: 0, 0.0
  • thùng chứa rỗng: "", [], (), {}, set()

Mọi thứ khác đều trung thực.

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

Mẫu: phân tích cú pháp đầu vào an toàn

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

Đánh giá Boolean (Tính xác thực)

Trong Python, mọi đối tượng đều có một giá trị chân lý ngầm định. Bạn có thể kiểm tra giá trị boolean của bất kỳ đối tượng nào bằng hàm bool(...). Bộ sưu tập trống (ví dụ: "", [], {}, set()) và các giá trị bằng 0 (0, 0.0) luôn có giá trị là False. Tất cả các đối tượng khác có giá trị là True.

Hãy thử nó

tập thể dục#python.m4.l4.e1
Nỗ lực: 0Đang tải…

Cho `a = '10'` và `b = '32'` (chuỗi), hãy tính `tổng` là tổng INTEGER của chúng. Đánh giá `tổng`.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

int(a) + int(b), nếu không thì bạn nối các chuỗi.

Giải pháp khả dụng sau 3 lần thử

Xem lại bài tập

tập thể dục#python.m4.l4.e2
Nỗ lực: 0Đang tải…

Cho danh sách `values ​​= ['', 'x', 0, None, 1, []]`, xây dựng `truthy` CHỈ với các phần tử trung thực bằng cách sử dụng bool(). Đánh giá 'sự thật`.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Hiểu danh sách bằng filter bool(v) (hoặc chỉ 'if v').

Giải pháp khả dụng sau 3 lần thử

Thử thách bổ sung

tập thể dục#python.m4.l4.e3
Nỗ lực: 0Đang tải…

Cho danh sách các chuỗi \`string_numbers = ["1", "2", "3"]\`, hãy chuyển đổi từng phần tử thành một số nguyên bằng cách sử dụng \`int()\` và tổng hợp chúng lại với nhau để thu được giá trị \`6\`. Lưu tổng vào \`sum_val\` và đánh giá nó.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Truy cập các phần tử theo chỉ mục, ví dụ: int(string_numbers[0]) và tính tổng chúng.

Giải pháp khả dụng sau 3 lần thử