คุยกับคอมพิวเตอร์: มารับค่าจากผู้ใช้กัน!

เคยสงสัยไหมว่าโปรแกรมรู้ได้อย่างไรว่าเราชื่ออะไร หรืออยากทำอะไร?

วันนี้เราจะมาเรียนรู้วิธีทำให้โปรแกรมของเรา **"ฟัง"** สิ่งที่เราพิมพ์จากคีย์บอร์ด!

User Interaction Concept

โปรแกรมของเราจะฉลาดขึ้น เมื่อมันสามารถโต้ตอบกับเราได้!

ฟังก์ชัน `input()`: การ 'ถาม' ผู้ใช้

ใน Python, เราใช้ฟังก์ชัน **`input()`** เพื่อ "ถาม" ผู้ใช้ให้พิมพ์ข้อมูลเข้ามาทางคีย์บอร์ด

ข้อมูลที่ผู้ใช้พิมพ์จะถูกเก็บไว้ใน **ตัวแปร** ที่เรากำหนด


# โครงสร้างพื้นฐาน
ชื่อตัวแปร = input("ข้อความที่คุณต้องการถามผู้ใช้: ")

# ตัวอย่าง
my_name = input("คุณชื่ออะไร? ")
print("สวัสดีครับ " + my_name + "!")
        

ลองพิมพ์โค้ดด้านล่างนี้ดูสิ!

พิมพ์โค้ดแล้วกด "รันโค้ด" (อย่าลืมพิมพ์คำตอบในช่อง Output ด้วยนะ!):

โปรดป้อนข้อมูลในช่องนี้ หลังจากข้อความปรากฏ:

ปัญหาคือ: `input()` เป็น String เสมอ!

ไม่ว่าผู้ใช้จะพิมพ์อะไรเข้ามา (ตัวเลข, ตัวอักษร) ฟังก์ชัน `input()` จะมองว่าเป็น **String (ข้อความ)** เสมอ!

ถ้าเราต้องการนำค่าที่รับมาไปคำนวณทางคณิตศาสตร์ จะเกิดปัญหา!


# ตัวอย่างปัญหา:
age_str = input("คุณอายุเท่าไหร่? ") # รับมาเป็น String เช่น "10"
# age_next_year = age_str + 1 # จะเกิด Error เพราะเอา String ไปบวกตัวเลขไม่ได้!

print(type(age_str)) # ผลลัพธ์: <class 'str'>
        

ลองดูว่าเกิดอะไรขึ้นถ้าเราไม่แปลงชนิดข้อมูล!

พิมพ์โค้ดแล้วกด "รันโค้ด" (ลองป้อนตัวเลข แล้วดูผลลัพธ์):

โปรดป้อนข้อมูลในช่องนี้ หลังจากข้อความปรากฏ:

วิธีแก้: แปลงชนิดข้อมูลด้วย `int()`, `float()`, `str()`

เราสามารถใช้ฟังก์ชันเหล่านี้เพื่อเปลี่ยนชนิดข้อมูลได้:


# ตัวอย่างการแปลง:
age_str = input("คุณอายุเท่าไหร่? ") # รับมาเป็น String เช่น "10"
age_int = int(age_str)              # แปลง "10" เป็น 10 (Integer)

print("ปีหน้าคุณจะอายุ " + str(age_int + 1) + " ปี")

price_str = input("ราคาสินค้า: ") # รับมาเป็น String เช่น "99.50"
price_float = float(price_str)   # แปลง "99.50" เป็น 99.50 (Float)
total = price_float * 1.07       # คำนวณ + ภาษี 7%
print("ราคารวมภาษี: " + str(total))
        

การแปลงชนิดข้อมูลสำคัญมากนะ!

ส่งงานที่ https://chipit.ac.th/com/python/worksend/

💡 แบบฝึกหัด 1: โปรแกรมทักทายอัจฉริยะ!

มาสร้างโปรแกรมที่ทักทายผู้ใช้ พร้อมบอกอายุในปีหน้ากันเถอะ!

โจทย์:

1. รับ **ชื่อ** ของผู้ใช้ เก็บในตัวแปรชื่อ user_name

2. รับ **อายุ** ของผู้ใช้ (เป็นตัวเลข) เก็บในตัวแปรชื่อ user_age

3. คำนวณหาอายุในปีหน้า (user_age + 1) เก็บในตัวแปรชื่อ next_age

4. แสดงข้อความทักทายผู้ใช้ว่า: **"สวัสดี [ชื่อผู้ใช้]! ปีหน้าคุณจะมีอายุ [อายุปีหน้า] ปี!"**


ตัวอย่างการทำงาน:
คุณชื่ออะไร? (ผู้ใช้ป้อน) สมชาย
คุณอายุเท่าไหร่? (ผู้ใช้ป้อน) 10
สวัสดี สมชาย! ปีหน้าคุณจะมีอายุ 11 ปี!
            

โปรดป้อนข้อมูลในช่องนี้ เมื่อโปรแกรมถาม:

💡 แบบฝึกหัด 2: เครื่องคิดเลขจิ๋ว!

มาสร้างโปรแกรมเครื่องคิดเลขง่ายๆ ที่รับตัวเลข 2 จำนวนแล้วนำมาบวกกัน!

โจทย์:

1. รับ **ตัวเลขตัวแรก** จากผู้ใช้ เก็บในตัวแปรชื่อ num1

2. รับ **ตัวเลขตัวที่สอง** จากผู้ใช้ เก็บในตัวแปรชื่อ num2

3. นำ num1 และ num2 มา **บวกกัน** (ต้องแปลงชนิดข้อมูลก่อนนะ!)

4. แสดงผลลัพธ์ว่า: **"ผลรวมคือ: [ผลรวม]"**


ตัวอย่างการทำงาน:
ป้อนตัวเลขตัวแรก: (ผู้ใช้ป้อน) 10
ป้อนตัวเลขตัวที่สอง: (ผู้ใช้ป้อน) 25
ผลรวมคือ: 35
            

โปรดป้อนข้อมูลในช่องนี้ เมื่อโปรแกรมถาม:

📝 แบบทดสอบความเข้าใจ

มาทดสอบความเข้าใจเรื่อง `input()` และการแปลงชนิดข้อมูลกัน!

ข้อ 1: ฟังก์ชันใดใช้สำหรับรับค่าจากผู้ใช้ทางคีย์บอร์ดใน Python?

ข้อ 2: ค่าที่ได้จากฟังก์ชัน `input()` จะมีชนิดข้อมูลเป็นอะไรเสมอ?

ข้อ 3: ถ้าต้องการรับตัวเลข 15 เพื่อนำไปบวกเลข 10 โค้ดใดถูกต้อง?