พื้นฐานของภาษา Python

พื้นฐานของภาษา Python

บทความนี้อธิบายพื้นฐานของภาษา Python

YouTube Video

การเรียกใช้ "Hello World!"

1print("Hello World!")

ตัวแปรในภาษา Python

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

 1# 1. Assigning values to variables
 2# Integer type variable
 3age = 25
 4print("Age:", age)  # Output: Age: 25
 5
 6# Floating-point type variable
 7height = 175.5
 8print("Height:", height, "cm")  # Output: Height: 175.5 cm
 9
10# String type variable
11name = "John"
12print("Name:", name)  # Output: Name: John
13
14# Boolean type variable
15is_student = True
16print("Are you a student?", is_student)  # Output: Are you a student? True
17
18# 2. Assigning values to multiple variables simultaneously
19# You can assign multiple variables at once
20x, y, z = 5, 10, 15
21print("x =", x, ", y =", y, ", z =", z)  # Output: x = 5 , y = 10 , z = 15
22
23# 3. Updating the value of a variable
24# The value of a variable can be updated by reassignment
25age = 26
26print("Updated age:", age)  # Output: Updated age: 26
27
28# 4. Updating multiple variables at once
29# Example of swapping values between variables
30a, b = 1, 2
31a, b = b, a
32print("a =", a, ", b =", b)  # Output: a = 2 , b = 1
33
34# 5. Type conversion
35# Type conversion allows operations between different types
36count = "5"  # String "5"
37count = int(count)  # Convert to integer type
38print("Handling count as an integer:", count * 2)  # Output: Handling count as an integer: 10
39
40# Conversion to floating-point number
41pi_approx = "3.14"
42pi_approx = float(pi_approx)
43print("Approximation of pi:", pi_approx)  # Output: Approximation of pi: 3.14

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

ชนิดข้อมูลในภาษา Python

ภาษา Python มีชนิดข้อมูลพื้นฐานหลายประเภท ด้านล่างนี้เรามีคำอธิบายและตัวอย่างโค้ดสำหรับแต่ละชนิดข้อมูล

ชนิดข้อมูลจำนวนเต็ม

ชนิดข้อมูลจำนวนเต็มใช้เพื่อจัดการกับตัวเลขที่ไม่มีจุดทศนิยม

1# Example of integer type
2x = 10
3print(x)        # Output: 10
4print(type(x))  # Output: <class 'int'>

ชนิดข้อมูลทศนิยม

ชนิดข้อมูลทศนิยมใช้เพื่อจัดการกับตัวเลขที่มีจุดทศนิยม

1# Floating Point Number Example
2y = 3.14
3print(y)        # Output: 3.14
4print(type(y))  # Output: float

ชนิดข้อมูลข้อความ

ประเภทสตริงแสดงถึงลำดับของตัวอักษร สตริงสามารถเขียนในเครื่องหมายอัญประกาศเดี่ยว ' หรือเครื่องหมายอัญประกาศคู่ "

1# Example of String
2s = "Hello, World!"
3print(s)        # Output: Hello, World!
4print(type(s))  # Output: <class 'str'>

ประเภทบูลีน

ประเภทบูลีนมีค่ามีเพียงสองค่า: จริง (True) และเท็จ (False)

1# Example of Boolean
2b = True
3print(b)        # Output: True
4print(type(b))  # Output: <class 'bool'>

ประเภทลิสต์

ประเภทลิสต์คือลำดับที่สามารถเปลี่ยนแปลงได้ สามารถเก็บหลายองค์ประกอบ และองค์ประกอบเหล่านี้สามารถเป็นประเภทข้อมูลที่แตกต่างกันได้

1# Example of List
2lst = [1, 2, 3, "four", 5.0]
3print(lst)        # Output: [1, 2, 3, 'four', 5.0]
4print(type(lst))  # Output: <class 'list'>

ประเภททูเพิล

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

1# Example of Tuple
2tup = (1, "two", 3.0)
3print(tup)        # Output: (1, 'two', 3.0)
4print(type(tup))  # Output: <class 'tuple'>

ประเภทพจนานุกรม

ประเภทพจนานุกรมคือชุดรวบรวมที่เก็บคู่คีย์และค่า คีย์จะต้องไม่ซ้ำกัน

1# Example of Dictionary
2dct = {"one": 1, "two": 2, "three": 3}
3print(dct)        # Output: {'one': 1, 'two': 2, 'three': 3}
4print(type(dct))  # Output: <class 'dict'>

ประเภทเซต

ประเภทเซตคือชุดรวบรวมที่เก็บองค์ประกอบที่ไม่ซ้ำกัน ค่าแบบซ้ำกันจะไม่สามารถใส่ได้

1# Example of Set
2st = {1, 2, 2, 3}
3print(st)        # Output: {1, 2, 3}
4print(type(st))  # Output: <class 'set'>

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

ภาพรวมของ Python

Python เป็นภาษาโปรแกรมระดับสูง ที่พัฒนาโดย Guido van Rossum ในปี 1991 แนวคิดการออกแบบของมันเน้น 'ความเรียบง่าย,' 'ความชัดเจน,' และ 'ความอ่านง่าย' ทำให้โค้ดมีความเข้าใจง่าย เขียนง่าย และอ่านง่าย ด้านล่างคือภาพรวมของคุณสมบัติหลักของ Python

  1. อ่านง่ายและเรียบง่าย

    • ด้วยโครงสร้างที่ชัดเจนและนิพจน์ที่ใกล้เคียงกับภาษามนุษย์ Python เป็นภาษาที่เหมาะสำหรับผู้เริ่มต้นเรียนรู้
    • บล็อกถูกกำหนดด้วยการย่อหน้า ซึ่งช่วยจัดรูปแบบโค้ดโดยอัตโนมัติและเพิ่มความอ่านง่าย
  2. ไลบรารีและเฟรมเวิร์กที่หลากหลาย:

    • มีไลบรารีมาตรฐานที่หลากหลาย ทำให้สามารถดำเนินงานหลายอย่างได้อย่างง่ายดาย
    • มีไลบรารีและเฟรมเวิร์กเฉพาะทางสำหรับหลากหลายสาขา ได้แก่ การคำนวณเชิงตัวเลข (NumPy), การวิเคราะห์ข้อมูล (Pandas), การเรียนรู้ของเครื่อง (scikit-learn, TensorFlow) และการพัฒนาเว็บ (Django, Flask)
  3. ความหลากหลาย:

    • Python เหมาะสมทั้งในฐานะภาษาสคริปต์และการพัฒนาแอปพลิเคชันที่มีคุณสมบัติครบถ้วน ใช้งานในหลากหลายแอปพลิเคชัน เช่น การพัฒนาเว็บแอปพลิเคชัน, แอปพลิเคชันบนเดสก์ท็อป, การคำนวณเชิงวิทยาศาสตร์, การเรียนรู้ของเครื่อง, การวิเคราะห์ข้อมูล และ IoT
  4. รองรับหลายแพลตฟอร์ม:

    • ไม่ขึ้นกับแพลตฟอร์มและสามารถใช้งานได้บนระบบปฏิบัติการหลายชนิด เช่น Windows, macOS และ Linux
  5. โอเพนซอร์สและชุมชน:

    • Python เป็นโครงการโอเพนซอร์สที่รับการสนับสนุนจากชุมชนที่มีความเคลื่อนไหว จึงมีการอัปเดตอย่างสม่ำเสมอ, การพัฒนาไลบรารีใหม่ๆ และการให้การสนับสนุน
  6. ชนิดข้อมูลแบบพลวัตและการจัดการหน่วยความจำแบบอัตโนมัติ:

    • ชนิดข้อมูลแบบพลวัตช่วยลดความจำเป็นในการประกาศชนิดตัวแปร ทำให้การพัฒนารวดเร็วขึ้น
    • การจัดการหน่วยความจำอัตโนมัติด้วย Garbage Collection ทำให้การจัดการหน่วยความจำง่ายขึ้น

ด้วยคุณลักษณะเหล่านี้ Python ถูกใช้งานอย่างกว้างขวางในหลายสาขา รวมถึงการศึกษา อุตสาหกรรม และแวดวงวิชาการ

ตัวอักษรหนีในภาษาไพธอน

ในภาษาไพธอน ตัวอักษรหนีใช้ในการรวมตัวอักษรควบคุมเฉพาะหรืออักขระที่มีความหมายพิเศษเข้าไปในสายอักขระ ตัวอักษรหนีเป็นสัญลักษณ์พิเศษที่ใช้เพิ่มความหมายเฉพาะให้แก่สายอักขระทั่วไป มาดูรายละเอียดเกี่ยวกับตัวอักษรหนีในภาษาไพธอนกัน

พื้นฐานของตัวอักษรหนี

ในภาษาไพธอน ตัวอักษรหนีจะถูกกำหนดโดยใช้เครื่องหมายแบ็คสแลช (\) ตัวอักษรหนีเป็นตัวระบุพฤติกรรมเฉพาะภายในสายอักขระทั่วไป ตัวอย่างเช่น \n แทนบรรทัดใหม่ และ \t แทนช่องว่างแบบแท็บ

คุณสามารถกำหนดสายอักขระที่มีตัวอักษรหนีได้ดังนี้:

1# Example of escape characters
2print("Hello\nWorld")  # A newline is inserted after "Hello"
3
4# Output:
5# Hello
6# World

รายการตัวอักษรหนีหลัก

ตัวอักษรหนีหลักที่ใช้ในภาษาไพธอนมีดังนี้:

  • \\: แทนเครื่องหมายแบ็คสแลชเอง
  • \': รวมเครื่องหมายจุดเดี่ยวในสายอักขระ
  • \": รวมเครื่องหมายจุดคู่ในสายอักขระ
  • \n: บรรทัดใหม่
  • \t: ช่องว่างแบบแท็บ
  • \r: คืนค่าเข้าหัวบรรทัด
  • \b: ย้อนกลับหนึ่งช่อง
  • \f: ฟีดฟอร์ม
  • \a: เสียงเตือน (กระดิ่ง)
  • \v: แท็บแนวตั้ง
  • \N{name}: อักขระตามชื่อในฐานข้อมูล Unicode
  • \uXXXX: อักขระ Unicode แบบ 16 บิต (ระบุด้วยตัวเลขฐานสิบหก 4 หลัก)
  • \UXXXXXXXX: อักขระ Unicode แบบ 32 บิต (ระบุด้วยตัวเลขฐานสิบหก 8 หลัก)
  • \xXX: อักขระที่ระบุด้วยตัวเลขฐานสิบหก

ตัวอย่างของอักขระหนีรอดที่ใช้บ่อย

นี่คือตัวอย่างเฉพาะของการใช้อักขระหนีรอด

เครื่องหมายคำพูดคู่และเครื่องหมายคำพูดเดี่ยว

เพื่อรวมเครื่องหมายคำพูดคู่หรือคำพูดเดี่ยวในสตริง ให้ใช้อักขระหนีรอด

 1# String containing double quotes
 2quote = "He said, \"Python is amazing!\""
 3print(quote)
 4
 5# String containing single quotes
 6single_quote = 'It\'s a beautiful day!'
 7print(single_quote)
 8
 9# Output:
10# He said, "Python is amazing!"
11# It's a beautiful day!

ขึ้นบรรทัดใหม่และแท็บ

การขึ้นบรรทัดใหม่และแท็บมักใช้สำหรับจัดรูปแบบข้อความ

 1# Example using newline
 2multiline_text = "First line\nSecond line"
 3print(multiline_text)
 4
 5# Example using tab
 6tabbed_text = "Column1\tColumn2\tColumn3"
 7print(tabbed_text)
 8
 9# Output:
10# First line
11# Second line
12# Column1	Column2	Column3

อักขระหนีรอดแบบ Unicode

ในภาษา Python อักขระ Unicode แสดงโดยใช้ \u หรือ \U สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อจัดการกับอักขระที่ไม่ใช่ภาษาอังกฤษ

1# Example of Unicode escape
2japanese_text = "\u3053\u3093\u306B\u3061\u306F"  # Hello in Japanese
3print(japanese_text)
4# Output:
5# こんにちは(Hello in Japanese)

ข้อควรระวังเมื่อใช้อักขระหนีรอดแบบพิเศษ

มีข้อควรระวังเล็กน้อยที่ควรคำนึงถึงเมื่อใช้อักขระหนีรอด

  1. Raw string: หากต้องการแสดงสตริงที่มีเครื่องหมายแบ็คสแลชตามที่เป็นอยู่ ให้เติมอักษร r นำหน้าสตริง
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents

ใน raw strings เครื่องหมายแบ็กสแลชจะไม่ได้รับการตีความว่าเป็นอักขระหนีรอดและจะแสดงผลตามที่เป็น

  1. การใช้ Unicode: เมื่อใช้อักขระหนีรอดแบบ Unicode โปรดตรวจสอบให้แน่ใจว่ารหัสเลขฐานสิบหกที่ระบุถูกต้อง การระบุที่ผิดพลาดจะนำไปสู่การแสดงผลอักขระที่ผิดพลาด

การหนีรอดเครื่องหมายแบ็กสแลช

เพื่อรวมเครื่องหมายแบ็กสแลชในสตริง ให้ใช้เครื่องหมายแบ็กสแลชสองครั้ง

1# Example containing backslash
2path = "C:\\Program Files\\Python"
3print(path)
4# Output:
5# C:\Program Files\Python

ตัวอย่างขั้นสูง: การจัดรูปแบบสตริงที่ซับซ้อน

สามารถผสมผสานอักขระหนีรอดเพื่อจัดรูปแบบสตริงที่ซับซ้อนได้

 1# Example of formatting a message
 2message = "Dear User,\n\n\tThank you for your inquiry.\n\tWe will get back to you shortly.\n\nBest Regards,\nCustomer Support"
 3print(message)
 4# Output:
 5# Dear User,
 6#
 7#     Thank you for your inquiry.
 8#     We will get back to you shortly.
 9#
10#     Best Regards,
11#     Customer Support

สรุป

อักขระหนีรอดของ Python เป็นเครื่องมือที่ทรงพลังสำหรับใส่อักขระควบคุมเฉพาะหรืออักขระพิเศษในสตริง การเข้าใจวิธีการใช้งานและการใช้ให้เหมาะสมเมื่อจำเป็นช่วยให้การประมวลผลสตริงมีความยืดหยุ่นมากขึ้น

เวอร์ชันของ Python

เรามาทบทวนภาพรวมของการปล่อยเวอร์ชันใหญ่และคุณลักษณะของ Python กัน

  1. Python 1.0 (1994)
1# Sample code that works in Python 1.0
2def greet(name):
3    print "Hello, " + name  # print was a statement
4
5greet("World")

การปล่อยเวอร์ชันอย่างเป็นทางการครั้งแรก ไวยากรณ์พื้นฐานและไลบรารีมาตรฐานของ Python ได้รับการกำหนดขึ้น

  1. Python 2.0 (2000)
1# Sample code that works in Python 2.0
2
3# List comprehension
4squares = [x * x for x in range(5)]
5print squares
6
7# Unicode string (u"...")
8greet = u"Hello"
9print greet

ฟีเจอร์สำคัญ เช่น list comprehension, garbage collection แบบสมบูรณ์, และการเริ่มรองรับ Unicode ได้ถูกเพิ่มเข้ามา Python 2 ถูกใช้งานมาเป็นเวลานาน แต่การสนับสนุนได้สิ้นสุดลงในปี 2020

  1. Python 3.0 (2008)
1# Sample code that works in Python 3.0
2
3# print is now a function
4print("Hello, world!")
5
6# Unicode text is handled natively
7message = "Hello"
8print(message)

อัปเดตครั้งใหญ่ โดยไม่มีความเข้ากันได้ย้อนกลับ print ได้ถูกเปลี่ยนเป็นฟังก์ชัน, Unicode กลายเป็นชนิดสตริงเริ่มต้น และการรวม Integer ทำให้ Python มีความสม่ำเสมอและใช้งานง่ายขึ้น Python 3 เป็นเวอร์ชันหลักในปัจจุบัน

  1. Python 3.5 (2015)
1# Sample code that works in Python 3.5
2import asyncio
3
4async def say_hello():
5    await asyncio.sleep(1)
6    print("Hello, async world!")
7
8asyncio.run(say_hello())

การใช้งานไวยากรณ์ async/await ถูกเพิ่มเข้ามา ทำให้การเขียนโปรแกรมแบบอะซิงโครนัสง่ายขึ้น

  1. Python 3.6 (2016)
1# Sample code that works in Python 3.6
2
3name = "Alice"
4age = 30
5print(f"{name} is {age} years old.")  # f-string makes formatting simple

Formatted String Literals (f-strings) ถูกเพิ่มเข้ามา ทำให้การจัดรูปแบบข้อความสะดวกยิ่งขึ้น นอกจากนี้ ประเภทของตัวแปร (type hints) ยังได้รับการขยายเพิ่มเติม

  1. Python 3.7 (2018)
 1# Sample code that works in Python 3.7
 2
 3from dataclasses import dataclass
 4
 5@dataclass
 6class Person:
 7    name: str
 8    age: int
 9
10p = Person("Bob", 25)
11print(p)

Dataclasses ถูกเพิ่มเข้ามา ทำให้ง่ายต่อการกำหนดคลาสที่มีโครงสร้างคล้าย struct การรองรับ async/await ก็ได้รับการปรับปรุงเพิ่มเติม

  1. Python 3.8 (2019)
1# Sample code that works in Python 3.8
2
3# Assignment inside an expression
4if (n := len("hello")) > 3:
5    print(f"Length is {n}")

The Walrus Operator (:=) ถูกเพิ่มเข้ามา ซึ่งช่วยให้สามารถใช้การกำหนดค่าในนิพจน์ได้ Positional-only parameters ถูกเพิ่มเข้ามาเช่นกัน ทำให้การกำหนดพารามิเตอร์ในฟังก์ชันมีความยืดหยุ่นมากขึ้น

  1. Python 3.9 (2020)
1# Sample code that works in Python 3.9
2
3a = {"x": 1}
4b = {"y": 2}
5c = a | b  # merge two dicts
6print(c)   # {'x': 1, 'y': 2}

มีการปรับปรุงตัวบ่งชี้ประเภท (type hints) และเพิ่มตัวดำเนินการรวม (|) สำหรับลิสต์และดิกชันนารี ไลบรารีมาตรฐานได้รับการปรับโครงสร้างใหม่

  1. Python 3.10 (2021)
 1# Sample code that works in Python 3.10
 2
 3def handle(value):
 4    match value:
 5        case 1:
 6            return "One"
 7        case 2:
 8            return "Two"
 9        case _:
10            return "Other"
11
12print(handle(2))

Pattern matching ถูกเพิ่มเข้ามา ทำให้สามารถใช้คำสั่งเงื่อนไขได้มีประสิทธิภาพยิ่งขึ้น ข้อความแสดงข้อผิดพลาดได้รับการปรับปรุง และระบบประเภท (type system) ได้รับการพัฒนามากขึ้น

  1. Python 3.11 (2022)
1# Sample code that works in Python 3.11
2
3# Improved performance (up to 25% faster in general)
4# More informative error messages
5try:
6    eval("1/0")
7except ZeroDivisionError as e:
8    print(f"Caught an error: {e}")
**การปรับปรุงประสิทธิภาพอย่างมหาศาล** ถูกทำให้สำเร็จ ส่งผลให้การทำงานเร็วขึ้นเมื่อเทียบกับเวอร์ชันก่อนหน้า นอกจากนี้ การจัดการข้อยกเว้น (exception) และการตรวจสอบประเภท (type checking) ได้รับการปรับปรุง
  1. Python 3.12 (2023)
 1# Sample code that works in Python 3.12
 2
 3# Automatically shows exception chains with detailed traceback
 4def f():
 5    raise ValueError("Something went wrong")
 6
 7def g():
 8    try:
 9        f()
10    except Exception:
11        raise RuntimeError("Higher level error")  # Automatically chained
12
13try:
14    g()
15except Exception as e:
16    import traceback
17    traceback.print_exception(type(e), e, e.__traceback__)
ข้อความแสดงข้อผิดพลาดได้รับการปรับปรุงเพิ่มเติม และประสิทธิภาพได้รับการพัฒนา นอกจากนี้ การเชื่อมโยงข้อยกเว้น (exception chaining) จะแสดงโดยอัตโนมัติ ช่วยให้การดีบักรายละเอียดมากยิ่งขึ้น ฟีเจอร์ไวยากรณ์ใหม่และการปรับปรุงไลบรารีมาตรฐานถูกเพิ่มเข้ามา ทำให้ประสิทธิภาพการทำงานของนักพัฒนาดีขึ้น
  1. Python 3.13 (2024)
 1# Sample code that works in Python 3.13
 2
 3# Using the new 'except*' syntax for handling multiple exceptions in parallel
 4import asyncio
 5
 6async def raise_errors():
 7    raise ExceptionGroup("Multiple errors", [
 8        ValueError("Invalid value"),
 9        TypeError("Wrong type"),
10    ])
11
12async def main():
13    try:
14        await raise_errors()
15    except* ValueError as e:
16        print("Caught ValueError(s):", e.exceptions)
17    except* TypeError as e:
18        print("Caught TypeError(s):", e.exceptions)
19
20asyncio.run(main())

ใน Python 3.13 ไวยากรณ์ ExceptionGroup และ except* ได้รับการปรับปรุงมากขึ้น ทำให้สามารถจับข้อยกเว้นหลายรายการในกระบวนการแบบอะซิงโครนัสได้พร้อมกัน สิ่งนี้ทำให้การดีบักและการจัดการข้อผิดพลาดในแอปพลิเคชันที่ใช้การประมวลผลแบบขนานหรือ asyncio ง่ายขึ้นและมีประสิทธิภาพมากขึ้น นอกจากนี้ การปรับปรุงคำใบ้ชนิดข้อมูล (type hints) และการอัปเดตไลบรารีมาตรฐานช่วยเสริมความสามารถในการดูแลรักษาและการแสดงออกทางโค้ด

Python เวอร์ชัน 3 พัฒนาต่อเนื่อง โดยเวอร์ชันล่าสุดมีการเพิ่มประสิทธิภาพ ปรับปรุงระบบชนิดข้อมูล และคุณสมบัติใหม่ ๆ

คุณสามารถติดตามบทความข้างต้นโดยใช้ Visual Studio Code บนช่อง YouTube ของเรา กรุณาตรวจสอบช่อง YouTube ด้วย

YouTube Video