Module 3b — ทบทวน (Review)

Input / Output and f-string — แบบฝึกทบทวน

ทบทวน Module 3b 📝

  • Multiple Choice — เลือกคำตอบที่ถูก แล้วกดถัดไปเพื่อดูเฉลย
  • เติมคำในช่องว่าง — ลองพิมพ์ใน Live Code แล้วรัน
  • ทำนายผล · ไล่ค่าตัวแปร · หา Bug — ฝึกอ่านโค้ดให้เข้าใจจริง

. . .

Note

ครอบคลุม: input() · การแปลงชนิด · input().split() · print() · f-string ทบทวนเนื้อหาเต็มได้ที่ Module 3b 👈

Multiple Choice 🔘

เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป

คำถาม #1

input() คืนค่าเป็นชนิดใด เสมอ?

A. int
B. str
C. float
D. ขึ้นกับสิ่งที่พิมพ์

Tip

ตอบ: Binput() ได้ str เสมอ ต้องแปลงชนิดเองถ้าต้องการตัวเลข

คำถาม #2

ต้องการรับ จำนวนเต็ม จาก user ควรเขียนอย่างไร?

A. input()
B. int(input())
C. str(input())
D. input(int)

Tip

ตอบ: B — ครอบ input() ด้วย int() เพื่อแปลง string เป็นจำนวนเต็ม

คำถาม #3

data = input().split() ได้ผลลัพธ์เป็นชนิดใด?

A. str
B. list
C. tuple
D. int

Tip

ตอบ: B.split() คืนค่าเป็น list ของ string

คำถาม #4

ป้อน 10 20 30 แล้วเรียก input().split() ได้ผลใด?

A. '102030'
B. ['10','20','30']
C. [10,20,30]
D. error

Tip

ตอบ: B.split() ตัดด้วยช่องว่าง ได้ list ของ string (ยังไม่ใช่ตัวเลข)

คำถาม #5

จะแทรกค่าตัวแปร x ลงใน string ด้วย f-string เขียนอย่างไร?

A. '{x}'
B. f'{x}'
C. f'(x)'
D. 'f{x}'

Tip

ตอบ: B — ใส่ f นำหน้า string แล้วแทรกตัวแปรใน { }

คำถาม #6: ชวนคิด

ถ้า ลืมใส่ f นำหน้า เช่น '{x}' (x = 5) จะได้อะไร?

A. 5
B. ข้อความ {x} ตรง ๆ
C. error

Important

ตอบ: B — ไม่มี f → เป็น string ธรรมดา {x} ไม่ถูกแทนค่า

คำถาม #7

pi = 3.14159f'{pi:.2f}' ให้ผลใด?

A. '3.14'
B. '3.1'
C. '3.14159'
D. '3'

Tip

ตอบ: A:.2f = ทศนิยม 2 ตำแหน่ง

คำถาม #8: ชวนคิด

a = 3 (ตัวเลข) — f'{a:5}' จัดข้อความชิดด้านใด?

A. ชิดซ้าย
B. ชิดขวา
C. กึ่งกลาง

Tip

ตอบ: Bตัวเลขในความกว้างที่กำหนด → ชิดขวา (string จะชิดซ้าย)

คำถาม #9: ชวนคิด

a, b = input().split() แต่ผู้ใช้พิมพ์ 3 คำ จะเกิดอะไร?

A. เก็บ 2 คำแรก
B. ValueError
C. เก็บเป็น list

Important

ตอบ: B — จำนวนตัวแปรซ้าย ต้องพอดี กับจำนวนคำที่ split ได้ ไม่งั้น ValueError

เติมคำในช่องว่าง ✏️

เติมโค้ดในช่อง ____ แล้วกด Run

Important

⚠️ input() ไม่ทำงานบนสไลด์ — จำลองค่าด้วย string แทน (เช่น name = 'Ploy')

เติมคำ #10

เติมโค้ดให้แสดงผล Hello, Ploy. Nice to meet you! ด้วย f-string

nkname = 'Ploy'   # nkname = input('...')
print(f'Hello, {nkname}. Nice to meet you!')
Hello, Ploy. Nice to meet you!

เติมคำ #11

gpa = 3.5 — แสดงผลด้วย f-string เป็นทศนิยม 2 ตำแหน่ง

gpa = 3.5
print(f'Your GPA is {gpa:.2f}')
Your GPA is 3.50

เติมคำ #12

เติมโค้ดแปลงค่าจาก input() (string) ให้เป็น int แล้วยกกำลังสอง

x = '6'           # x = input()
x = int(x)
print(x ** 2, type(x ** 2))
36 <class 'int'>

เติมคำ #13

แยก ชื่อ และ นามสกุล จากข้อความเดียว ด้วย .split()

data = 'Somchai Jaidee'   # input()
name, lastname = data.split()
print(name)
print(lastname)
Somchai
Jaidee

เติมคำ #14: ชวนคิด

a = 7 — จัดให้แสดงในความกว้าง 5 ช่อง ด้วย f-string

a = 7
print(f'[{a:5}]')
[    7]

ตัวเลขชิดขวาในความกว้าง 5 → มีช่องว่างนำหน้า 4 ช่อง

ทำนายผล 🔮

โค้ดจะพิมพ์อะไร? — ทายก่อน แล้วกดถัดไปดูเฉลย

ทำนายผล #15

price = 100
qty = 3
print(f'Total: {price * qty} baht')

Tip

ผลลัพธ์: Total: 300 baht — f-string คำนวณนิพจน์ใน { } ได้ → 100 * 3 = 300

ทำนายผล #16: ชวนคิด

pi = 3.14159
print(f'{pi:.2f}  {pi:.0f}')

Important

ผลลัพธ์: 3.14 3:.2f = ทศนิยม 2 ตำแหน่ง · :.0f = ปัดเป็นจำนวนเต็ม (0 ตำแหน่ง)

ไล่ค่าตัวแปร 🔍

ไล่ค่า และชนิด ของตัวแปรทีละบรรทัด

ไล่ค่าตัวแปร #17: ชวนคิด

x = '6'
x = int(x)
x = x + 4

เติมค่าและชนิดของ x หลังแต่ละบรรทัด

บรรทัด x ชนิด
1 '6' str
2 ? ?
3 ? ?

Tip

บรรทัด x ชนิด
1 '6' str
2 6 int
3 10 int

ต้อง int() ก่อน x ถึงจะบวกเลขได้ (ถ้ายังเป็น str + 4 จะ error)

หา Bug 🐞

โค้ดผิดตรงไหน — ทำไม

หา Bug #18

name = 'Ploy'
print('Hello, {name}!')

อยากได้ Hello, Ploy! แต่ได้ Hello, {name}! — ผิดตรงไหน?

Important

ผิด: ลืมใส่ f นำหน้า string → {name} ไม่ถูกแทนค่า แก้: print(f'Hello, {name}!')

Engineering Application 🔧

จัดรูปแบบผลลัพธ์การวัด/คำนวณด้วย f-string

Engineering #19

เติมโค้ดแสดงค่าอุณหภูมิเป็นทศนิยม 2 ตำแหน่ง พร้อมหน่วย

temp = 36.6789
print(f'Temperature: {temp:.2f} C')
Temperature: 36.68 C

Engineering #20: แรงดันไฟฟ้า

I = 0.5       # กระแส (A)
R = 330       # ความต้านทาน (Ω)
print(f'V = {I * R:.1f} V')

Tip

ผลลัพธ์: V = 165.0 V — f-string คำนวณ I*R แล้วจัดเป็นทศนิยม 1 ตำแหน่ง

Engineering #21: ประสิทธิภาพ (%)

output = 180      # กำลังออก (W)
input_p = 200     # กำลังเข้า (W)
eff = output / input_p * 100
print(f'Efficiency: {eff:.1f}%')

Tip

ผลลัพธ์: Efficiency: 90.0% — คำนวณ output/input×100 แล้วจัดทศนิยม 1 ตำแหน่งใน f-string

ท้าทาย 🔥

รวมหลายขั้น: แยกข้อมูล → แปลงชนิด → คำนวณ → จัดรูป

ท้าทาย #22: เฉลี่ยคะแนนจาก input

รับ "80 90 70" แล้วหาค่าเฉลี่ย แสดงทศนิยม 2 ตำแหน่ง

data = "80 90 70"
a, b, c = data.split()
avg = (int(a) + int(b) + int(c)) / 3
print(f'Average: {avg:.2f}')
Average: 80.00

จบการทบทวน 🎉

ทบทวนเนื้อหาเต็มได้ที่ Module 3b · กลับไป Module 3a