ใช้เงื่อนไข if ซ้อนเงื่อนไข if เขียนโปรแกรมเพื่อตัดสินใจซื้อหนังสือ

 

โจทย์

ร้านหนังสือจัดโปรโมชั่นส่วนลดให้กับลูกค้าสำหรับหนังสือที่มีราคาเกิน 50 บาทดังนี้

  • ถ้าซื้อหนังสือเพียง 1 เล่มได้รับส่วนลด 5 บาท

  • ถ้าซื้อหนังสือ 2 เล่มขึ้นไปแต่ไม่เกิน 5 เล่มได้รับส่วนลดเล่มละ 10 บาททุกเล่ม

  • ถ้าซื้อหนังสือตั้งแต่ 6 เล่มขึ้นไปได้รับส่วนลดเล่มละ 12 บาททุกเล่มหรือลด 5% จากราคารวมโดยเลือกสิทธิที่ได้รับส่วนลดมากกว่า

จงเขียนโปรแกรมเพื่อคำนวณส่วนลดที่ลูกค้าจะได้รับ

โปรแกรม

n = int(input("How many books have you bought?"))
p = int(input("How much do you pay for the books?"))
if n == 1:
    print("Your discount is 5 bahts.")
elif n <= 5:
    print("Your discount is %d bahts." % n * 10)
elif n >= 6:
    d1 = n * 12
    d2 = p * 0.05
    if d1 > d2:
        print("Your discount is %d bahts." % d1)
    else:
        print("Your discount is %d bahts." % d2)

คำอธิบายโปรแกรม

  1. โปรแกรมเริ่มต้นด้วยการรับข้อมูลจากผู้ใช้:

    • n คือจำนวนหนังสือที่ซื้อ

    • p คือราคารวมของหนังสือทั้งหมด

  2. จากนั้นโปรแกรมใช้เงื่อนไข if-elif เพื่อตรวจสอบจำนวนหนังสือและคำนวณส่วนลด:

    • ถ้า n == 1 (ซื้อหนังสือ 1 เล่ม):

      • แสดงผลว่าได้ส่วนลด 5 บาท

    • ถ้า n <= 5 (ซื้อหนังสือ 2-5 เล่ม):

      • คำนวณส่วนลดโดย n * 10 (ส่วนลดเล่มละ 10 บาท)

      • แสดงผลส่วนลดที่ได้

    • ถ้า n >= 6 (ซื้อหนังสือ 6 เล่มขึ้นไป):

      • คำนวณส่วนลดแบบที่ 1: d1 = n * 12 (ส่วนลดเล่มละ 12 บาท)

      • คำนวณส่วนลดแบบที่ 2: d2 = p * 0.05 (ส่วนลด 5% จากราคารวม)

      • เปรียบเทียบ d1 กับ d2:

        • ถ้า d1 มากกว่า d2 แสดงผลส่วนลด d1

        • ถ้าไม่ใช่ แสดงผลส่วนลด d2

  3. โปรแกรมจะแสดงผลส่วนลดที่ลูกค้าจะได้รับตามเงื่อนไขที่กำหนด