Python là một ngôn ngữ được gõ động. Ở đây, trình thông dịch dự đoán kiểu dữ liệu của biến Python dựa trên loại giá trị được gán cho biến đó
Khi bạn lấy đầu vào của người dùng bằng Python, nó luôn được nhận dưới dạng một chuỗi. Nó được lấy dưới dạng một chuỗi, cho dù đầu vào là số nguyên, danh sách, số thập phân hay số khác. Do đó, bạn phải chuyển đổi rõ ràng chuỗi thành giá trị mong muốn để tiến hành các thao tác cần thiết trên chuỗi đó. Điều này còn được gọi là Chuyển đổi loại
Chuyển đổi loại có thể được thực hiện cho các loại dữ liệu khác nhau, như chuyển đổi số nguyên thành chuỗi hoặc ngược lại. Trong bài viết này, chúng ta sẽ thảo luận về các phương pháp chuyển đổi một chuỗi thành double trong Python
Nhưng trước khi tiếp tục, hãy tìm hiểu về chuỗi và nhân đôi trong Python
Nhân đôi trong Python là gì?
Theo tiêu chuẩn IEEE 754, tất cả các nền tảng biểu thị số float Pyhton dưới dạng giá trị "độ chính xác kép" 64 bit. [Có vẻ giống với double trong ngôn ngữ C]. Python không có kiểu dữ liệu kép dựng sẵn [int, string và float là các kiểu dữ liệu dựng sẵn]
Nhưng nó bao gồm kiểu dữ liệu float, đại diện cho một giá trị dấu chấm động [nhưng ở đây với độ chính xác cao hơn]. Nó cho phép bạn đếm gấp đôi vì float cũng được biểu thị bằng dấu thập phân
Sự khác biệt giữa float và double là gì? . Một double chứa 15 chữ số thập phân chính xác và chiếm 64 bit. Ngoài ra, float có độ chính xác thấp hơn gấp đôi
Hãy lấy một ví dụ về double trong Python
# Program: Double in Python # a double data type num = 45.3365859965333 print[num, " type: ", type[num]] # a float variable f = 45.4564 print[f, " type: ", type[f]]
đầu ra
45.3365859965333 type: 45.4564 type:
Lưu ý cách trong Python cả hai loại đều hiển thị 'float', ngay cả khi độ chính xác của cả hai số là khác nhau
Chuỗi trong Python là gì?
Chuỗi là kiểu dữ liệu thường được sử dụng nhất trong bất kỳ ngôn ngữ nào. Đó là một dãy ký tự [bao gồm số, bảng chữ cái, ký tự đặc biệt và cả khoảng trắng]. Trong Python, bất kỳ chuỗi ký tự nào được đặt trong dấu ngoặc kép [đơn hoặc kép] đều là một chuỗi
Hãy lấy một ví dụ
# Program: String in Python # a character char = "m" print[char, " type: ", type[char]] # sequence in double quotation string = "Convert String to Double in Python" print[string + " type: ", type[string]] # sequence in single quotation s = "FavTutor" print[s + " type: ", type[s]]
đầu ra
m type: Convert String to Double in Python type: FavTutor type:
Từ đầu ra, bạn có thể lưu ý rằng kiểu dữ liệu là "chuỗi" cho mỗi biến mẫu được tạo ở trên
Cần phải chuyển đổi một chuỗi thành gấp đôi là gì?
Như đã đề cập trước đó, Python chấp nhận đầu vào ở dạng chuỗi, có thể là số nguyên hoặc số khác. Hãy kiểm tra tuyên bố
# Program: Taking input from Python num = input["Enter a number: "] print["The input is: ", num, " and type: ", type[num]]
đầu ra
Enter a number: 45.879841313 The input is: 45.879841313 and type:
Bây giờ bạn đã xác nhận kiểu dữ liệu của đầu vào. Như bạn đã biết, kiểu dữ liệu phải tương thích với thao tác đang được thực hiện, nếu không nó sẽ tạo ra lỗi
Vì vậy, trong khi bạn đang ở đó, hãy xác nhận điều này
num = input["Enter a number: "] print["The input is: ", num, " and type: ", type[num]] # operating on input print[num - 10]
đầu ra
Enter a numbers: 45.48984661 The input is: 45.48984661 and type: Traceback [most recent call last]: File ".\temp.py", line 5, in print[num - 10] TypeError: unsupported operand type[s] for -: 'str' and 'int'
Lưu ý rằng TypeError được tạo ra cũng mô tả rằng thao tác [thường được thực hiện với int hoặc float] không được định dạng đầu vào của bạn hỗ trợ. Do đó nảy sinh nhu cầu chuyển đổi chuỗi sang các kiểu dữ liệu khác
Làm cách nào để chuyển đổi chuỗi thành chuỗi kép trong Python?
Có nhiều phương pháp để Chuyển đổi kiểu chuỗi thành chuỗi kép trong python. Hãy kiểm tra một vài trong số họ
01] Sử dụng float[]
Bạn có thể chuyển đổi một chuỗi thành double trong Python bằng phương thức float[]. Phương thức này chỉ yêu cầu một tham số và trả về đầu vào là float [ở đây là double]. Đây cũng là một phương pháp phổ biến để chuyển đổi một chuỗi thành float trong Python. [Hãy nhớ rằng Python sử dụng float như double. ]
Ví dụ
________số 8
đầu ra
Enter a number: 45.1365464 The input is: 45.1365464 num: 45.1365464 type: Performing operation: 35.1365464
Tôi đã chuyển đổi kiểu và cũng mô tả việc sử dụng kiểu dữ liệu đã chuyển đổi bằng cách thực hiện thao tác trừ. Lưu ý rằng hàm float chỉ hoạt động với các biểu diễn dấu phẩy động. Nó trả về lỗi khi một biểu diễn không float được truyền cho nó dưới dạng tham số. Hãy cùng kiểm tra nào
45.3365859965333 type: 45.4564 type:0
đầu ra
45.3365859965333 type: 45.4564 type:1
Bạn có thể thay thế ',' bằng ' khác. ' hoặc sử dụng try-catch để bắt lỗi này
Mặc dù float[] rất dễ sử dụng và dễ nhớ, nhưng hãy lưu ý rằng nếu số chuỗi chứa hơn 15 chữ số có nghĩa, thì float[] sẽ làm tròn số đó
Ví dụ
45.3365859965333 type: 45.4564 type:2
đầu ra
45.3365859965333 type: 45.4564 type:3
Lưu ý cách số được làm tròn trong đầu ra. Để tránh sự bất thường này, Python cung cấp cho chúng ta một hàm khác, được gọi là hàm Decimal[]. Hãy tìm hiểu thêm về nó
02] Sử dụng số thập phân[]
Mô-đun thập phân trong Python cung cấp hàm Decimal[] chuyển đổi một chuỗi thành gấp đôi trong Python. Nó lấy chuỗi làm tham số đầu vào và chuyển đổi nó thành kiểu thập phân. Điều này có thể lưu trữ và đại diện cho số với độ chính xác cần thiết
Hãy xem cách sử dụng hàm Decimal[] của Python để chuyển đổi một chuỗi thành số có độ chính xác kép
45.3365859965333 type: 45.4564 type:4
đầu ra
45.3365859965333 type: 45.4564 type:5
Lưu ý cách hàm Decimal[] không làm tròn các giá trị đối với biểu diễn số thực có hơn 15 chữ số có nghĩa
Ngoài việc chuyển chuỗi thành double trong Python, hàm Decimal[] còn được gọi để mang lại độ chính xác cho số, chẳng hạn
45.3365859965333 type: 45.4564 type:6
đầu ra
45.3365859965333 type: 45.4564 type:7
Hàm Decimal[] đã cung cấp độ chính xác cao hơn cho số đã được trình bày
Ngoài ra, tương tự như hàm float[], hàm Decimal[] cũng chỉ nhận các biểu diễn float hợp lệ của một số. Đó là lỗi Hoạt động không hợp lệ khi một đối số như 1.465. 6556 được chuyển đến nó như một đối số
03] Sử dụng gấu trúc. to_numeric[]
Khi làm việc với Python, bạn cũng sẽ bắt gặp DataFrames. DataFrames là một trong những cấu trúc dữ liệu được sử dụng phổ biến nhất trong phân tích dữ liệu hiện đại. Điều này đưa chúng ta đến một cách sử dụng khác của việc chuyển đổi chuỗi thành gấp đôi trong Python
Trước khi chuyển sang chuyển đổi, chúng ta hãy xem DataFrames là gì? . Chúng cung cấp một cách linh hoạt và dễ dàng để lưu trữ và làm việc với dữ liệu
Bây giờ, bạn đã học về DataFrames, hãy chuyển sang tạo một khung dữ liệu trong Python
45.3365859965333 type: 45.4564 type:8
Bạn cần nhập mô-đun của gấu trúc để tạo Dataframe này. Hai chức năng được sử dụng ở đây để tạo khung dữ liệu
- Khung dữ liệu[]. Chức năng này được sử dụng để tạo một khung dữ liệu
- dtypes. Điều này trả về một loạt kiểu dữ liệu của mỗi cột
Ở đây, df là tên của biến được dùng để tham chiếu khung dữ liệu của chúng tôi
đầu ra
45.3365859965333 type: 45.4564 type:9
Các dtypes trả về 'đối tượng' dtype cho các cột có các loại hỗn hợp. Lưu ý rằng dtype là một thuộc tính của DataFrame
Bây giờ bạn đã tạo khung dữ liệu, hãy chuyển sang chuyển đổi một trong các cột này thành float. Vì cột "Phí" không phải là loại hỗn hợp. hãy thử chuyển đổi cái này thành float trong Python-
Hàm to_numeric[] chuyển đổi đối số đã truyền thành kiểu số. Theo mặc định, nó trả về 'int64' hoặc 'float64' theo dữ liệu được cung cấp
# Program: String in Python # a character char = "m" print[char, " type: ", type[char]] # sequence in double quotation string = "Convert String to Double in Python" print[string + " type: ", type[string]] # sequence in single quotation s = "FavTutor" print[s + " type: ", type[s]]0
đầu ra
# Program: String in Python # a character char = "m" print[char, " type: ", type[char]] # sequence in double quotation string = "Convert String to Double in Python" print[string + " type: ", type[string]] # sequence in single quotation s = "FavTutor" print[s + " type: ", type[s]]1
Lưu ý cách dtype cho cột "Phí" đã thay đổi từ 'int64' thành 'float64'. [Mặc dù để được chuyển đổi thành double, đây phải là float64 hoặc float128, nó cũng có float32 đi kèm. ]
Để biết thêm về các cách chuyển đổi chuỗi thành Python, hãy xem 6 cách chuyển đổi chuỗi thành nổi trong Python
Phần kết luận
Trong bài viết này, chúng ta đã thảo luận về cách chuyển đổi chuỗi thành chuỗi kép trong Python. Ngoài ra, chúng tôi đã hiểu rõ hơn về DataFrames trong Pandas và đã chuyển đổi dtype của một cột thành gấp đôi [float64]. Nếu bạn cần độ chính xác cao hơn, bạn cũng có thể sử dụng float128 của numpy
Như đã đề cập trước đó, float của Python có độ chính xác loại kép, do đó bạn cũng có thể chuyển đổi chuỗi thành float trong Python để đạt được mục đích