Input / Output and f-string
input(), print()input()input().split() — รับหลายค่าพร้อมกันNote
ต่อจาก Module 3a — Variables, Operators, Math 👈
รับข้อมูลจาก user — แสดงผลออกจอ
input() — รับข้อมูลจาก userWarning
int(input()) การเขียนแบบนี้ = assume ว่าสิ่งที่ผู้ใช้พิมพ์เข้ามา แปลงเป็น int ได้
Important
⚠️ input() จะไม่ทำงานบนสไลด์ — ดังนั้นในช่อง Live Code เราจะจำลองค่าด้วย string แทนการรับจาก user จริง (เช่น x = '5') ถ้านำไปรันบนเครื่องจริงให้เปลี่ยนกลับเป็น input() ได้เลย
input() พร้อมข้อความแจ้ง userแสดงข้อความถาม user ขณะรอรับข้อมูล
รับค่าตัวเลขจาก user เก็บในตัวแปร x — ตรวจสอบ type ของ x
จากนั้นคำนวณ \(y = x^3\) โดยให้ y เป็น float
รับชื่อเล่นจาก user แล้วแสดงผลว่า Hello, (ชื่อเล่น). Nice to meet you!
เงื่อนไข: ใช้ operator +
input().split() — รับหลายค่าพร้อมกันถ้าต้องการรับข้อมูลหลายค่าพร้อมกัน (คั่นด้วยช่องว่าง)?
.split() ตัดข้อความด้วย ช่องว่าง (space)'John Doe' → 'John' กับ 'Doe'Warning
จำนวนตัวแปรต้องพอดี กับจำนวนคำที่ split ได้!
ถ้าพิมพ์ 3 คำ แต่มีแค่ 2 ตัวแปร → ValueError
Note
คำสั่ง .split() ถ้าตามหลัง string จะแยก string ที่คั่นด้วย whitespace ออกจากกัน เช่น
'John Doe'.split() → 'John' กับ 'Doe'
'Happy New\tYear'.split() → 'Happy' กับ 'New' กับ 'Year'
รับ ชื่อ และ นามสกุล จาก user (คั่นด้วยช่องว่าง)
ก่อนที่จะรับค่า ให้แสดงข้อความว่า
Please enter your name and last name (separate with one space):
แล้วแสดงผล Hello,(name). Your Last Name is (lastname)
เงื่อนไข: ใช้เครื่องหมาย + ในการเชื่อม string
ถ้าใช้ input() โดยไม่มี .split() แล้วป้อน John Doe
จะได้ผลเหมือน input().split() หรือไม่?
ไม่เหมือน!
name = input() → name = 'John Doe' (ทั้ง string)name, lname = input().split() → name = 'John', lname = 'Doe' (แยก 2 ตัว)ข้อมูลจาก user อาจไม่เป็นอย่างที่เราคิด — ตรวจสอบเสมอ!
ที่มา: xkcd #327 — “Exploits of a Mom” (CC BY-NC 2.5)
การจัดรูปแบบการแสดงผล — f'...{var}...'
ใช้ f นำหน้า string แล้วแทรกค่าตัวแปรด้วย {}
Important
ถ้าไม่มี f นำหน้า string ก็จะกลายเป็น string ธรรมดา และ {} ก็จะไม่มีความหมายพิเศษ
โจทย์ #38 — สองวิธีนี้ให้ผลเหมือนหรือต่างกัน?
กำหนด format specifier ต่อท้ายตัวแปรใน {} ด้วยเครื่องหมาย : เช่น {var:.2f} เพื่อจัดรูปแบบการแสดงผล
แสดงชื่อและเกรด Hello, (name). You get GPA (grade).
โดยใช้ f-string
รับค่าส่วนสูงของนักเรียน 2 คน (a, b), หาค่าเฉลี่ย แล้วแสดงผลด้วย f-string
เงื่อนไข: แก้เฉพาะบรรทัดที่ 3 (ใน print()) เท่านั้น และพิมพ์ทศนิยม 4 ตำแหน่ง
Input / Output
input() — ได้ str เสมอint(input()), float(input()) — แปลงชนิดก่อนคำนวณinput().split() — รับหลายค่าพร้อมกันprint() — แสดงผลออกจอf-string
f'...{var}...' — แทรกค่าตัวแปรด้วย {}+){x:.2f} — ทศนิยม 2 ตำแหน่ง{x:5} — กำหนดความกว้าง🏠 259201 — Module 3b | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่