พื้นฐานของภาษา 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 = "Taro"
12print("Name:", name) # Output: Name: Taro
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
-
ความอ่านง่ายและความเรียบง่าย:
- ด้วยโครงสร้างที่ชัดเจนและนิพจน์ที่ใกล้เคียงกับภาษามนุษย์ Python เป็นภาษาที่เหมาะสำหรับผู้เริ่มต้นเรียนรู้
- บล็อกถูกกำหนดด้วยการย่อหน้า ซึ่งช่วยจัดรูปแบบโค้ดโดยอัตโนมัติและเพิ่มความอ่านง่าย
-
ไลบรารีและเฟรมเวิร์กที่หลากหลาย:
- มีไลบรารีมาตรฐานที่หลากหลาย ทำให้สามารถดำเนินงานหลายอย่างได้อย่างง่ายดาย
- มีไลบรารีและเฟรมเวิร์กเฉพาะทางสำหรับหลากหลายสาขา ได้แก่ การคำนวณเชิงตัวเลข (NumPy), การวิเคราะห์ข้อมูล (Pandas), การเรียนรู้ของเครื่อง (scikit-learn, TensorFlow) และการพัฒนาเว็บ (Django, Flask)
-
ความหลากหลาย:
- Python เหมาะสมทั้งในฐานะภาษาสคริปต์และการพัฒนาแอปพลิเคชันที่มีคุณสมบัติครบถ้วน ใช้งานในหลากหลายแอปพลิเคชัน เช่น การพัฒนาเว็บแอปพลิเคชัน, แอปพลิเคชันบนเดสก์ท็อป, การคำนวณเชิงวิทยาศาสตร์, การเรียนรู้ของเครื่อง, การวิเคราะห์ข้อมูล และ IoT
-
รองรับหลายแพลตฟอร์ม:
- ไม่ขึ้นกับแพลตฟอร์มและสามารถใช้งานได้บนระบบปฏิบัติการหลายชนิด เช่น Windows, macOS และ Linux
-
โอเพนซอร์สและชุมชน:
- Python เป็นโครงการโอเพนซอร์สที่รับการสนับสนุนจากชุมชนที่มีความเคลื่อนไหว จึงมีการอัปเดตอย่างสม่ำเสมอ, การพัฒนาไลบรารีใหม่ๆ และการให้การสนับสนุน
-
ชนิดข้อมูลแบบพลวัตและการจัดการหน่วยความจำแบบอัตโนมัติ:
- ชนิดข้อมูลแบบพลวัตช่วยลดความจำเป็นในการประกาศชนิดตัวแปร ทำให้การพัฒนารวดเร็วขึ้น
- การจัดการหน่วยความจำอัตโนมัติด้วย 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)
ข้อควรระวังเมื่อใช้อักขระหนีรอดแบบพิเศษ
มีข้อควรระวังเล็กน้อยที่ควรคำนึงถึงเมื่อใช้อักขระหนีรอด
- Raw Strings: หากต้องการแสดงสตริงที่มีเครื่องหมายแบ็กสแลชโดยตรง คุณสามารถใช้ raw strings Raw strings กำหนดโดยการเพิ่มคำนำหน้า
r
ให้กับสตริง
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents
ใน raw strings เครื่องหมายแบ็กสแลชจะไม่ได้รับการตีความว่าเป็นอักขระหนีรอดและจะแสดงผลตามที่เป็น
- การใช้ 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 กัน
- Python 1.0 (1994)
1# Simple code that works in Python 1.0
2def greet(name):
3 print "Hello, " + name # print was a statement
4
5greet("World")
การปล่อยเวอร์ชันอย่างเป็นทางการครั้งแรก ไวยากรณ์พื้นฐานและไลบรารีมาตรฐานของ Python ได้รับการกำหนดขึ้น
- Python 2.0 (2000)
1# List comprehension
2squares = [x * x for x in range(5)]
3print squares
4
5# Unicode string (u"...")
6greet = u"Hello"
7print greet
ฟีเจอร์สำคัญ เช่น list comprehension, garbage collection แบบสมบูรณ์, และการเริ่มรองรับ Unicode ได้ถูกเพิ่มเข้ามา Python 2 ถูกใช้งานมาเป็นเวลานาน แต่การสนับสนุนได้สิ้นสุดลงในปี 2020
- Python 3.0 (2008)
1# print is now a function
2print("Hello, world!")
3
4# Unicode text is handled natively
5message = "Hello"
6print(message)
อัปเดตครั้งใหญ่ โดยไม่มีความเข้ากันได้ย้อนกลับ print
ได้ถูกเปลี่ยนเป็นฟังก์ชัน, Unicode
กลายเป็นชนิดสตริงเริ่มต้น และการรวม Integer ทำให้ Python มีความสม่ำเสมอและใช้งานง่ายขึ้น Python 3.x เป็นเวอร์ชันหลักที่ใช้งานในปัจจุบัน
- Python 3.5 (2015)
1import asyncio
2
3async def say_hello():
4 await asyncio.sleep(1)
5 print("Hello, async world!")
6
7asyncio.run(say_hello())
การใช้งานไวยากรณ์ async
/await
ถูกเพิ่มเข้ามา ทำให้การเขียนโปรแกรมแบบอะซิงโครนัสง่ายขึ้น
- Python 3.6 (2016)
1name = "Alice"
2age = 30
3print(f"{name} is {age} years old.") # f-string makes formatting simple
Formatted String Literals (f-strings) ถูกเพิ่มเข้ามา ทำให้การจัดรูปแบบข้อความสะดวกยิ่งขึ้น นอกจากนี้ ประเภทของตัวแปร (type hints) ยังได้รับการขยายเพิ่มเติม
- Python 3.7 (2018)
1from dataclasses import dataclass
2
3@dataclass
4class Person:
5 name: str
6 age: int
7
8p = Person("Bob", 25)
9print(p)
Dataclasses ถูกเพิ่มเข้ามา ทำให้ง่ายต่อการกำหนดคลาสที่มีโครงสร้างคล้าย struct การรองรับ async
/await
ก็ได้รับการปรับปรุงเพิ่มเติม
- Python 3.8 (2019)
1# Assignment inside an expression
2if (n := len("hello")) > 3:
3 print(f"Length is {n}")
The Walrus Operator (:=) ถูกเพิ่มเข้ามา ซึ่งช่วยให้สามารถใช้การกำหนดค่าในนิพจน์ได้ Positional-only parameters
ถูกเพิ่มเข้ามาเช่นกัน ทำให้การกำหนดพารามิเตอร์ในฟังก์ชันมีความยืดหยุ่นมากขึ้น
- Python 3.9 (2020)
1a = {"x": 1}
2b = {"y": 2}
3c = a | b # merge two dicts
4print(c) # {'x': 1, 'y': 2}
มีการปรับปรุงตัวบ่งชี้ประเภท (type hints) และเพิ่มตัวดำเนินการรวม (|
) สำหรับลิสต์และดิกชันนารี ไลบรารีมาตรฐานได้รับการปรับโครงสร้างใหม่
- Python 3.10 (2021)
1def handle(value):
2 match value:
3 case 1:
4 return "One"
5 case 2:
6 return "Two"
7 case _:
8 return "Other"
9
10print(handle(2))
Pattern matching ถูกเพิ่มเข้ามา ทำให้สามารถใช้คำสั่งเงื่อนไขได้มีประสิทธิภาพยิ่งขึ้น ข้อความแสดงข้อผิดพลาดได้รับการปรับปรุง และระบบประเภท (type system) ได้รับการพัฒนามากขึ้น
- Python 3.11 (2022)
1# Improved performance (up to 25% faster in general)
2# More informative error messages
3try:
4 eval("1/0")
5except ZeroDivisionError as e:
6 print(f"Caught an error: {e}")
**การปรับปรุงประสิทธิภาพอย่างมหาศาล** ถูกทำให้สำเร็จ ส่งผลให้การทำงานเร็วขึ้นเมื่อเทียบกับเวอร์ชันก่อนหน้า นอกจากนี้ การจัดการข้อยกเว้น (exception) และการตรวจสอบประเภท (type checking) ได้รับการปรับปรุง
- Python 3.12 (2023)
1# Automatically shows exception chains with detailed traceback
2def f():
3 raise ValueError("Something went wrong")
4
5def g():
6 try:
7 f()
8 except Exception:
9 raise RuntimeError("Higher level error") # Automatically chained
10
11try:
12 g()
13except Exception as e:
14 import traceback
15 traceback.print_exception(type(e), e, e.__traceback__)
ข้อความแสดงข้อผิดพลาดได้รับการปรับปรุงเพิ่มเติม และประสิทธิภาพได้รับการพัฒนา นอกจากนี้ การเชื่อมโยงข้อยกเว้น (exception chaining) จะแสดงโดยอัตโนมัติ ช่วยให้การดีบักรายละเอียดมากยิ่งขึ้น ฟีเจอร์ไวยากรณ์ใหม่และการปรับปรุงไลบรารีมาตรฐานถูกเพิ่มเข้ามา ทำให้ประสิทธิภาพการทำงานของนักพัฒนาดีขึ้น
ชุด Python 3.x ยังคงพัฒนาอย่างต่อเนื่อง โดยเวอร์ชันล่าสุดได้ปรับปรุงประสิทธิภาพ ระบบประเภท และเพิ่มฟีเจอร์ใหม่ๆ
คุณสามารถติดตามบทความข้างต้นโดยใช้ Visual Studio Code บนช่อง YouTube ของเรา กรุณาตรวจสอบช่อง YouTube ด้วย