Cách chuyển đổi chuỗi thành int trong Python (Truyền và cơ sở an toàn)
Tìm hiểu cách chuyển đổi một chuỗi thành số nguyên trong Python bằng hàm int(). Xử lý lỗi một cách an toàn và chuyển đổi số từ nhị phân, bát phân hoặc thập lục phân.
Tổng quan
Chuyển đổi biểu diễn chuỗi của một số thành số nguyên thực tế là một nhiệm vụ thường xuyên trong quá trình phát triển ứng dụng. Quá trình này, thường được gọi là truyền, rất cần thiết khi xử lý thông tin đầu vào thô của người dùng, đọc tệp cấu hình, phân tích cú pháp đối số từ giao diện dòng lệnh hoặc thu thập dữ liệu từ web. Vì Python là ngôn ngữ có kiểu dữ liệu mạnh nên bạn không thể thực hiện các phép toán trên biểu diễn chuỗi số mà không truyền chúng trước.
Hàm tạo `int()` có sẵn của Python là công cụ chính cho việc chuyển đổi này. Ở dạng đơn giản nhất, việc truyền một chuỗi số (như `"42"`) tới `int()` trả về số nguyên tương đương của nó. Tuy nhiên, việc truyền một chuỗi không phải là số (như `"hello"`) hoặc một chuỗi biểu thị số dấu phẩy động (như `"3.14"`) sẽ tạo ra `ValueError`. Để viết các ứng dụng mạnh mẽ, thông lệ tiêu chuẩn là bao bọc các hoạt động truyền trong khối `try-ngoại trừ` để xử lý một cách linh hoạt các đầu vào không mong muốn.
Ngoài chuyển đổi cơ sở 10 tiêu chuẩn, hàm `int()` chấp nhận đối số `base` tùy chọn. Điều này cho phép bạn dễ dàng phân tích cú pháp các chuỗi biểu thị số trong các hệ thống số khác nhau, chẳng hạn như nhị phân (cơ số 2), bát phân (cơ số 8) hoặc thập lục phân (cơ số 16). Ví dụ: `int("1010", 2)` phân tích chính xác chuỗi nhị phân thành số nguyên thập phân `10`, làm cho nó trở thành một công cụ linh hoạt cho lập trình toán học chuyên biệt hoặc cấp độ thấp hơn.
Đầu ra mã & thực thi
Tập lệnh này minh họa việc chuyển đổi một chuỗi thành số nguyên, xử lý các ngoại lệ và chuyển đổi các biểu diễn cơ sở khác nhau.
# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")
# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
result = int(invalid_str)
except ValueError:
print(f"Could not convert '{invalid_str}' to an integer.")
# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255Triển khai từng bước
- Truyền chuỗi số vào hàm int() có sẵn.
- Bao bọc các hoạt động truyền của bạn trong các khối try...ngoại trừ ValueError để xử lý các định dạng không hợp lệ.
- Cung cấp đối số thứ hai (ví dụ: base=16) để chuyển đổi các giá trị chuỗi được viết bằng các cơ số khác.
Câu hỏi thường gặp
Làm cách nào tôi có thể chuyển đổi chuỗi float như '12,34' thành số nguyên?
Trước tiên, bạn phải chuyển đổi nó thành float, sau đó thành int: int(float("12.34")). Gọi int("12.34") trực tiếp gây ra ValueError.
Làm cách nào để kiểm tra xem một chuỗi có thể được chuyển đổi thành int một cách an toàn không?
Bạn có thể sử dụng phương thức chuỗi .isdigit() nhưng lưu ý rằng nó trả về Sai cho các dấu âm hoặc khoảng trắng. Khối thử ngoại trừ là cách mạnh mẽ nhất.
Chủ đề liên quan
Tìm hiểu các kỹ thuật định dạng chuỗi tốt nhất trong Python. So sánh các chuỗi f, định dạng() và định dạng phần trăm hiện đại với các ví dụ về mã.
Cách xử lý ngoại lệ trong PythonTìm hiểu cách xử lý các ngoại lệ trong Python bằng cách sử dụng các khối thử, ngoại trừ, khác và cuối cùng. Viết mã Python không có lỗi và chống lỗi.
Tài nguyên Python được đề xuất
Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.
Chuỗi Python
Thao tác chuỗi chính trong Python. Tìm hiểu các phương pháp chuỗi, kỹ thuật cắt, nối và định dạng với các ví dụ mã rõ ràng, có thể thực thi được.
Bảng cheat phương thức chuỗi Python
Hướng dẫn tham khảo đầy đủ về thao tác chuỗi Python. Làm chủ định dạng, tìm kiếm, phân tách, thay thế và kiểm tra thuộc tính chuỗi.
Mẫu thiết kế trang trí Python và mẫu thiết kế trang trí: Sự khác biệt chính
So sánh các trình trang trí Python và mẫu thiết kế trang trí cổ điển. Hiểu sự khác biệt giữa gói hàm thời gian định nghĩa và thành phần đối tượng động thời gian chạy với mã có thể chạy được.