Tôi có một chuỗi có thể là số thập phân có tiền tố "0x" hoặc số thập phân không có tiền tố đặc biệt ngoại trừ dấu trừ. "0x123" nằm trong cơ sở 16 và "-298" nằm trong cơ sở 10.cách phân tích cú pháp thập phân thập phân hoặc thập phân trong Python
Làm cách nào để chuyển đổi thành int hoặc dài bằng Python?
Tôi không muốn sử dụng eval() vì nó không an toàn và quá mức cần thiết.
Tại sao eval không an toàn? Có phải những người tà ác sẽ lẻn mã vào những con số đó không? Ai có quyền truy cập vào các chuỗi đó? Họ có đáng tin cậy không? –
eval không an toàn vì nó cho phép thực thi mã tùy ý. Nếu bạn nhận được chuỗi từ một nguồn đáng tin cậy, nó vẫn không an toàn, nó chỉ xảy ra khi bạn dựa vào nguồn đáng tin cậy này để không tận dụng điều đó. Nếu bạn luôn kiểm soát chuỗi, tại sao nó lại là một chuỗi? –
Chương trình python của bạn có sẵn ở dạng nguồn - đó là "mã tùy ý", cũng vậy. Tại sao vẽ một đường thẳng giữa một bộ nguồn Python và một nguồn khác? Đánh giá không kém an toàn hơn khi chạy chương trình Python ngay từ đầu. –