---
title: "หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 – ประเภทข้อมูล (Data Types)"
url: https://www.thepexcel.com/python-excel-02-data-types/
type: post
date: 2020-11-17
updated: 2025-04-24
author: Sira Ekabut
categories: [Programming]
tags: [data type, python]
---

# หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 – ประเภทข้อมูล (Data Types)

[ในตอนที่แล้ว](https://www.thepexcel.com/python-for-excel-user-01/)เราได้เรียนรู้เรื่องของการแสดงผลด้วย print การใช้ตัวแปร การใส่ comment ไปแล้ว ซึ่งยังเป็นเรื่องที่พื้นฐานมากๆ คราวนี้เราก็ยังคงอยู่ที่เรื่องพื้นฐานที่สำคัญอีกเรื่องคือ ประเภทของข้อมูลใน Python นั่นเอง

 

ประเภทข้อมูลใน Python จริงๆ นั้นมีหลายแบบมากๆ [ดูในนี้ได้](https://www.w3schools.com/python/python_datatypes.asp) แต่**ผมจะขอพูดถึงตัวที่ผมคิดว่าสำคัญและใช้บ่อยๆ เท่านั้นก่อน**นะครับ

 

## ประเภทข้อมูลพื้นฐาน (เทียบกับใน Excel)

 

มีลักษณะเป็นค่าเดี่ยวๆ ตัวเดียว

 
- **ตัวเลข** : int (จำนวนเต็ม), float (ทศนิยม)
- **ข้อความ** : str (ซึ่งต้องใส่ในเครื่องหมายคำพูด ตามที่อธิบายไว้ในตอนแรก)
- **ตรรกะ** : bool คือค่า True / False

 

เราสามารถตรวจสอบประเภทข้อมูลได้ด้วย **ฟังก์ชัน type()** ดังนี้

 

```
x=5 #เป็น int
y=5.0 #เป็น float เพราะมีทศนิยม แม้จะเป็น 0 ก็ตาม
z="5" #เป็น str แม้หน้าตาจะเหมือนตัวเลขก็ตาม
print(type(x))
print(type(y))
print(type(z))
```

 ![1](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-006.png) 

### เครื่องหมาย Operator พื้นฐาน

 

#### เครื่องหมายคำนวณทางคณิตศาสตร์

 

นั้นคล้าย Excel มากเช่น +, -, *, / นั้นเหมือนกับ Excel เลย อย่างไรก็ตามก็มีตัวที่ต่างกัน คือ

 
- % คือ Modulus หาเศษเหลือจากการหาร (ใน Excel จะใช้ฟังก์ชัน MOD)
- ** คือ ยกกำลัง (ใน Excel จะใช้ ^)

 

#### เครื่องหมายเปรียบเทียบ / ตัวตรรกะ

 

เวลาใช้จะให้ผลเป็น Boolean คือ True/False เช่นเดียวกับใน Excel เลย

 
- **ตัวที่เหมือน Excel** คือ >, <, >=, <=
- **ตัวที่ต่างจาก Excel **มีดังนี้
    - == คือ การเทียบว่าเท่ากันหรือไม่ (ใน Excel ใช้ = ตัวเดียว)
    - != คือ เครื่องหมายไม่เท่ากับ (ใน Excel ใช้ <>)
    - in สามารถเช็คได้ว่าอยู่ในกลุ่มที่สนใจหรือไม่ (ใน excel อาจต้องใช้ MATCH ช่วย)
    - ตัวตรรกะ and, or, not ใช้เป็นตัวเชื่อมตรงกลาง (ใน Excel ใช้เป็นฟังก์ชัน) เช่น
          - myVar1>10 and myVar2<=30 (ใน excel ใช้ว่า =AND(myVar1>10, myVar2<=30)

 

#### เครื่องหมายเชื่อมข้อความ

 

ใน Excel จะใช้เครื่องหมาย & ในการเชื่อมข้อความ แต่ใน Python จะใช้เครื่องหมาย + ได้เลยครับ เช่น

 

```
title="นาย"
first="ศิระ"
last="เอกบุตร"
print(title+first) #ได้ นายศิระ
print(title+first+" "+last) #ได้ นายศิระ เอกบุตร
```

 ![2](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-007.png) 

ถ้าข้อมูลเป็นคนละประเภท Python จะงงทันที เช่น แบบนี้จะ Error เพราะ var1 เป็นตัวเลข ส่วน var2 เป็น text คำว่า 3

 

ตกลงว่าจะให้บวกกัน หรือ จะให้เชื่อมข้อความกันแน่???

 

```
var1=5
var2="3"
print(var1+var2)
```

 ![3](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-008.png) 

## การแปลงประเภทข้อมูล (Casting)

 

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

 

```
var1=5
var2="3"
var2num=int(var2) #แปลงให้เป็นเลขจำนวนเต็ม
var1str=str(var1) #แปลงให้เป็นข้อความ
print(var1+var2num)
print(var1str+var2)
```

 ![4](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-009.png) 

## ประเภทข้อมูลที่เป็นโครงสร้าง

 

มีลักษณะที่สามารถเก็บข้อมูลพื้นฐานหลายๆ ตัวเป็นชุดข้อมูลได้ ซึ่ง Concept นี้ จะคล้ายๆ Array ใน Excel

 

ใน Excel ถ้าเราอ้างอิงข้อมูลเป็นช่วงเมื่อไหร่จะได้ข้อมูลแบบ Array ทันที (เช็คได้โดยการ Highlight สูตรแล้วกด F9) ซึ่งจะแสดงเป็นข้อมูลในเครื่องหมายปีกกา คั่นด้วย Comma (ขึ้นคอลัมน์ใหม่) กับ Semicolon (ขึ้นแถวใหม่) เช่น

 ![5](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-005-1024x543.png) 

แต่ใน Python นั้นมีข้อมูลเชิงโครงสร้างที่หลากหลายแบบมากๆ และมีลูกเล่นในการจัดการข้อมูลที่ง่ายกว่า Array ของ Excel พอสมควรซึ่งจะคล้ายกับข้อมูลเชิงโครงสร้างของ ภาษา M ใน Power Query มากกว่า (เช่น List, Record, Table)

 

ข้อมูลเชิงโครงสร้างใน Python ที่สำคัญๆ มีดังนี้

 

### **list **

 
- เก็บข้อมูลหลายๆ ตัวอยู่ในวงเล็บเหลี่ยม เก็บค่าซ้ำได้ เช่น 
    - myList = [“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”]
    - คล้ายๆ กับ List ของ Power Query
- ลำดับข้อมูลมีความสำคัญ อ้างอิงข้อมูลได้ด้วยเลข index เช่น
    - myList[0] คือ item ตัวแรกสุด ซึ่งคือ “Eren”
    - myList[-1] คือ item ตัวสุดท้าย ซึ่งคือ “Armin”
    - สามารถดึงข้อมูลมาหลายๆ ตัวเป็นช่วงที่เรียกว่า Slice ได้ ในรูปแบบ **myList[ตั้งแต่index : แต่ไม่รวม index]**
    - ถ้าตอน slice เว้นตัวเริ่มต้นไว้ จะได้ตั้งแต่ตัวแรก, ถ้าเว้นตัวจบ จะได้จนถึงตัวสุดท้าย
- เปลี่ยนค่า item ต่างๆ หลังจากถูกสร้างไปแล้วได้ (Mutable) เช่น
    - myList[1]=”Attack Titan” #เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan

 

```
myList = ["Eren", "Eren", "Mikasa", "Armin", "Armin"]
print(myList[0]) #ได้ตัวแรก
print(myList[-1]) #ได้ตัวสุดท้าย
#เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan
myList[1]="Attack Titan" 
print(myList)

#ได้ตั้งแต่ index 0 แต่ไม่รวมตัว index3 ซึ่งคือ ตัวแรกถึงตัวที่ 3 ได้ ['Eren', 'Attack Titan', 'Mikasa']
print(myList[0:3]) 

#ได้ตั้งแต่ index 1 แต่ไม่รวมตัว index3 ซึ่งคือ ตัวที่ 2 ถึงตัวที่ 3 ได้ ['Attack Titan', 'Mikasa']
print(myList[1:3]) 

#ได้ตั้งแต่ index 1 ถึง ตัวสุดท้าย ได้ ['Attack Titan', 'Mikasa', 'Armin', 'Armin']
print(myList[1:]) 

#ได้ตั้งแต่ตัวแรก แต่ไม่รวมตัว index2 ซึ่งคือ ตัวแรก ถึงตัวที่ 2 ได้ ['Eren', 'Attack Titan']
print(myList[:2]) 
```

 ![6](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-001x-1024x378.png) 

### **tuple **

 
- เก็บข้อมูลหลายๆ ตัวอยู่ในวงเล็บปกติ (หรือไม่ใส่วงเล็บเลยก็ได้) เก็บค่าซ้ำได้ เช่น 
    - myTuple = (“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”)
    - myTuple = “Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”
- ลำดับข้อมูลมีความสำคัญ อ้างอิงข้อมูลได้ด้วยเลข index (เช่นเดียวกับ List) เช่น 
    - myTuple[0] คือ item ตัวแรกสุด ซึ่งคือ “Eren”
- **เปลี่ยนข้อมูลภายหลังจากสร้างไปแล้วไม่ได้ (unchangeable**/**immutable)** เช่น
    - myTuple[1]=”Attack Titan” แบบนี้จะ Error ทันที
- ประโยชน์คือ สามารถทำงานได้เร็วกว่า List และเหมาะกับอะไรที่มีโครงสร้างคงที่ไม่เพิ่มไม่ลด ไม่เปลี่ยนค่า
- Tuple คือ ประเภทข้อมูล Default ของผลลัพธ์ที่ได้จากฟังก์ชัน กรณีได้ค่ากลับมาหลายค่า

 

```
myTuple = ("Eren", "Eren", "Mikasa", "Armin", "Armin")
print(myTuple[0]) #ได้ตัวแรก
print(myTuple[-1]) #ได้ตัวสุดท้าย
myTuple[1]="Attack Titan" #เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan
print(myTuple) #error ไปตั้งแต่ก่อนหน้าแล้ว
print(myTuple[0:3]) #error ไปตั้งแต่ก่อนหน้าแล้ว
print(myTuple[1:3]) #error ไปตั้งแต่ก่อนหน้าแล้ว
```

 ![7](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-002x.png) 

### **dict **

 
- เป็นการเก็บข้อมูลเป็นคู่ Key : Value อยู่ในวงเล็บปีกกา เช่น 
    - myDict = {“name” : “Sira”, “age” : 37}
  
  
    - **ถ้าใส่ Key ซ้ำกันหลายรอบจะได้อันสุดท้าย**
    - คล้ายๆ กับสิ่งที่เรียกว่า Record ของ Power Query ซึ่งคล้ายการเก็บข้อมูลแต่ละบรรทัดของตารางเอาไว้ แล้วบอกว่าแต่ละ Field (Column) มีค่าเป็นอะไร
- **อ้างอิงข้อมูลได้โดยใช้ Key มาช่วย** เช่น
    - myDict[“name”] จะได้คำว่า “Sira”
    - myDict[“age”] จะได้เลข 37

 

```
myDict = {"name" : "Eren", "age" : 37, "name" : "Sira"} #ถ้าใส่ Key ซ้ำกันจะได้อันสุดท้าย
print(myDict)
print(myDict["name"]) # ได้สิ่งที่คู่กับ Key ที่เป็นคำว่า name
myDict["name"]="ThepExcel" #เปลี่ยนค่าใน item ได้
print(myDict)
```

 ![8](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-003-1024x287.png) 

### **set**

 
- ใส่รายการข้อมูลอยู่ในวงเล็บปีกกา และ**เก็บค่าซ้ำไม่ได้** เช่น 
    - mySet={“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”}
  
  
    - สุดท้ายจะเหลือแค่ {“Eren”, “Mikasa”, “Armin”} อยู่ดี (ตัดตัวซ้ำออกให้)
- ลำดับข้อมูลไม่มีความสำคัญ ทำให้ไม่สามารถอ้างอิงข้อมูลด้วย index หรือ key ได้
    - ทำได้แค่วน Loop ใน set หรือเช็คว่ามีข้อมูลที่ต้องการหรือไม่

 

```
mySet={"Eren", "Eren", "Mikasa", "Armin", "Armin"}
print(mySet) #เหลือเฉพาะตัวที่ไม่ซ้ำ
print("Armin" in mySet) #เช็คว่าใน set มีคำว่า Armin รึเปล่า
print("Levi" in mySet) #เช็คว่าใน set มีคำว่า Levi รึเปล่า
print(mySet[0]) #อ้างอิงด้วย index ไม่ได้
```

 ![9](https://www.thepexcel.com/wp-content/uploads/2020/11/python-02-004x.png) 

## จบตอนที่ 2

 

ในตอนต่อๆ ไปเราจะมาดูเรื่องของการวน Loop การเขียน if รวมถึงเจาะลึกข้อมูลประเภท List ซึ่งมีลูกเล่นเยอะมากๆ ในการทำงานจริง และมีความเกี่ยวข้องกับข้อมูลที่เป็นข้อความด้วยเช่นกัน รอติดตามได้เลย!

  

## สารบัญ Series Python

---

_Source: [https://www.thepexcel.com/python-excel-02-data-types/](https://www.thepexcel.com/python-excel-02-data-types/)_
