บทที่ 3: การแสดงผลและการรับค่า (พื้นฐาน)

พิมพ์ผลลัพธ์ด้วย print() อย่างสวยงาม และรับอินพุตด้วย input() อย่างถูกต้อง พร้อมพรีวิวรันโค้ดจำลอง

ควบคุมตัวคั่นและท้ายบรรทัดด้วย sep / end

ตัวอย่าง ผลลัพธ์ อธิบาย
print("A","B","C", sep="-") A-B-C sep คือ ตัวคั่นระหว่างอาร์กิวเมนต์
print("Hello", end="") Hello ไม่ขึ้นบรรทัดใหม่ต่อท้าย
print("X", end="|"); print("Y") X|Y ควบคุมการต่อบรรทัดด้วย end

อักขระพิเศษ (Escape)

โค้ด ผล
\n ขึ้นบรรทัดใหม่
\t แท็บ
\" / \' ใส่อัญประกาศในสตริง
print("บรรทัดที่ 1\nบรรทัดที่ 2")
print("คอลัมน์1\tคอลัมน์2")
print("เขียน \"อัญประกาศ\" ในสตริง")
พรีวิวผลลัพธ์
print("บรรทัดที่ 1\nบรรทัดที่ 2")
print("คอลัมน์1\tคอลัมน์2")
print("เขียน \"อัญประกาศ\" ในสตริง")

                        

ฟอร์แมตข้อความอย่างสวยด้วย f-string & ฟอร์แมตตัวเลข

f-string คือสตริงที่มีตัวแปร/นิพจน์ในวงเล็บปีกกา {} อ่านง่าย เร็ว และยืดหยุ่น

name = "นีน่า"; age = 16; gpa = 3.85; n = 1234567
print(f"สวัสดี {name} อายุ {age} ปี GPA = {gpa:.2f}")
print(f"จำนวนทั้งหมด = {n:,}")            # คั่นหลักด้วยคอมมา
p = 0.07
print(f"ภาษี = {p:.0%}")                   # เป็นเปอร์เซ็นต์
print(f"|{42:>5}|{42:^5}|{42:<5}|")         # จัดชิดขวา/กลาง/ซ้าย
ทดลอง f-string ด้วยค่าของคุณ
print(f"สวัสดี {name} อายุ {age} ปี GPA = {gpa:.2f}")
print(f"จำนวนทั้งหมด = {n:,}")
print(f"ภาษี = {p:.0%}")

                        

เคล็ดลับจัดตารางด้วยความกว้างคงที่

items = [("ดินสอ", 5, 7.5), ("ยางลบ", 2, 12.0), ("สมุด", 1, 29)]
print(f"{'สินค้า':<10} {'จำนวน':>6} {'ราคา':>10}")
for name, qty, price in items:
    print(f"{name:<10} {qty:>6} {price:>10.2f}")
พรีวิวผลลัพธ์
สินค้า        จำนวน        ราคา
ดินสอ            5       7.50
ยางลบ            2      12.00
สมุด             1      29.00

                        

พื้นฐานการรับค่า input()

input() คืนค่าเป็น str เสมอ จึงต้องแปลงเป็น int/float เมื่อจะคำนวณ

# รับค่าแบบมีพรอมต์ และพิมพ์สรุปด้วย f-string
name = input("กรุณากรอกชื่อ: ").strip()
age  = int(input("กรุณากรอกอายุ: "))
gpa  = float(input("กรุณากรอก GPA: "))
print(f"{name} อายุ {age} ปี GPA = {gpa:.2f}")
จำลอง input() ➜ output
name = input(...).strip()
age  = int(input(...))
gpa  = float(input(...))
print(f"{name} อายุ {age} ปี GPA = {gpa:.2f}")

                        

แปลงชนิดและทำความสะอาดข้อมูล

แปลงชนิด

int("12"), float("3.5"), str(100)

ตัดช่องว่าง

s.strip() ตัดหัว-ท้าย, s.replace() แทนที่

ป้องกันพัง

ใช้ str.isdigit() ตรวจเลข หรือ try/except จับข้อผิดพลาด

ตัวอย่างตรวจอินพุตแบบง่าย

raw = input("ระบุจำนวนชิ้น: ").strip()
if raw.isdigit():
    n = int(raw)
    print("จำนวน =", n)
else:
    print("กรุณากรอกเป็นจำนวนเต็ม")

แบบฝึกหัดตรวจอัตโนมัติ

ข้อ 1) สร้างข้อความด้วย f-string

รูปแบบ: สวัสดี {name} อายุ {age} ปี

เฉลย: f"สวัสดี {name} อายุ {age} ปี"

ข้อ 2) ทำนายผลลัพธ์จาก sep/end

print("A","B","C", sep="-")
print("X", end="|"); print("Y")
เฉลย: บรรทัดที่ 1 = A-B-C, บรรทัดที่ 2 = X|Y

ข้อ 3) ราคารวมสองตำแหน่งทศนิยม

รูปแบบ: Total = {n*price:.2f}

เฉลย: ใช้ f"Total = {(n*price):.2f}"

ข้อ 4) จัดรูปแบบจำนวนด้วยคอมมา

รูปแบบ: f"n = {n:,}"

เฉลย: n = {n:,} โดยแทนค่า n จริง

ข้อ 5) คาดเดาผลลัพธ์จากอักขระพิเศษ

print("A\\nB")
print("C\\tD")
เฉลย: บรรทัดที่ 1 แสดง A และ B คนละบรรทัด / บรรทัดที่ 2: C\tD มีแท็บคั่น