1 of 11

ทดสอบสร้าง list

จงเขียนโปรแกรมเพื่อสร้าง List ต่อไปนี้

  1. ex01_list = [11, 12, 13, 14, … 20]
  2. ex02_list = [1, 5, 9, 13, … 97]
  3. ex03_list = [10, 9, 8, … 1]
  4. ex04_list = [1, 4, 9, 16,…, 100]
  5. ex05_list = [1.00, 1.25, 1.50, 1.75, 2.00, …, 5.00]
  6. ex06_list = ['a', 'b', 'c', … 'z']
  7. ex07_list = ['A', 'B', 'C', … 'Z']
  8. ex08_list = ['Aa', 'Bb', 'Cc', … 'Zz']
  9. ex09_list = ['Az', 'By', 'Cx', … 'Za']
  10. ex10_list = [('A','a'), ('B','b'), ('C','c'), … ('Z','z')]
  11. ex11_list = [(1,1), (2,4), (3,9), … (10,100)]
  12. ex12_list = [(100,400), (95,380), …, (5,20), (0,0)]

2 of 11

Python text.split()

txt = "welcome to the jungle"

words = txt.split()

fruit_txt = "apple#banana#cherry#orange"

fruits = fruit_txt.split("#")

data_txt = "13, 21, 18, 35, 27, 16"

data = data_txt.split(",")

words = ['welcome', 'to', 'the', 'jungle']

fruit = ['apple', 'banana', 'cherry', 'orange']

data = ['13', ' 21', ' 18', ' 35', ' 27', ' 16']

string.strip() ตัดช่องว่างหน้า/หลัง

string.lstrip() ตัดช่องว่างหน้า

string.rstrip() ตัดช่องว่างหลัง

3 of 11

Python text.split()

data_txt = "13, 21, 18, 35, 27, 16"

data = data_txt.split(",") ==> data = ['13', ' 21', ' 18', ' 35', ' 27', ' 16']

  1. จงเขียนโปรแกรมเพื่อรับรายชื่อของผลไม้หลายชนิด (คั่นด้วยลูกน้ำ "," ) แล้วแสดงรายชื่อเฉพาะผลไม้ที่มีอักษร a
  2. จงเขียนโปรแกรมเพื่อรับค่าตัวเลขหลายจำนวน (คั่นด้วยลูกน้ำ "," ) แล้วหาผลรวมของตัวเลขทั้งหมดที่กรอกเข้ามา
  3. จงเขียนโปรแกรมเพื่อรับค่าเวลา ชั่วโมง นาที วินาที ในรูปแบบ 09:35:46 (รับ 2 เวลา) แล้วคำนวณหาเวลารวมของ 2 เวลานั้น
  4. จงเขียนโปรแกรมเพื่อรับค่าตัวเลขหลายจำนวน (คั่นด้วยลูกน้ำ "," ) แล้วแยกเลขคู่ เลขคี่ออกจากกัน แสดงจำนวนเลขคู่ เลขคี่ ทั้งหมด นับจำนวนเลขคู่ คี่ และแสดงผลรวมของตัวเลขแต่ละกลุ่ม
  5. จงเขียนโปรแกรมเพื่อรับค่าตัวเลขหลายจำนวน (คั่นด้วยลูกน้ำ "," ) แล้วหาผลรวมของกำลังสองของแต่ละจำนวน

4 of 11

Python list / tuple -> join(",")

myTuple = ("John", "Peter", "Vicky")

sentense = "-".join(myTuple)

sentense = "John-Peter-Vicky"

จงเขียนโปรแกรมเพื่อรับรายชื่อของผลไม้หลายชนิด (คั่นด้วยลูกน้ำ "," ) แล้วแสดงรายชื่อเฉพาะผลไม้ที่มีอักษร a (บรรทัดเดียวคั่นด้วยลูกน้ำ)

Python list unpack

myTuple = ("John", "Peter", "Vicky")

name1, name2, name3 = myTuple

name1, name2, *other = myTuple

5 of 11

Python list comprehension Socratica

ในเรื่องเซต การกำหนดเซตแบบบอกเงื่อนไขสามารถเขียนได้โดยกำหนด

A = {x2 | x ∈ {1, 2, 3, 4} } = {1,4,9,16}

B = {(x,y) | y = x + 5 และ x ∈ {1, 2, 3, …, 10} = {(1,6), (2,7) … (10,15)}

C = {c | c เป็นตัวอักษรในคำว่า "Hello from Python World" } = {H, e, l … }

D = {x2 | x is odd and x ∈ {1, 2, 3, 4,… 20} = {1, 9, 25, 49,.., 361}

ในการสร้าง Python List เราสามารถสร้างได้โดยใช้รูปแบบเดียวกับ เซตข้างต้น โดยมีรูปแบบดังนี้

1. [expr(val) for val in collection] โดย collection จะเป็น list, range, string หรือ tuple ก็ได้

2. [expr(val) for val in collection if condition(val)]

A = [x**2 for x in [1,2,3,4]]

B = [(x,x+5) for x in range(1,11)]

C = [c for c in "Hello from Python World" if c.isalpha() ]

D = [x**2 for x in range(1,21) if x % 2 == 1]

6 of 11

ทดสอบสร้าง list โดยใช้ list comprehension

จงเขียนโปรแกรมเพื่อสร้าง List ต่อไปนี้

  1. ex01_list = [11, 12, 13, 14, … 20] ex01_list = list(range(11,21))
  2. ex02_list = [1, 5, 9, 15, … 99]
  3. ex03_list = [10, 9, 8, … 1]
  4. ex04_list = [1, 4, 9, 16,…, 100] A = [x**2 for x in [1,2,3,4,5,6,7,8,9,10]]
  5. ex05_list = [1.00, 1.25, 1.50, 1.75, 2.00, …, 5.00]
  6. ex06_list = ['a', 'b', 'c', … 'z']
  7. ex07_list = ['A', 'B', 'C', … 'Z']
  8. ex08_list = ['Aa', 'Bb', 'Cc', … 'Zz']
  9. ex09_list = ['Az', 'By', 'Cx', … 'Za']
  10. ex10_list = [('A','a'), ('B','b'), ('C','c'), … ('Z','z')]
  11. ex11_list = [(1,1), (2,4), (3,9), … (10,100)]

ex12_list = [(100,400), (95,380), …, (5,20), (0,0)]

7 of 11

โปรแกรมบวกเลขกลับหลัง

ให้นักเรียนเขียนโปรแกรมรับตัวเลข 2 ครั้ง แต่ละครั้งจะกรอกตัวเลขหลายจำนวนแล้วคั่นด้วยลูกน้ำ แล้วนำมาเรียงกลับหลัก แสดงตัวเลขผลรวมกลับหลัก ตามตัวอย่าง

Enter number set 1 : 3, 8 ,6

Enter number set 2 : 2, 5 ,3

The reverse sum are 5, 3, 0, 1

เพราะว่า 683 + 352 = 1035

8 of 11

โปรแกรมคำนวณวันที่

ในปีนี้ (2565) วันที่ 1 มกราคมเป็นวันเสาร์ และเดือน ก.พ. มี 28 วัน ให้นักเรียนเขียนโปรแกรมเพื่อรับค่าจำนวนวัน แล้วคำนวณว่าเมื่อผ่านไปเท่ากับจำนวนวันที่กรอก

  1. วันที่ดังกล่าวจะตรงกับวันอะไร
  2. วันนั้นเป็นวันที่เท่าไรของเดือนอะไร

ให้นักเรียน รับวันที่ เดือน และ ปี (ฝรั่ง) แล้วรับค่าจำนวนวัน แล้วคำนวณว่าเมื่อผ่านไปเท่ากับจำนวนวันที่กรอก

  1. วันที่ดังกล่าวจะตรงกับวันอะไร
  2. วันนั้นเป็นวันที่เท่าไรของเดือนอะไร

เขียนโดยไม่ใช้ module datetime

9 of 11

เขียนโปรแกรมรับตัวเลขหรือข้อความที่คั่นด้วยเครื่องหมายลูกน้ำ แยกเอาเฉพาะตัวเลขมาหาผลรวมแสดงคำตอบ

ตัวอย่าง ป้อน -> 12,hello,63,man, 28 แล้วแสดงว่าผลรวมคือ 103

Hint : join, split, isinstance

บวกเฉพาะตัวเลข

10 of 11

เขียนโปรแกรมรับตัวเลขหรือข้อความที่คั่นด้วยเครื่องหมายลูกน้ำ แยกเอาตัวเลขมาหาผลรวมแสดงคำตอบ และนำข้อความมาเรียงต่อแล้วแสดงผล

ตัวอย่าง ป้อน -> 12,hello,63,man, 28 แล้วแสดงว่าผลรวมคือ 103 และข้อความ hello man

Hint : join, split, isinstance

ตรวจสอบ แยกประเภทข้อมูล และบวกตัวเลข

11 of 11

เขียนโปรแกรมรับตัวเลขที่คั่นด้วยเครื่องหมายลูกน้ำ แล้วเลือกตัวเลขเฉพาะที่ไม่ซ้ำนำมาแสดงแบบเรียงจากมากไปน้อย

ตัวอย่าง ป้อน -> 12,8,13,12,13 แล้วแสดงผลลัพธ์ 13,12, 8

ตรวจสอบข้อมูล เรียงลำดับ