ถึงตอนนี้คุณได้เรียนรู้ว่า:
- รัน Python ผ่านโหมดโต้ตอบและสคริปต์
- ใช้งานตัวเลข (จำนวนเต็ม/ทศนิยม) และตัวดำเนินการพื้นฐาน
- สร้างตัวแปรและตั้งชื่ออย่างมีความหมาย
- จัดการสตริง,
print,input
แค่ผสมองค์ประกอบเหล่านี้ก็สร้างมินิโปรแกรมได้แล้ว ลงมือทดลองบ่อย ๆ จะเข้าใจลึกขึ้นอีกมาก
โจทย์ที่ 1: แปลงอุณหภูมิ #
เขียนโปรแกรมแปลง Fahrenheit เป็น Celsius โดยใช้สูตร C = (F - 32) * 5 / 9
กรุณากรอกค่า Fahrenheit: 77
อุณหภูมิแบบ Celsius คือ 25.0°
inputคืนค่าเป็น string ต้องแปลงก่อนคำนวณ หากอยากปัดทศนิยมใช้round()
ตัวอย่างที่แสดงทศนิยม 1 ตำแหน่ง
fahrenheit_text = input("กรุณากรอกค่า Fahrenheit: ")
fahrenheit = float(fahrenheit_text)
celsius = (fahrenheit - 32) * 5 / 9
print(f"อุณหภูมิแบบ Celsius คือ {round(celsius, 1)}°")โจทย์ที่ 2: ตั้งปลุก #
รับเวลาปัจจุบัน (ชั่วโมง 0-23 และนาที 0-59) พร้อมจำนวน “นาทีจากนี้” แล้วแสดงเวลาปลุก
ชั่วโมงปัจจุบัน (0-23): 21
นาทีปัจจุบัน (0-59): 30
อีกกี่นาทีจากนี้? 90
เวลาปลุกคือ 23:00
เมื่อเวลาล้น 24 ชั่วโมง ให้ใช้เศษจากการหารด้วย
24 * 60
ใช้การหารเอาเศษเพื่อวนกลับในช่วง 24 ชั่วโมง
hour = int(input("ชั่วโมงปัจจุบัน (0-23): "))
minute = int(input("นาทีปัจจุบัน (0-59): "))
after = int(input("อีกกี่นาทีจากนี้? "))
total = hour * 60 + minute + after
total %= 24 * 60
alarm_hour = total // 60
alarm_minute = total % 60
print(f"เวลาปลุกคือ {alarm_hour:02d}:{alarm_minute:02d}")
โจทย์ที่ 3: สมุดค่าใช้จ่าย (ต่อยอดได้) #
บันทึกค่าใช้จ่ายตลอดสัปดาห์ จากนั้นคำนวณผลรวมและค่าเฉลี่ย เริ่มจากใช้ตัวแปรทีละวัน หากทำได้แล้วลองปรับให้ใช้ลิสต์หรือวนลูป
ค่าใช้จ่ายวันจันทร์: 1200
ค่าใช้จ่ายวันอังคาร: 980
...
รวมทั้งหมด xxxx บาท
เฉลี่ยต่อวัน xxxx บาท
หากเริ่มสังเกตว่ากำลังเขียนโค้ดซ้ำ ๆ ให้เตรียมใจไว้สำหรับบทถัดไปที่มี
forกับwhile
ตัวอย่างเรียบง่ายที่ใช้แต่ตัวแปร
mon = int(input("ค่าใช้จ่ายวันจันทร์: "))
tue = int(input("ค่าใช้จ่ายวันอังคาร: "))
wed = int(input("ค่าใช้จ่ายวันพุธ: "))
thu = int(input("ค่าใช้จ่ายวันพฤหัสบดี: "))
fri = int(input("ค่าใช้จ่ายวันศุกร์: "))
sat = int(input("ค่าใช้จ่ายวันเสาร์: "))
sun = int(input("ค่าใช้จ่ายวันอาทิตย์: "))
total = mon + tue + wed + thu + fri + sat + sun
average = total / 7
print(f"รวมทั้งหมด {total} บาท")
print(f"เฉลี่ยต่อวัน {average:.1f} บาท")
หากเปลี่ยนเป็นลิสต์ จะนำไปสู่การใช้ลูปได้ง่ายขึ้น
ปัญหาที่เจอบ่อย #
| ปัญหา | สาเหตุและวิธีแก้ |
|---|---|
NameError: name 'value' is not defined | ลืมสร้างตัวแปรหรือสะกดผิด ตรวจตำแหน่งและการสะกด |
ValueError: invalid literal for int() | มีตัวอักษรที่ไม่ใช่ตัวเลขในค่าที่ส่งให้ int() ตรวจอินพุตหรือเตรียม try/except (จะเรียนในบทต่อ ๆ ไป) |
ต่อ string กับตัวเลขแล้วได้ TypeError | ใช้ + ระหว่างตัวเลขกับ string – เปลี่ยนเป็น f-string หรือแปลงด้วย str() |
ขอแสดงความยินดี บท “ไวยากรณ์พื้นฐาน” เสร็จเรียบร้อย ต่อไปคือ “เงื่อนไขและลูป” เพื่อสร้างโปรแกรมที่มีการตัดสินใจและทำงานซ้ำ พักสายตาสักหน่อย แล้วกลับมาทบทวนจุดที่ยังไม่มั่นใจก่อนเดินหน้าต่อ