Chuyển đổi NoneType thành chuỗi Python

Lỗi Loại có thể xảy ra nếu loại đối tượng không phải là thứ mà trình thông dịch Python mong muốn thấy. Lỗi này là một lỗi phổ biến của các nhà phát triển mới bắt đầu là sử dụng toán tử '+' giữa các giá trị của các loại không tương thích. Thông báo lỗi này Không thể chuyển đổi đối tượng 'int' thành str hoàn toàn rõ ràng, khi nối chuỗi với số nguyên - bạn không thể nối trực tiếp chuỗi và số nguyên với nhau. Vì vậy, để giải quyết vấn đề này, bạn phải phân tích rõ ràng số nguyên thành một chuỗi bằng hàm tích hợp str()


Chuyển đổi NoneType thành chuỗi Python

thí dụ

đầu ra

TypeError được tạo vì '+' (bổ sung) không hoạt động giữa một số nguyên và một chuỗi. Không giống như nhiều ngôn ngữ lập trình khác hiện có, Python không ngầm định kiểu số nguyên (hoặc số float) thành chuỗi khi nối với chuỗi. May mắn thay, Python có sẵn hàm str() sẽ chuyển đổi tham số được truyền vào thành định dạng chuỗi

Có 3 cách để giải quyết vấn đề này

  1. print("Tổng số ngày. " + str(ngày))
  2. print("Tổng số ngày. ", ngày)
  3. print("Tổng số ngày. {}". định dạng (ngày))

Trình thông dịch Python đọc toàn bộ dòng và nhận thấy việc sử dụng '+'. Python xem xét loại toán hạng bên trái, "Tổng số ngày. " và kết luận rằng đó là một 'chuỗi'. Sau đó, nó xem xét loại toán hạng bên phải (ngày), là một số nguyên. Python sau đó tạo ra một lỗi, bởi vì nó không biết cách thêm chuỗi và số nguyên. Do đó, bạn có thể chuyển đổi số nguyên thành chuỗi một cách rõ ràng bằng hàm str(). Việc chuyển đổi thành một chuỗi được thực hiện với hàm str() dựng sẵn, về cơ bản gọi phương thức __str__() của tham số của nó

Lưu ý rằng khi xảy ra sự cố trong khi trình thông dịch Python chạy tập lệnh của bạn, trình thông dịch sẽ dừng và sẽ tạo một dấu vết ngược (hoặc dấu vết ngăn xếp) hiển thị tất cả các chức năng đang chạy khi xảy ra lỗi. Lỗi này Không thể chuyển đổi đối tượng 'int' thành str hoàn toàn xảy ra khi một hàm hoặc toán tử không thể được áp dụng cho các giá trị đã cho, do thực tế là loại giá trị không phù hợp. Điều này có thể xảy ra khi hai loại không tương thích được sử dụng cùng nhau

Chuyển đổi kiểu Python


Chuyển đổi NoneType thành chuỗi Python

Quá trình chuyển đổi giá trị của một loại dữ liệu (số nguyên, chuỗi, v.v. ) sang kiểu dữ liệu khác được gọi là chuyển đổi kiểu. Thêm vào. Chuyển đổi kiểu Python

Nó là một đối tượng Python đặc biệt không có giá trị. Nó được sử dụng để biểu thị sự vắng mặt của một giá trị hoặc để biểu thị rằng không có dữ liệu nào

Sau đây là những cách mà chúng ta có thể chuyển đổi một NoneType thành một số nguyên hoặc chuỗi

nội dung

  • 1 Cách 1. Sử dụng toán tử Boolean OR
    • 1. 1 Điểm 1. Hiểu cách hoạt động của toán tử OR boolean
    • 1. 2 Điểm 2. Python coi một số giá trị là sai
    • 1. 3 Một ví dụ thú vị hơn
  • 2 Cách 2. Sử dụng điều kiện if
  • 3 Kết luận

Phương pháp 1. Sử dụng toán tử Boolean OR

Trước hết, hãy xem một số ví dụ

var1 = None
converted_var1 = 99 or var1
print(converted_var1)

đầu ra

99
var2 = None
converted_var2 = "Fort Ternan" or var2
print(converted_var2)

đầu ra

Fort-Ternan

Trong ví dụ trên, các biến var1 và var2 giữ Không có Loại. Sử dụng toán tử OR, chúng ta có thể chuyển đổi các Không có Loại này thành một số nguyên hoặc một chuỗi do chúng ta chọn

Nhưng tại sao điều này làm việc?

Điểm 1. Hiểu cách toán tử OR boolean hoạt động

Cú pháp chung của toán tử OR là

biểu thức1 và biểu thức2

ở đâu

biểu thức1biểu thức2 biểu thức1 hoặc biểu thức2TrueTrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalseBảng 1. Cách sử dụng toán tử OR hoạt động.

điểm 2. Python coi một số giá trị là sai

Những giá trị này bao gồm. 0, Không, Sai, [ ] (danh sách trống), ( ) (loại trống), { } (từ điển trống), set() (tập hợp trống) và phạm vi (0) (phạm vi trống)

Khi các quy tắc trong Bảng 1 ở trên được sử dụng với Điểm 2, rõ ràng là “Không hoặc 99” cho kết quả là 99 vì Không được hiểu là giá trị sai và 99 là giá trị đúng. Dưới đây là nhiều ví dụ hơn

val1 = None or 7.89 # false or true yields true (7.89)
print("val1: ", val1)
val2 = None or [] # false or false yields false
print("val2: ", val2)
val3 = 456 or -8.3 # true or true yields true
print("val3: ", val3)
val4 = 2.5 or None #true or false yields true
print("val4: ", val4)

đầu ra

val1:  7.89
val2:  [ ]
val3:  456
val4:  2.5

Ghi chú. “x hoặc y” ước lượng thành x nếu x đúng; . Nói cách khác, nếu x là true, nó được trả về bất kể giá trị của y, nhưng nếu x sai, y được trả về bất kể giá trị của nó

Một ví dụ thú vị hơn

Giả sử chúng ta muốn chuyển đổi tất cả các phần tử trong danh sách sau thành số nguyên. [2. 36, -1. 87, Không có, 9. 6]. Cách đầu tiên có thể là lặp qua danh sách chuyển đổi từng mục như sau

list1 = [2.36, -1.87, None, 9.6]
# initialize an empty list
list2 = []
for item in list1:
	# if the value is false, then we convert 99 into int, which is still 99
	# this captures the None value in list1.
	result = int(item or 99)
	# append the result to list2
	list2.append(result)
print(list2)

đầu ra

[2, -1, 99, 9]

Ngoài ra, chúng ta có thể sử dụng hiểu danh sách như hình dưới đây

________số 8

đầu ra

[2, -1, 99, 9]

Như được hiển thị trong đầu ra, giá trị Không có được chuyển đổi thành 99 vì Không có hoặc 99 ước tính thành 99

Phương pháp 2. Sử dụng điều kiện if

Trong phương pháp này, chúng tôi sử dụng câu lệnh if để kiểm tra xem biến có giữ giá trị Không hay không và nếu đúng như vậy, chúng tôi sẽ gán lại một số nguyên hoặc một chuỗi như trong các ví dụ sau

99
0

đầu ra

99

Nếu var3 là Không có (đúng như vậy), chúng tôi gán lại biến var3 thành giá trị mới là 99, nếu không, chúng tôi đặt nó thành giá trị ban đầu của var3. Chúng ta có thể viết mã giống như một lớp lót như trong các ví dụ sau

99
2

đầu ra

99
3

Đây là cách chúng ta có thể sử dụng câu lệnh if để chuyển đổi từng phần tử của danh sách sau thành một số nguyên. [2. 36, -1. 87, Không có, 9. 6] sử dụng một lớp lót

99
4

đầu ra

99
5

Trong mã, chúng tôi lặp qua danh sách 1 và tại mỗi lần lặp kiểm tra xem phần tử có phải là Không nếu nó được đặt thành 99 và nếu không chuyển nó thành một số nguyên bằng cách sử dụng hàm int()

Sự kết luận

Một NoneType có thể được chuyển đổi thành một số nguyên hoặc một chuỗi theo hai cách mà chúng ta đã thảo luận trong bài viết này – sử dụng toán tử boolean OR hoặc bằng câu lệnh if. Trong cả hai trường hợp, bạn có thể sử dụng hàm int() để chuyển kết quả thành một số nguyên nếu cần

Tại sao tôi nhận được NoneType trong Python?

NoneType trong Python là kiểu dữ liệu đơn giản chỉ ra rằng một đối tượng không có giá trị/có giá trị là Không có . Bạn có thể gán giá trị Không có cho một biến nhưng cũng có những phương thức trả về Không có.

Không có Loại nào giống như Không có?

NoneType là loại đối tượng Không có . Chỉ có một đối tượng như vậy. Do đó, "một đối tượng Không" và "đối tượng Không" và "Không" là ba cách tương đương để nói cùng một điều.

Không có giống như Không có Loại trong Python?

Từ khóa Không được sử dụng để xác định giá trị rỗng hoặc không có giá trị nào. Không có gì không giống như 0, Sai hoặc một chuỗi rỗng. None là kiểu dữ liệu của riêng nó (NoneType) và chỉ có thể là None .

Không có Type sai Python?

None là một singleton trong Python. Loại của nó là Không có Loại. Nó được sử dụng để xác định một giá trị null và chỉ Không có thể là Không – nó không bằng 0, Sai hoặc một chuỗi rỗng .