Làm cách nào để chuyển đổi chuỗi thành số trong python 3?

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

  1. Khung dữ liệu[]. Chức năng này được sử dụng để tạo một khung dữ liệu
  2. 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

Tôi có thể chuyển đổi một chuỗi thành một số nguyên không?

Chúng ta có thể chuyển String thành int trong java bằng cách sử dụng Integer. phương thức parseInt[] . Để chuyển đổi String thành Integer, chúng ta có thể sử dụng Integer. valueOf[] phương thức trả về thể hiện của lớp Integer.

Làm thế nào chuỗi được chuyển đổi thành một số?

Chuỗi có thể được chuyển đổi thành số bằng cách sử dụng các phương thức int[] và float[] . Nếu chuỗi của bạn không có vị trí thập phân, rất có thể bạn sẽ muốn chuyển đổi nó thành số nguyên bằng cách sử dụng phương thức int[].

Làm cách nào để chuyển đổi chuỗi thành int trong Python mà không cần int?

Cách tiếp cận. Ý tưởng là sử dụng giá trị ASCII của các chữ số từ 0 đến 9 bắt đầu từ 48 – 57. Do đó, để thay đổi ký tự số thành số nguyên trừ 48 từ giá trị ASCII của ký tự sẽ ra chữ số tương ứng cho ký tự đã cho .

Cách nhanh nhất để chuyển đổi một chuỗi thành một số là gì?

Chuyển đổi chuỗi thành số là cực kỳ phổ biến. Cách dễ nhất và nhanh nhất [jsPerf] để đạt được điều đó là sử dụng toán tử + [cộng] . Bạn cũng có thể sử dụng toán tử - [trừ] loại chuyển đổi giá trị thành số nhưng cũng phủ định giá trị đó.

Chủ Đề