คำนวณน้ำหนักคนลงเรือ โดยใช้เงื่อนไข if-else และการวนแบบ while
โจทย์
เรือรับน้ำหนักคนลงเรือได้ไม่เกิน 1,000 กิโลกรัมให้นักเรียนออกแบบและเขียนโปรแกรมรับน้ำหนักคนลงเรือทีละคนแล้วตรวจสอบว่าน้ำหนักคนที่จะลงเรือร่วมกับคนที่อยู่ในเรือว่าเกินตามกำหนดหรือไม่
ถ้าไม่เกินแสดงข้อความว่า คุณสามารถลงเรือได้
แต่ถ้าน้ำหนักรวมเกินกำหนดแสดงข้อความว่า คุณไม่สามารถลงเรือได้
โปรแกรม
total_weight = 0
passengers = {}
while True:
name = input("What is your name?")
if not name:
break
weight = int(input("What is your weight?"))
if total_weight + weight < 1000:
passengers[name] = weight
total_weight += weight
print(f"Welcome {name}. You can board the ship.")
else:
print(f"Sorry {name}. You cannot board the ship.")
break
print('All passengers are ', passengers)
คำอธิบายโปรแกรม
โปรแกรมนี้ทำงานตามขั้นตอนดังนี้
สร้างตัวแปร
total_weight
เพื่อเก็บน้ำหนักรวมของผู้โดยสารทั้งหมด โดยเริ่มต้นที่ 0สร้างดิกชันนารี
passengers
เพื่อเก็บชื่อและน้ำหนักของผู้โดยสารแต่ละคนเริ่มลูป
while True
เพื่อรับข้อมูลผู้โดยสารไปเรื่อยๆ:รับชื่อผู้โดยสารด้วยฟังก์ชัน
input()
และเก็บในตัวแปรname
ถ้าไม่มีการป้อนชื่อ (กด Enter โดยไม่ใส่ข้อมูล) จะออกจากลูปด้วยคำสั่ง
break
รับน้ำหนักของผู้โดยสารด้วยฟังก์ชัน
input()
แปลงเป็นจำนวนเต็มด้วยint()
และเก็บในตัวแปรweight
ตรวจสอบว่าน้ำหนักรวมของผู้โดยสารทั้งหมด (
total_weight
) บวกกับน้ำหนักของผู้โดยสารคนใหม่ (weight
) ไม่เกิน 1,000 กิโลกรัมหรือไม่:ถ้าไม่เกิน:
เพิ่มชื่อและน้ำหนักของผู้โดยสารคนใหม่ลงในดิกชันนารี
passengers
เพิ่มน้ำหนักของผู้โดยสารคนใหม่เข้าไปใน
total_weight
แสดงข้อความต้อนรับผู้โดยสารคนใหม่
ถ้าเกิน:
แสดงข้อความว่าผู้โดยสารคนใหม่ไม่สามารถลงเรือได้
ออกจากลูปด้วยคำสั่ง
break
เมื่อออกจากลูป แสดงรายชื่อและน้ำหนักของผู้โดยสารทั้งหมดที่ลงเรือได้จากดิกชันนารี
passengers
โปรแกรมนี้แสดงการใช้งานลูป while
, การใช้เงื่อนไข if-else
, การใช้ดิกชันนารี, และการใช้ f-string ในภาษาไพทอน เพื่อจำลองการรับผู้โดยสารลงเรือตามเงื่อนไขน้ำหนักที่กำหนด