Một số nguyên có thể là null trong python không?

Một điều tuyệt vời đã xảy ra vào năm pandas 0.24.0; . Cuối cùng, có thể thiếu các giá trị trong cột int64 của bạn. Trước bản phát hành này, mọi giá trị bị thiếu sẽ khiến kiểu dữ liệu của cột thay đổi thành float64. Vấn đề này đã tồn tại trong một con hẻm tối trong nhiều năm sẵn sàng mang đến cho người dùng pandas mới một sự rung chuyển nhanh chóng

Kiểm tra nó ra

Đây là một ví dụ về cột int64 biến thành float64. Có một bộ customers và một bộ orders. Tuy nhiên, không phải khách hàng nào cũng có đơn hàng. Khi các bộ dữ liệu được hợp nhất với nhau, có một hàng dành cho khách hàng 2 không có 0.24.00

Trong orders kiểu dữ liệu của 0.24.00 là int64. Dưới đây trong 0.24.04, nó thay đổi thành float64. Ngoài ra, hãy lưu ý rằng các giá trị 0.24.00 có thêm “. 0” được thêm vào cuối để chỉ ra rằng cột bây giờ là float64

Điều này thật bất ngờ và khó hiểu. Lý do mà pandas thay đổi int64 thành float64 là do giá trị bị thiếu trong cột. Vì pandas không thể chắc chắn rằng giá trị bị thiếu không phải là số thập phân, nên nó sẽ tự động chuyển đổi kiểu dữ liệu của cột. Mặc dù cách tiếp cận này giúp thao tác dữ liệu an toàn hơn, nhưng bạn sẽ ngạc nhiên khi lần đầu tiên nhìn thấy nó và nó có thể gây ra lỗi mà dường như không có lý do

Một giải pháp dễ dàng

pandas 0.24.0 đã thêm một cách giải quyết vấn đề tuyệt vời. Bây giờ có kiểu dữ liệu pandas4 cho phép giá trị null. Huzzah. Chúng ta hãy xem loại dữ liệu mới đang hoạt động

Sự khác biệt duy nhất với mã này là nó đặt loại dữ liệu của 0.24.00 là pandas6 bằng cách sử dụng pandas7. Trong pandas8 được hợp nhất, 0.24.00 vẫn là một pandas6 mặc dù có các giá trị bị thiếu. Ngoài ra, hãy chú ý đến việc thiếu “. 0” sau các giá trị 0.24.00. Sửa chữa đơn giản này giải quyết vấn đề

sự giới thiệu

Loại int642 mới giải quyết vấn đề cột int64 thay đổi một cách bí ẩn thành float64 bất cứ khi nào thiếu giá trị. Tôi khuyên bạn nên khai báo rõ ràng trường số nguyên là loại pandas6 bất cứ khi nào bạn cần trường dữ liệu số nguyên. Điều này sẽ ngăn chặn bất kỳ bất ngờ không mong muốn nào trong các bước xử lý dữ liệu sau này

Tìm kiếm Null trong Python? . Tuy nhiên, Python có Không có, tương đương gần nhất với Null từ các ngôn ngữ lập trình khác. Hãy khám phá đối tượng Không có của Python

Nếu bạn đã quen thuộc với các ngôn ngữ lập trình khác như Java, JavaScript hoặc PHP, bạn có thể thắc mắc liệu Python có giá trị Null hoạt động giống như Null trong các ngôn ngữ khác không

Câu trả lời ngắn gọn là không có Null trong Python, nhưng có đối tượng Không có mà các lập trình viên Python sử dụng để xác định các đối tượng và biến null. Tuy nhiên, điều quan trọng là phải hiểu rằng mặc dù Không phục vụ một số mục đích giống như Null trong các ngôn ngữ khác, nhưng nó vẫn rất khác so với Null mà bạn có thể quen dùng.

Giá trị Null đặc biệt được sử dụng trong nhiều ngôn ngữ lập trình [e. g. C, Java, JavaScript, PHP] biểu thị một con trỏ trống, một giá trị không xác định hoặc một biến chưa được khởi tạo. Thông thường, Null được định nghĩa là 0 trong các ngôn ngữ này. Trong Python, Không ai có thể phục vụ các mục đích giống như Null nhưng nó không được xác định là 0 hoặc bất kỳ giá trị nào khác. Không ai trong Python là một đối tượng và là công dân hạng nhất

Trong bài viết này, tôi sẽ thảo luận về ý nghĩa của điều này và cách bạn có thể sử dụng Không có gì của Python một cách hiệu quả. Sau đó, bạn có thể bắt đầu thực hành Python ngay với Kiến thức cơ bản về Python của chúng tôi. Khóa học Phần 1, bao gồm các khái niệm chính ở cấp độ đầu vào với 95 bài tập tương tác

Không có gì trong Python. Lặn sâu

Hãy bắt đầu bằng cách xác định một vài điều mà Không có thì không. Nó không giống như Sai, mặc dù đối tượng Không có là sai [e. g. đánh giá là sai trong phép toán Boolean]. Ngoài ra, Không có không phải là một số không hoặc một chuỗi rỗng. Mọi so sánh với đối tượng Không trả về Sai, ngoại trừ so sánh Không với chính nó

Để giúp bạn hiểu đối tượng Không ai trong Python là gì, chúng ta sẽ xem qua một số trường hợp sử dụng, bao gồm

  • Gán Không cho một biến
  • Thử nghiệm cho Không
  • Nhận Không có đầu ra chức năng
  • Sử dụng Không làm tham số mặc định

Gán một đối tượng Không có cho một biến

Một số ngôn ngữ lập trình cho phép giới thiệu các biến mới thông qua khai báo mà không cần gán giá trị ban đầu rõ ràng. Giá trị ban đầu mặc định trong những trường hợp như vậy thường là Null

Trong Python, mọi thứ hoạt động rất khác. Để giới thiệu một biến mới, bạn cần gán một giá trị nhất định cho biến đó, giá trị này có thể là đối tượng Không có. Nếu bạn không gán bất kỳ giá trị nào cho một biến, biến đó được coi là không xác định và bạn sẽ nhận được một

None
6 khi đề cập đến nó

Ví dụ: hãy thử in một biến không xác định so với. một biến đã được gán một đối tượng Không có

print [employees]

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]

đầu ra

None

Tuy nhiên, một đối tượng Không có thể được sửa đổi, được tham chiếu bằng các phương thức Python hoặc được sử dụng với các toán tử. Nếu bạn đề cập đến một đối tượng Không có trong những trường hợp như vậy, bạn sẽ nhận được một

None
7. Ví dụ

employees = None
print[employees + 1]

đầu ra

TypeError Traceback [most recent call last]
 in []
----> 1 print[employees + 1]
TypeError: unsupported operand type[s] for +: 'NoneType' and 'int'

Như bạn có thể thấy trong quá trình truy nguyên, lỗi xảy ra do tham chiếu đến một đối tượng Không có

Kiểm tra nếu một biến là không có

Bạn có thể kiểm tra xem một biến có được gán Không hay không bằng cách sử dụng toán tử

None
8 và
None
9

employees = None
if employees is None:
    print["It is a None object."]
else:
    print["It is not a None object "]

đầu ra

It is a None object.

Lưu ý rằng điều quan trọng là sử dụng các toán tử nhận dạng [như

None
8 và
None
9] với các đối tượng Không có trong Python chứ không phải các toán tử đẳng thức như
employees = None
print[employees + 1]
2 và
employees = None
print[employees + 1]
3. Vấn đề là các toán tử đẳng thức có thể đưa ra kết quả sai khi bạn đang so sánh các đối tượng do người dùng xác định sẽ ghi đè chúng. Đây là một ví dụ

class EquityVsIdentity[]:
    def __eq__ [self, other]:
        return True

check = EquityVsIdentity[]
print[check == None]
print[check is None]

đầu ra

True
False

Ở đây, toán tử đẳng thức [“

employees = None
print[employees + 1]
2”] trả về câu trả lời sai vì nó bị ghi đè bởi một đối tượng do người dùng xác định, trong khi toán tử nhận dạng [
employees = None
print[employees + 1]
5] trả về kết quả đúng vì nó không thể bị ghi đè

Một điều thú vị khác cần lưu ý là đối tượng Không có gì là sai, bạn chỉ cần sử dụng câu lệnh if để kiểm tra xem biến đó có phải là Không có hay không

employees = None
if employees:
    print["It is not a None object."]
else:
    print["It is a None object."]

đầu ra

It is a None object.

Không có như một chức năng đầu ra

Trước hết, Không có là giá trị được trả về khi không có câu lệnh

employees = None
print[employees + 1]
6 trong một hàm. Hãy tạo một hàm không trả về bất kỳ giá trị nào và kiểm tra đầu ra của nó

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
1

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
2

Như bạn có thể thấy, hàm trên không trả về giá trị một cách rõ ràng. Python cung cấp một câu lệnh trả về ngầm định với giá trị trả về là Không có. Hãy xem hướng dẫn này về cách xác định hàm trong Python để tìm hiểu thêm về các trường hợp mà bạn có thể muốn hàm của mình thực hiện một số thao tác mà không trả về bất kỳ giá trị nào

Một số hàm trả về một đối tượng thực khi chúng có kết quả thực và Không có khi không có kết quả. Gói re để xử lý biểu thức chính quy trong Python có một số hàm như vậy

Bạn có thể kiểm tra xem hàm có trả về giá trị hay không bằng cách so sánh kết quả với Không. Ví dụ: hãy cùng khám phá đầu ra của hàm

employees = None
print[employees + 1]
7 của gói re khi không có kết quả khớp

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
3

đầu ra

Ở đây, tiếng Tây Ban Nha không nằm trong số ngôn ngữ mà người này nói. Do đó, khi tìm kiếm “tiếng Tây Ban Nha”, chúng tôi nhận được một đối tượng Không có. Chúng tôi đã kiểm tra và xác nhận rằng đầu ra của hàm

employees = None
print[employees + 1]
7 là Không có trong trường hợp này

Không có giá trị mặc định cho tham số tùy chọn

Cuối cùng, Không có gì thường được sử dụng làm giá trị mặc định cho tham số tùy chọn của hàm, đặc biệt khi bạn cần xử lý kiểu dữ liệu có thể thay đổi, chẳng hạn như danh sách. Nếu bạn đặt giá trị mặc định của tham số thành danh sách, danh sách này sẽ được cập nhật trong tất cả các lần gọi hàm tiếp theo mà không chỉ định tham số tùy chọn tương ứng – trong khi bạn thường muốn có một danh sách trống mới mỗi lần

Nó sẽ rõ ràng hơn sau một ví dụ. Chúng ta sẽ bắt đầu bằng cách tạo một hàm sử dụng danh sách làm giá trị mặc định cho tham số tùy chọn

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
4

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
5

Như bạn thấy, chúng ta đã tạo một hàm đặt một phần tử mới ở vị trí số 1 trong danh sách. Nó hoạt động tốt khi chúng tôi cung cấp tham số bắt đầu. Tuy nhiên, nếu chúng tôi không cung cấp tham số tùy chọn này, chúng tôi sẽ bắt đầu thấy hành vi không chính xác với mỗi lần gọi hàm mới

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
6

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
7

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
8

đầu ra

NameError Traceback [most recent call last]
 in []
----> 1 print [employees]
NameError: name 'employees' is not defined

employees = None
print [employees]
9

Vì danh sách là một loại đối tượng có thể thay đổi, chúng tôi nhận được một danh sách được cập nhật sau mỗi lần gọi hàm khi chúng tôi không chuyển một danh sách hiện có

Nếu bạn muốn có một danh sách mới với mỗi cuộc gọi, hãy cân nhắc sử dụng đối tượng Không có làm tham số mặc định

None
0

đầu ra

None
1

Trong chức năng này, chúng tôi kiểm tra xem danh sách bắt đầu có phải là Không có hay không; . Điều này đảm bảo rằng chúng tôi có hành vi chính xác khi chúng tôi không cung cấp danh sách bắt đầu cho chức năng

None
2

đầu ra

None
3

đầu ra

None
4

đầu ra

None
5

Bây giờ chúng tôi nhận được đầu ra chính xác, bất kể chúng tôi gọi hàm bao nhiêu lần. Đây chỉ là một ví dụ về cách một đối tượng Không có thể được sử dụng một cách hiệu quả làm giá trị mặc định cho tham số tùy chọn

Hãy thực hành Không có gì trong Python

Mặc dù Python không có giá trị Null như bạn có thể đã quen, nhưng nó có tất cả các công cụ cần thiết để xử lý các giá trị null. Hơn nữa, do cú pháp đơn giản và dễ làm theo của Python, bạn có thể học những điều cơ bản về Python rất nhanh chóng – có thể trong vòng chưa đầy một tháng. Điều quan trọng là thực hiện một cách tiếp cận có cấu trúc để nghiên cứu và thực hiện nhiều mã hóa

Nếu bạn chưa quen với Python, tôi khuyên bạn nên bắt đầu với khóa học Cơ bản về Python Phần 1. Trong 95 bài tập tương tác, bạn sẽ học cách chấp nhận thông tin đầu vào từ người dùng, sử dụng các biến và phép toán trong Python cũng như viết câu lệnh if, vòng lặp và hàm. Bạn cũng sẽ hiểu rõ hơn về loại Không. Bạn có thể đọc thêm về khóa học này trong bài viết tổng quan này

Khi bạn đã sẵn sàng để tìm hiểu thêm, hãy xem bài Học lập trình với Python. Nó bao gồm năm khóa học tương tác với hàng trăm thử thách mã hóa. Sau khi hoàn thành phần học tập này, bạn sẽ hiểu rõ về cấu trúc dữ liệu Python, bao gồm danh sách, bộ, từ điển và bộ dữ liệu. Bạn cũng sẽ cảm thấy thoải mái khi sử dụng các thuật toán và chức năng tích hợp chính, chẳng hạn như các thuật toán và chức năng được sử dụng để tìm kiếm và sắp xếp trong Python

Bạn có thể null một int?

Các kiểu nguyên thủy của Java [chẳng hạn như int , double hoặc float ] không thể có giá trị null mà bạn phải cân nhắc khi chọn biểu thức kết quả của mình .

Một biến có thể là null trong Python không?

Khai báo biến Null trong Python . A variable will only start life as null in Python if you assign None to it.

Giá trị null cho số nguyên là gì?

Null được sử dụng làm mặc định . g. , 0 cho số nguyên , false cho booleans], null là giá trị mặc định cho các loại tham chiếu.

Chủ Đề