Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

ในการเขียนโปรแกรม คุณอาจพบสถานการณ์ที่ตัวแปรไม่มีค่า อินสแตนซ์เหล่านี้มักแสดงด้วยค่าพิเศษที่เรียกว่า null ภาษาโปรแกรมหลายภาษา เช่น C, Java, JavaScript และ PHP มีค่า Null ในตัว แต่ Python ใช้วิธีที่แตกต่างกันเล็กน้อยในการแสดงตัวแปร Null

ใน Python ค่าเท่ากับ null คือไม่มี เป็นค่าคงที่พิเศษใน Python ที่แสดงถึงการไม่มีค่าหรือค่า Null เป็นอินสแตนซ์ของประเภทข้อมูลของตัวเองNoneType ซึ่งไม่เหมือนกับ 0, False หรือสตริงว่าง เนื่องจากเป็นประเภทข้อมูลของตัวเองซึ่งไม่แสดงค่าหรือไม่มีอ็อบเจกต์

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

หากคุณกำลังเรียนรู้ Python การเข้าใจแนวคิดของNoneใน Python เป็นสิ่งสำคัญ มันให้วิธีการสร้างโค้ดที่มีประสิทธิภาพที่จัดการกับกรณีขอบ ในขณะที่คุณสำรวจการเขียนโปรแกรม Python คุณจะพบกับสถานการณ์ต่างๆ ที่ไม่มีความจำเป็น

ในบทความนี้ เราจะมาดูกันว่าค่า null หรือไม่มีเลยคืออะไรใน Python เราจะพูดถึงตัวอย่างและกรณีการใช้งานเพื่อช่วยให้คุณเข้าใจแนวคิดของค่าว่าง แต่ก่อนอื่น มาทำความเข้าใจแนวคิดของค่า None หรือ Null ใน Python กันก่อน

สารบัญ

Null ใน Python คืออะไร

เพื่อให้เข้าใจค่า Null ใน Python คุณจะต้องเข้าใจสองแนวคิดต่อไปนี้:

  1. ความแตกต่างระหว่างไม่มีและ Null

  2. ไม่มีประเภท

1. ความแตกต่างระหว่างไม่มีและ Null

Null ในภาษาการเขียนโปรแกรมจำนวนมากใช้เพื่อระบุตัวชี้ว่างหรือค่าที่ไม่รู้จัก คุณสามารถกำหนดค่า Null เป็น 0 ในภาษาเหล่านี้

อย่างไรก็ตาม ใน Python แทนที่จะเป็น null คุณใช้คีย์เวิร์ด None เพื่อกำหนดวัตถุและตัวแปรว่าง ไม่มีให้บริการเพื่อวัตถุประสงค์บางอย่างเช่นเดียวกับ null ในภาษาอื่นๆ แต่เป็นเอนทิตีที่แตกต่างกันและไม่ได้กำหนดให้เป็น 0 หรือค่าอื่นใด

2. ไม่มีประเภท

ใน Python None เป็นโครงสร้างข้อมูลประเภทหนึ่งซึ่งจัดอยู่ในประเภทที่เรียกว่า NoneType เป็นพลเมืองชั้นหนึ่ง หมายความว่าคุณสามารถกำหนดให้กับตัวแปรได้ คุณยังสามารถส่งผ่านเป็นอาร์กิวเมนต์และส่งกลับเป็นผลลัพธ์

เมื่อคุณกำหนดค่าตัวแปร None ตัวแปรนั้นจะกลายเป็นวัตถุ NoneType ไม่มี ไม่เทียบเท่ากับสตริงว่าง ค่าบูลีน False หรือค่าตัวเลข 0 มันหมายถึงตัวแปร null หรือไม่มีอะไรเลย

ตอนนี้คุณเข้าใจคำศัพท์ที่เกี่ยวข้องกับ none แล้ว มาดูกันว่าคุณสามารถใช้ None กับกรณีการใช้งานต่างๆ ได้อย่างไร!

วิธีใช้ไม่มีใน Python

ใน Python คุณสามารถใช้ None กับกรณีการใช้งานต่างๆ ได้ ในส่วนนี้ เราจะดูกรณีการใช้งานที่สำคัญ 4 กรณีของ None ใน Python

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

โดยเฉพาะ เราจะพิจารณากรณีการใช้งานต่อไปนี้:

  1. การกำหนด None ให้กับตัวแปร

  2. ใช้ไม่มีเป็นพารามิเตอร์เริ่มต้น

  3. การตรวจสอบไม่มีด้วยตัวดำเนินการข้อมูลประจำตัว

  4. การจัดการค่าที่ขาดหายไป

เข้าเรื่องกันเลย!

1. การกำหนด None ให้กับตัวแปร

คุณสามารถกำหนด None ให้กับตัวแปรเพื่อระบุว่าไม่มีค่า

ตัวอย่างเช่น:

x = None

ไม่มีในที่นี้หมายความว่าไม่มีค่าของ x หรือยังไม่ได้กำหนดค่าที่ถูกต้อง

2. ใช้ไม่มีเป็นพารามิเตอร์เริ่มต้น

คุณสามารถใช้ None เป็นค่าพารามิเตอร์เริ่มต้นเพื่อกำหนดฟังก์ชันได้เช่นกัน สิ่งนี้มีประโยชน์เมื่อคุณต้องการอนุญาตอาร์กิวเมนต์ทางเลือกสำหรับพารามิเตอร์เริ่มต้นในฟังก์ชันของคุณ

รหัสต่อไปนี้แสดงวิธีใช้ None เป็นพารามิเตอร์เริ่มต้น:

def greet(name=None):
    if name is None:
        print("Hello, World!")
    else:
        print(f"Hello, {name}!")

# Call the function without providing a name
greet()

# Call the function with a name
greet("Alice")

เมื่อคุณเรียกใช้รหัสนี้ รหัสจะพิมพ์ว่า “Hello, World!” เมื่อคุณเรียกการทักทาย () โดยไม่มีข้อโต้แย้งใด ๆ แต่เมื่อคุณเรียกใช้การทักทาย () ด้วยข้อโต้แย้ง เช่นการทักทาย ("อลิซ") มันจะพิมพ์ว่า "สวัสดี อลิซ!" สิ่งนี้ทำให้ฟังก์ชันมีอาร์กิวเมนต์ที่เป็นทางเลือก

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

3. การตรวจสอบ None ด้วย Identity Operator

คุณสามารถใช้ ตัวดำเนินการ is identity เพื่อตรวจสอบว่าตัวแปรไม่มีหรือไม่ สิ่งนี้ทำให้คุณสามารถเปรียบเทียบได้ว่าตัวแปรสองตัวอ้างถึงวัตถุเดียวกันหรือไม่

ต่อไปนี้คือตัวอย่างที่แสดงวิธีใช้ตัวดำเนินการเอกลักษณ์:

# Define a variable with no value
var1 = None

# Define a variable with a value
var2 = "Hello, World!"

# Check if var1 is None
if var1 is None:
    print("var1 is None")
else:
    print("var1 is not None")

# Check if var2 is None
if var2 is None:
    print("var2 is None")
else:
    print("var2 is not None")

ในโค้ดนี้ var1 คือ None จะคืนค่า True เนื่องจาก var1 ได้รับการกำหนดค่าเป็น None ในทางกลับกัน var2 เป็น None จะคืนค่า False เนื่องจาก var2 มีค่าสตริง

ผลลัพธ์สำหรับสคริปต์ได้รับด้านล่าง:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

4. การจัดการค่าที่ขาดหายไป

คุณอาจพบข้อมูลที่มีค่าขาดหายไป คุณสามารถแสดงค่าที่ขาดหายไปเหล่านี้ด้วย None และจัดการตามนั้น

ต่อไปนี้คือตัวอย่างเมื่อต้องจัดการกับรายการตัวเลข:

# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]

def calculate_average(data):
    # Filter out None values using list comprehension
    valid_data = [value for value in data if value is not None]

    # Calculate average if valid_data is not empty
    average = sum(valid_data) / len(valid_data) if valid_data else None

    return average

# Call the function and print the result
print(calculate_average(data))

ฟังก์ชันนี้จะคำนวณผลรวมของค่าที่ไม่ใช่ไม่มีทั้งหมดในรายการ และหารด้วยจำนวนค่าที่ไม่ใช่ไม่มี ถ้าค่าทั้งหมดในรายการเป็นไม่มี ฟังก์ชันจะส่งกลับไม่มี

ผลลัพธ์ได้รับด้านล่าง:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

ด้วยการใช้ None และเทคนิคต่างๆ ที่กล่าวถึงข้างต้น คุณสามารถจัดการกับค่าที่ขาดหายไปใน Python ได้อย่างมีประสิทธิภาพ

To learn more about handling missing values in Python, check the following video out:

Some More Use Cases of None in Python

Apart from the use cases discussed in the section above, there are some other use cases of None as well. These use cases are not frequently used ones but are good to know and are useful in some scenarios.

In this section, we’ll look go over the following 3 use cases of None in Python:

  1. Using None in return statements

  2. Using None as flags

  3. Using None for custom objects

Let’s dive into it!

1. Using None as Return Statements

You can use None in return statements, particularly when a function completes its execution without finding a specific result.

For example, a function that searches for an element in a list can return None if the element is not found. The following code demonstrates using None as return value:

# Define a list
numbers = [10, 20, 30, 40, 50]

def find_in_list(lst, target):
    for i, value in enumerate(lst):
        if value == target:
            return i
    return None

# Search for a number in the list
print(find_in_list(numbers, 30))  
print(find_in_list(numbers, 60))

In this code, the find_in_list function iterates over the input list lst. If it finds the target value, it returns the index of that value. If it doesn’t find the target value after checking the entire list, it returns None.

The output is given below:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

2. Using None as Flags

You can also use None as a flag to indicate the state of a variable. For instance, you might use it to mark whether a value is uninitialized or to track a special condition in the program.

The following is an example of how you can use None as a flag:

def find_first_even_number(numbers):
    # Initialize the first_even_number to None
    first_even_number = None

    # Iterate over the list of numbers
    for number in numbers:
        # If we find an even number and first_even_number is still None
        if number % 2 == 0 and first_even_number is None:
            first_even_number = number
            break

    return first_even_number

numbers = [1, 3, 5, 7, 8, 10]

# Call the function and print the result
print(find_first_even_number(numbers))  # Outputs: 8

In this code, None is used as a flag to indicate that we haven’t found an even number in the list yet.

If first_even_number is still None after the loop, this means that there were no even numbers in the list.

If first_even_number is not None, it contains the first even number from the list.

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

3. Using None for Custom Objects

You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.

The following example demonstrates how you can use None for user-defined objects:

class Person:
    def __init__(self, name):
        self.name = name
        self.best_friend = None

    def set_best_friend(self, person):
        self.best_friend = person

    def get_best_friend_name(self):
        if self.best_friend is not None:
            return self.best_friend.name
        else:
            return None

# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')

# Alice's best friend is Bob
alice.set_best_friend(bob)

print(alice.get_best_friend_name())  

# Charlie doesn't have a best friend
charlie = Person('Charlie')

print(charlie.get_best_friend_name())  

In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.

The above code will output the following:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

Special Functions and Techniques for Null Object

ตอนนี้เราจะพูดถึงฟังก์ชันและเทคนิคพิเศษบางอย่างที่คุณสามารถใช้ได้เกี่ยวกับ NoneType และการจัดการค่า Null เราจะครอบคลุมสองส่วนย่อยหลัก:

  1. ฟังก์ชันรหัส

  2. ฟังก์ชัน Getattr

1. ฟังก์ชันรหัส

ฟังก์ชัน id ()ใน Python เป็นฟังก์ชันในตัวที่คืนค่าเอกลักษณ์ของวัตถุ ข้อมูลประจำตัวนี้เป็นจำนวนเต็มที่ไม่ซ้ำกันและคงที่ที่กำหนดให้กับวัตถุในช่วงอายุของมัน

สิ่งนี้ทำให้คุณสามารถแยกความแตกต่างระหว่างวัตถุที่มีที่อยู่หน่วยความจำต่างกัน ฟังก์ชันนี้มีประโยชน์อย่างยิ่งเมื่อทำงานกับออบเจกต์ NoneType เนื่องจากสามารถใช้เพื่อตรวจสอบการมีอยู่ของ None ในตัวแปรหรือนิพจน์

ต่อไปนี้คือตัวอย่างการใช้ ฟังก์ชัน id() :

a = None
b = None
c = 42

print(id(a))  # Output: some unique integer representing None
print(id(b))  # Output: same integer as id(a)
print(id(c))  # Output: different integer from id(a) and id(b)

ผลลัพธ์ของรหัสนี้ได้รับด้านล่าง:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

เนื่องจาก None เป็นพลเมืองชั้นหนึ่งใน Python จึงมีเอกลักษณ์เฉพาะของตนเอง ซึ่งหมายความว่าคุณสามารถใช้ ฟังก์ชัน id()เพื่อเปรียบเทียบตัวแปรกับ None โดยใช้เอกลักษณ์:

if id(a) == id(None):
    print("a is None")

ผลลัพธ์ได้รับด้านล่าง:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

2. ฟังก์ชัน Getattr

ฟังก์ชันgetattr()เป็นฟังก์ชัน Python ในตัวอีกฟังก์ชันหนึ่งที่ให้คุณเข้าถึงแอตทริบิวต์ของออบเจกต์ตามชื่อ

กำหนดวัตถุและสตริงgetattr()ส่งคืนค่าของแอตทริบิวต์ที่มีชื่อหรือไม่มีวัตถุหากไม่มีแอตทริบิวต์

ซึ่งจะเป็นประโยชน์สำหรับคุณในการจัดการค่า Null โดยเฉพาะอย่างยิ่งในกรณีที่คุณต้องเข้าถึงแอตทริบิวต์ที่อาจขาดหายไป

ต่อไปนี้คือตัวอย่างการใช้ฟังก์ชันgetattr()

class ExampleClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

example_obj = ExampleClass(3, 4)

# Access attribute using getattr
print(getattr(example_obj, "x"))  # Output: 3
print(getattr(example_obj, "z", None))  # Output: None

ในตัวอย่างข้างต้น เราใช้getattr()เพื่อเข้าถึงแอตทริบิวต์ x และพยายามเข้าถึงแอตทริบิวต์ z ที่ไม่มีอยู่จริง

ด้วยการระบุค่าเริ่มต้นเป็น None เราป้องกัน AttributeError และรับวัตถุ None แทน

ด้วยเหตุนี้ ฟังก์ชันนี้จึงช่วยให้เข้าถึงแอตทริบิวต์ได้อย่างปลอดภัยแม้ว่าจะมีออบเจกต์ว่างหรือแอตทริบิวต์ขาดหายไปก็ตาม

ผลลัพธ์ของรหัสนี้ได้รับด้านล่าง:

Null ใน Python: 7 ใช้เคสพร้อมตัวอย่างโค้ด

การเปรียบเทียบ Null ในภาษาการเขียนโปรแกรมอื่น

ในตอนต้นของบทความนี้ เราทำการเปรียบเทียบสั้นๆ ระหว่าง Null ใน Python และ Null ในภาษาโปรแกรมอื่นๆ

ในส่วนนี้ เราจะนำหัวข้อนี้ไปข้างหน้าและเปรียบเทียบ Null ในภาษาโปรแกรมยอดนิยมอื่นๆ กับ Null ใน Python สิ่งนี้จะช่วยให้คุณเข้าใจแนวคิดของ None ใน Python ได้ดีขึ้น หากคุณมาจากพื้นฐานการเขียนโปรแกรมที่แตกต่างกัน

เข้าเรื่องกันเลย!

1. Null ใน Java

ใน Java คีย์เวิร์ด "null" แสดงถึงการอ้างอิงที่ไม่ได้ชี้ไปที่วัตถุหรือค่าใดๆ ใช้เพื่อระบุการไม่มีค่าและมักใช้เป็นค่าเริ่มต้นสำหรับการอ้างอิงวัตถุ

ตัวอย่างเช่น:

String myString = null; // Declare a String object with a null reference

ค่า Null ของ Java แตกต่างจาก None ของ Python Null แสดงถึงการขาดวัตถุ ในขณะที่ None เป็นวัตถุจริงของ NoneType

2. โมฆะใน C

ในภาษาการเขียนโปรแกรม C ค่า null จะแสดงด้วยตัวชี้ null ซึ่งระบุตัวชี้ที่ไม่ได้กำหนดค่าเริ่มต้นหรือว่างเปล่า ตัวชี้ null มักจะแสดงด้วยค่าจำนวนเต็ม 0

ต่อไปนี้คือตัวอย่างการใช้ตัวชี้ว่างใน C:

int *myPointer = NULL; // Declare an integer pointer with a null reference

Null ใน C ไม่เกี่ยวข้องกับประเภทข้อมูลเฉพาะ ทำหน้าที่เป็นตัวยึดสำหรับพอยน์เตอร์ที่ไม่ได้กำหนดค่าเริ่มต้นหรือว่างเปล่า

3. Null ใน PHP

ใน PHP ค่า null หมายถึงตัวแปรที่ไม่มีค่าหรือไม่มีการอ้างอิง เช่นเดียวกับในภาษาอื่นๆ ค่า null ใช้เพื่อแสดงถึงตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้นหรือค่าว่าง

ต่อไปนี้เป็นตัวอย่างของ Null ใน PHP:

$myVar = NULL; // Declare a variable with a null reference

ค่าว่างของ PHP ไม่ใช่วัตถุของประเภทข้อมูลเฉพาะ แต่เป็นค่าคงที่พิเศษที่แสดงถึงการไม่มีค่า

ความคิดสุดท้าย

ในการเดินทางของคุณในฐานะโปรแกรมเมอร์ Python การเรียนรู้เกี่ยวกับค่า None นั้นมีความสำคัญสูง เป็นคุณลักษณะเฉพาะที่ทำหน้าที่เป็นวิธีของ Python ในการพูดว่า "ไม่มีอะไรที่นี่"

มันจำเป็นสำหรับการแสดงค่าที่ไม่มีอยู่ เมื่อทำความเข้าใจและใช้ None อย่างถูกต้อง คุณจะสามารถสร้างฟังก์ชันที่ยืดหยุ่นมากขึ้นพร้อมอาร์กิวเมนต์ทางเลือกและจัดการข้อมูลที่ขาดหายไปได้อย่างมีประสิทธิภาพ

นอกจากนี้ ค่า None ช่วยให้ฟังก์ชันของคุณสามารถสื่อสารได้อย่างชัดเจนเมื่อมีบางอย่างขาดหายไปหรือไม่ตรงตามเงื่อนไข ยิ่งไปกว่านั้น การเข้าใจ None เป็นสิ่งสำคัญเมื่อต้องจัดการกับฐานข้อมูล อ็อบเจ็กต์ที่ผู้ใช้กำหนด หรือเมื่อคุณต้องการเริ่มต้นตัวแปร

คำแนะนำเกี่ยวกับค่า None ใน Python นี้แสดงให้เห็นถึงสถานการณ์สำคัญบางประการที่คุณต้องการใช้วัตถุ None ในโค้ดของคุณ


ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

วิธีบันทึกและโหลดไฟล์ RDS ใน R

วิธีบันทึกและโหลดไฟล์ RDS ใน R

คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ

บทนำในการกรองบริบทใน LuckyTemplates

บทนำในการกรองบริบทใน LuckyTemplates

ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้