แบบฝึกหัดภาษาปิยะธอน¶
แบบฝึกหัดภาษาปิยะธอนที่ 1¶
ให้พิมพ์ข้อมูลของตัวนักเรียนเองออกมาทีละบรรทัด ดังต่อไปนี้ รหัสนักเรียน ชื่อ นามสกุล และที่อยู่
รหัสนักเรียน = "66001"
ชื่อ = "สมชาย"
นามสกุล = "ใจดี"
ที่อยู่ = "123 ถ.สุขุมวิท กรุงเทพฯ"
พิมพ์(รหัสนักเรียน)
พิมพ์(ชื่อ)
พิมพ์(นามสกุล)
พิมพ์(ที่อยู่)
แบบฝึกหัดภาษาปิยะธอนที่ 2¶
ให้คำนวณหาค่าพื้นที่ของสามเหลี่ยม โดยกำหนดค่าฐาน คือ 5 เมตร และค่าความสูง คือ 10 เมตร
ฐาน = 5
สูง = 10
พื้นที่ = 0.5 * ฐาน * สูง
พิมพ์(f"พื้นที่สามเหลี่ยม = {พื้นที่} ตารางเมตร")
แบบฝึกหัดภาษาปิยะธอนที่ 3¶
ให้ผู้ใช้ป้อนเลขจำนวนเต็ม 3 จำนวน แล้วคำนวณหาค่าเฉลี่ย
เลข1 = จำนวนเต็ม(รับข้อมูล("ป้อนเลขที่ 1: "))
เลข2 = จำนวนเต็ม(รับข้อมูล("ป้อนเลขที่ 2: "))
เลข3 = จำนวนเต็ม(รับข้อมูล("ป้อนเลขที่ 3: "))
ค่าเฉลี่ย = (เลข1 + เลข2 + เลข3) / 3
พิมพ์(f"ค่าเฉลี่ย = {ค่าเฉลี่ย}")
แบบฝึกหัดภาษาปิยะธอนที่ 4¶
ให้ผู้ใช้ป้อนรัศมีและความสูง แล้วคำนวณหาปริมาตรของทรงกระบอก
พาย = 3.14
รัศมี = ทศนิยม(รับข้อมูล("ป้อนรัศมี: "))
สูง = ทศนิยม(รับข้อมูล("ป้อนความสูง: "))
ปริมาตร = พาย * รัศมี * รัศมี * สูง
พิมพ์(f"ปริมาตรทรงกระบอก = {ปริมาตร} ลูกบาศก์เมตร")
แบบฝึกหัดภาษาปิยะธอนที่ 5¶
ให้คำนวณหามุมที่เหลือของสามเหลี่ยม โดยรับค่ามุมจากผู้ใช้มา 2 ค่า
มุม1 = ทศนิยม(รับข้อมูล("ป้อนมุมที่ 1: "))
มุม2 = ทศนิยม(รับข้อมูล("ป้อนมุมที่ 2: "))
มุม3 = 180 - มุม1 - มุม2
พิมพ์(f"มุมที่เหลือ = {มุม3} องศา")
แบบฝึกหัดภาษาปิยะธอนที่ 6¶
เขียนโปรแกรมที่แจ้งให้ผู้ใช้ป้อนตัวเลขสองตัว แล้วแสดงข้อความ "ค่าบวก" หรือ "ไม่ใช่ค่าบวก"
เลข1 = ทศนิยม(รับข้อมูล("ป้อนเลขที่ 1: "))
เลข2 = ทศนิยม(รับข้อมูล("ป้อนเลขที่ 2: "))
ถ้า เลข1 > 0 และ เลข2 > 0:
พิมพ์("ค่าบวก")
อื่น:
พิมพ์("ไม่ใช่ค่าบวก")
แบบฝึกหัดภาษาปิยะธอนที่ 7¶
เขียนโปรแกรมที่แจ้งให้ผู้ใช้ป้อนค่าอุณหภูมิสามค่า
อุณหภูมิ1 = ทศนิยม(รับข้อมูล("ป้อนอุณหภูมิที่ 1: "))
อุณหภูมิ2 = ทศนิยม(รับข้อมูล("ป้อนอุณหภูมิที่ 2: "))
อุณหภูมิ3 = ทศนิยม(รับข้อมูล("ป้อนอุณหภูมิที่ 3: "))
ค่าเฉลี่ย = (อุณหภูมิ1 + อุณหภูมิ2 + อุณหภูมิ3) / 3
ถ้า ค่าเฉลี่ย > 40:
พิมพ์("คลื่นความร้อนทำงาน")
อื่น:
พิมพ์("อุณหภูมิปกติ")
แบบฝึกหัดภาษาปิยะธอนที่ 8¶
ให้ผู้ใช้ป้อนค่า x แล้วนำค่านั้นมาคำนวณ x1+x2+x3+x4+x5 โดยใช้คำสั่ง "สำหรับ"
x = ทศนิยม(รับข้อมูล("ป้อนค่า x: "))
ผลรวม = 0
สำหรับ i ใน ช่วง(1, 6):
ผลรวม += x ** i
พิมพ์(f"ผลรวม = {ผลรวม}")
แบบฝึกหัดภาษาปิยะธอนที่ 9¶
ให้ผู้ใช้ป้อนค่าจำนวนเต็มบวกหนึ่งค่า และให้แสดงเลขเริ่มที่จำนวนเต็มนั้น โดยลดลงทีละหนึ่ง จนถึงเลข 1
เลข = จำนวนเต็ม(รับข้อมูล("ป้อนเลข: "))
ขณะ เลข >= 1:
พิมพ์(เลข)
เลข -= 1
แบบฝึกหัดภาษาปิยะธอนที่ 10¶
จงเขียนฟังก์ชันเพื่อรับค่าตัวเลขจำนวนเต็มจากผู้ใช้ แล้วนำค่ามาเก็บไว้ในตัวแปรประเภท List
นิยาม คำนวณกำลังสอง():
ตัวเลข = []
จำนวน = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนตัวเลข: "))
สำหรับ _ ใน ช่วง(จำนวน):
เลข = จำนวนเต็ม(รับข้อมูล("ป้อนตัวเลข: "))
ตัวเลข.เพิ่ม(เลข)
ผลคูณ = 1
สำหรับ เลข ใน ตัวเลข:
ผลคูณ *= เลข ** 2
คืนค่า ผลคูณ
ผลลัพธ์ = คำนวณกำลังสอง()
พิมพ์(f"ผลคูณของกำลังสอง = {ผลลัพธ์}")
แบบฝึกหัดภาษาปิยะธอนที่ 11¶
ให้ผู้ใช้ป้อนราคาสินค้าและจำนวนเงินที่ลูกค้าจ่าย แล้วคำนวณเงินทอน พร้อมแสดงผลออกมา
ราคา = ทศนิยม(รับข้อมูล("ป้อนราคาสินค้า: "))
เงินจ่าย = ทศนิยม(รับข้อมูล("ป้อนจำนวนเงินที่จ่าย: "))
เงินทอน = เงินจ่าย - ราคา
พิมพ์(f"เงินทอน = {เงินทอน} บาท")
แบบฝึกหัดภาษาปิยะธอนที่ 12¶
เขียนโปรแกรมรับค่าน้ำหนักและส่วนสูง แล้วคำนวณค่าดัชนีมวลกาย (BMI) โดยใช้สูตร น้ำหนัก (กิโลกรัม) หารด้วยส่วนสูง (เมตร) ยกกำลังสอง
น้ำหนัก = ทศนิยม(รับข้อมูล("ป้อนน้ำหนัก (กก.): "))
ส่วนสูง = ทศนิยม(รับข้อมูล("ป้อนส่วนสูง (ม.): "))
ดัชนีมวลกาย = น้ำหนัก / (ส่วนสูง ** 2)
พิมพ์(f"ค่าดัชนีมวลกาย (BMI) = {ดัชนีมวลกาย:.2f}")
แบบฝึกหัดภาษาปิยะธอนที่ 13¶
ให้ผู้ใช้ป้อนคะแนนสอบ 5 วิชา แล้วคำนวณหาค่าเฉลี่ย และแสดงเกรดตามเงื่อนไข: คะแนนมากกว่า 80 ได้ A, 70-79 ได้ B, 60-69 ได้ C, 50-59 ได้ D, ต่ำกว่า 50 ได้ F
คะแนนรวม = 0
สำหรับ i ใน ช่วง(5):
คะแนน = ทศนิยม(รับข้อมูล(f"ป้อนคะแนนวิชาที่ {i+1}: "))
คะแนนรวม += คะแนน
เฉลี่ย = คะแนนรวม / 5
ถ้า เฉลี่ย > 80:
เกรด = "A"
อื่นถ้า เฉลี่ย >= 70:
เกรด = "B"
อื่นถ้า เฉลี่ย >= 60:
เกรด = "C"
อื่นถ้า เฉลี่ย >= 50:
เกรด = "D"
อื่น:
เกรด = "F"
พิมพ์(f"คะแนนเฉลี่ย = {เฉลี่ย:.2f}")
พิมพ์(f"เกรด = {เกรด}")
แบบฝึกหัดภาษาปิยะธอนที่ 14¶
เขียนโปรแกรมคำนวณค่าไฟฟ้า โดยรับจำนวนหน่วยที่ใช้ และคิดราคาดังนี้: 0-50 หน่วย คิดหน่วยละ 3 บาท, 51-100 หน่วย คิดหน่วยละ 4 บาท, มากกว่า 100 หน่วย คิดหน่วยละ 5 บาท
หน่วย = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนหน่วยไฟฟ้า: "))
ค่าไฟ = 0
ถ้า หน่วย <= 50:
ค่าไฟ = หน่วย * 3
อื่นถ้า หน่วย <= 100:
ค่าไฟ = (50 * 3) + ((หน่วย - 50) * 4)
อื่น:
ค่าไฟ = (50 * 3) + (50 * 4) + ((หน่วย - 100) * 5)
พิมพ์(f"ค่าไฟฟ้า = {ค่าไฟ} บาท")
แบบฝึกหัดภาษาปิยะธอนที่ 15¶
ให้เขียนฟังก์ชันรับค่าตัวเลขหนึ่งจำนวน แล้วตรวจสอบว่าเป็นจำนวนเฉพาะหรือไม่
นิยาม เป็นจำนวนเฉพาะ(เลข):
ถ้า เลข < 2:
คืนค่า เท็จ
สำหรับ i ใน ช่วง(2, จำนวนเต็ม(เลข ** 0.5) + 1):
ถ้า เลข % i == 0:
คืนค่า เท็จ
คืนค่า จริง
เลข = จำนวนเต็ม(รับข้อมูล("ป้อนตัวเลข: "))
ถ้า เป็นจำนวนเฉพาะ(เลข):
พิมพ์(f"{เลข} เป็นจำนวนเฉพาะ")
อื่น:
พิมพ์(f"{เลข} ไม่เป็นจำนวนเฉพาะ")
แบบฝึกหัดภาษาปิยะธอนที่ 16¶
เขียนโปรแกรมสร้างรูปสามเหลี่ยมด้วยเครื่องหมาย * โดยรับค่าความสูงของสามเหลี่ยมจากผู้ใช้
สูง = จำนวนเต็ม(รับข้อมูล("ป้อนความสูงของสามเหลี่ยม: "))
สำหรับ i ใน ช่วง(สูง):
ช่องว่าง = " " * (สูง - i - 1)
ดาว = "*" * (2 * i + 1)
พิมพ์(ช่องว่าง + ดาว)
แบบฝึกหัดภาษาปิยะธอนที่ 17¶
ให้ผู้ใช้ป้อนข้อความหนึ่งประโยค แล้วนับจำนวนตัวอักษร ตัวเลข และช่องว่างในประโยคนั้น
ข้อความ = รับข้อมูล("ป้อนข้อความ: ")
ตัวอักษร = 0
ตัวเลข = 0
ช่องว่าง = 0
สำหรับ ตัว ใน ข้อความ:
ถ้า ตัว.isalpha():
ตัวอักษร += 1
อื่นถ้า ตัว.isdigit():
ตัวเลข += 1
อื่นถ้า ตัว.isspace():
ช่องว่าง += 1
พิมพ์(f"จำนวนตัวอักษร: {ตัวอักษร}")
พิมพ์(f"จำนวนตัวเลข: {ตัวเลข}")
พิมพ์(f"จำนวนช่องว่าง: {ช่องว่าง}")
แบบฝึกหัดภาษาปิยะธอนที่ 18¶
เขียนโปรแกรมสร้างรูปสามเหลี่ยมด้วยเครื่องหมาย * โดยรับค่าความสูงของสามเหลี่ยมจากผู้ใช้
สูง = จำนวนเต็ม(รับข้อมูล("ป้อนความสูงของสามเหลี่ยม: "))
สำหรับ i ใน ช่วง(สูง):
ช่องว่าง = " " * (สูง - i - 1)
ดาว = "*" * (2 * i + 1)
พิมพ์(ช่องว่าง + ดาว)
แบบฝึกหัดภาษาปิยะธอนที่ 19¶
ให้เขียนฟังก์ชันรับค่าตัวเลขสองจำนวน แล้วหาค่า ห.ร.ม. (หารร่วมมาก) ของจำนวนทั้งสอง
นิยาม หารร่วมมาก(a, b):
ขณะ b != 0:
a, b = b, a % b
คืนค่า a
เลข1 = จำนวนเต็ม(รับข้อมูล("ป้อนเลขที่ 1: "))
เลข2 = จำนวนเต็ม(รับข้อมูล("ป้อนเลขที่ 2: "))
ผลลัพธ์ = หารร่วมมาก(เลข1, เลข2)
พิมพ์(f"ห.ร.ม. ของ {เลข1} และ {เลข2} คือ {ผลลัพธ์}")
แบบฝึกหัดภาษาปิยะธอนที่ 20¶
เขียนโปรแกรมรับค่าอุณหภูมิในหน่วยเซลเซียส แล้วแปลงเป็นฟาเรนไฮต์และเคลวิน พร้อมแสดงผลทั้งสามหน่วย
เซลเซียส = ทศนิยม(รับข้อมูล("ป้อนอุณหภูมิ (°C): "))
ฟาเรนไฮต์ = (เซลเซียส * 9/5) + 32
เคลวิน = เซลเซียส + 273.15
พิมพ์(f"เซลเซียส: {เซลเซียส}°C")
พิมพ์(f"ฟาเรนไฮต์: {ฟาเรนไฮต์}°F")
พิมพ์(f"เคลวิน: {เคลวิน}K")
แบบฝึกหัดภาษาปิยะธอนที่ 21¶
ให้ผู้ใช้ป้อนจำนวนวินาที แล้วแปลงเป็นชั่วโมง นาที วินาที เช่น 3665 วินาที = 1 ชั่วโมง 1 นาที 5 วินาที
วินาที = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนวินาที: "))
ชั่วโมง = วินาที // 3600
วินาที_เหลือ = วินาที % 3600
นาที = วินาที_เหลือ // 60
วินาที_สุดท้าย = วินาที_เหลือ % 60
พิมพ์(f"{ชั่วโมง} ชั่วโมง {นาที} นาที {วินาที_สุดท้าย} วินาที")
แบบฝึกหัดภาษาปิยะธอนที่ 22¶
เขียนโปรแกรมจำลองการทอยลูกเต๋า n ครั้ง (รับค่า n จากผู้ใช้) แล้วแสดงความถี่ของแต่ละหน้าที่ออก
จาก สุ่ม นำเข้า randint
จำนวนครั้ง = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนครั้งที่ต้องการทอย: "))
ความถี่ = [0] * 6
สำหรับ _ ใน ช่วง(จำนวนครั้ง):
ผล = randint(1, 6)
ความถี่[ผล - 1] += 1
สำหรับ i ใน ช่วง(6):
พิมพ์(f"หน้า {i + 1}: {ความถี่[i]} ครั้ง")
แบบฝึกหัดภาษาปิยะธอนที่ 23¶
ให้เขียนฟังก์ชันรับค่าตัวเลขหนึ่งจำนวน แล้วแสดงผลตัวเลขนั้นในรูปแบบเลขโรมัน
นิยาม แปลงเป็นเลขโรมัน(เลข):
ค่า = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
สัญลักษณ์ = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
ผลลัพธ์ = ""
สำหรับ i ใน ช่วง(ความยาว(ค่า)):
ขณะ เลข >= ค่า[i]:
ผลลัพธ์ += สัญลักษณ์[i]
เลข -= ค่า[i]
คืนค่า ผลลัพธ์
เลข = จำนวนเต็ม(รับข้อมูล("ป้อนตัวเลข: "))
พิมพ์(f"เลขโรมัน: {แปลงเป็นเลขโรมัน(เลข)}")
แบบฝึกหัดภาษาปิยะธอนที่ 24¶
เขียนโปรแกรมรับค่าจำนวนเงินบาท แล้วคำนวณจำนวนธนบัตรและเหรียญที่ต้องใช้ (1000, 500, 100, 50, 20, 10, 5, 2, 1 บาท)
เงิน = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนเงิน: "))
หน่วยเงิน = [1000, 500, 100, 50, 20, 10, 5, 2, 1]
สำหรับ หน่วย ใน หน่วยเงิน:
จำนวน = เงิน // หน่วย
ถ้า จำนวน > 0:
พิมพ์(f"{หน่วย} บาท: {จำนวน}")
เงิน = เงิน % หน่วย
แบบฝึกหัดภาษาปิยะธอนที่ 25¶
ให้ผู้ใช้ป้อนคำหนึ่งคำ แล้วตรวจสอบว่าเป็นคำพาลินโดรม (อ่านจากซ้ายไปขวาและขวาไปซ้ายได้คำเดียวกัน) หรือไม่
คำ = รับข้อมูล("ป้อนคำ: ")
คำกลับด้าน = คำ[::-1]
ถ้า คำ == คำกลับด้าน:
พิมพ์(f"{คำ} เป็นคำพาลินโดรม")
อื่น:
พิมพ์(f"{คำ} ไม่เป็นคำพาลินโดรม")
แบบฝึกหัดภาษาปิยะธอนที่ 26¶
เขียนโปรแกรมคำนวณค่างวดผ่อนรถ โดยรับราคารถ, เงินดาวน์ และจำนวนงวดแล้วคำนวณค่างวดต่อเดือน (คิดดอกเบี้ย 3% ต่อปี)
ราคารถ = ทศนิยม(รับข้อมูล("ป้อนราคารถ: "))
เงินดาวน์ = ทศนิยม(รับข้อมูล("ป้อนเงินดาวน์: "))
จำนวนงวด = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนงวด: "))
เงินต้น = ราคารถ - เงินดาวน์
ดอกเบี้ยต่อปี = 0.03
ดอกเบี้ยต่อเดือน = ดอกเบี้ยต่อปี / 12
ค่างวด = (เงินต้น * (1 + ดอกเบี้ยต่อปี)) / จำนวนงวด
พิมพ์(f"ค่างวดต่อเดือน = {ค่างวด:.2f} บาท")
แบบฝึกหัดภาษาปิยะธอนที่ 27¶
ให้เขียนฟังก์ชันรับค่าตัวเลขหนึ่งจำนวน แล้วแสดงผลเลขฟีโบนักชีจนถึงตำแหน่งที่กำหนด
นิยาม ฟีโบนักชี(n):
ถ้า n <= 0:
คืนค่า []
ถ้า n == 1:
คืนค่า [0]
ถ้า n == 2:
คืนค่า [0, 1]
ลำดับ = [0, 1]
สำหรับ i ใน ช่วง(2, n):
ลำดับ.เพิ่ม(ลำดับ[i-1] + ลำดับ[i-2])
คืนค่า ลำดับ
n = จำนวนเต็ม(รับข้อมูล("ป้อนตำแหน่งสุดท้าย: "))
ผลลัพธ์ = ฟีโบนักชี(n)
พิมพ์(f"ลำดับฟีโบนักชี: {ผลลัพธ์}")
แบบฝึกหัดภาษาปิยะธอนที่ 28¶
เขียนโปรแกรมรับข้อมูลนักเรียน (รหัส, ชื่อ, คะแนน) หลายคน เก็บในรูปแบบ Dictionary แล้วแสดงข้อมูลนักเรียนที่ได้คะแนนสูงสุด
นักเรียน = {}
จำนวน = จำนวนเต็ม(รับข้อมูล("ป้อนจำนวนนักเรียน: "))
สำหรับ i ใน ช่วง(จำนวน):
รหัส = รับข้อมูล(f"ป้อนรหัสนักเรียนที่ {i+1}: ")
ชื่อ = รับข้อมูล(f"ป้อนชื่อนักเรียน: ")
คะแนน = จำนวนเต็ม(รับข้อมูล(f"ป้อนคะแนน: "))
นักเรียน[รหัส] = {"ชื่อ": ชื่อ, "คะแนน": คะแนน}
คะแนนสูงสุด = max(นักเรียน.values(), key=lambda x: x["คะแนน"])
สำหรับ รหัส, ข้อมูล ใน นักเรียน.items():
ถ้า ข้อมูล["คะแนน"] == คะแนนสูงสุด["คะแนน"]:
พิมพ์(f"นักเรียนที่ได้คะแนนสูงสุด:")
พิมพ์(f"รหัส: {รหัส}")
พิมพ์(f"ชื่อ: {ข้อมูล['ชื่อ']}")
พิมพ์(f"คะแนน: {ข้อมูล['คะแนน']}")
แบบฝึกหัดภาษาปิยะธอนที่ 29¶
ให้ผู้ใช้ป้อนจำนวนเงินเริ่มต้นและอัตราดอกเบี้ยต่อปี แล้วคำนวณว่าต้องใช้เวลากี่ปีเงินจึงจะเพิ่มเป็น 2 เท่า
เงินต้น = ทศนิยม(รับข้อมูล("ป้อนเงินเริ่มต้น: "))
ดอกเบี้ย = ทศนิยม(รับข้อมูล("ป้อนอัตราดอกเบี้ยต่อปี (%): ")) / 100
เป้าหมาย = เงินต้น * 2
ปี = 0
เงินปัจจุบัน = เงินต้น
ขณะ เงินปัจจุบัน < เป้าหมาย:
เงินปัจจุบัน *= (1 + ดอกเบี้ย)
ปี += 1
พิมพ์(f"ต้องใช้เวลา {ปี} ปี")
แบบฝึกหัดภาษาปิยะธอนที่ 30¶
เขียนโปรแกรมสร้างเกมทายตัวเลข โดยสุ่มตัวเลข 1-100 แล้วให้ผู้เล่นทาย พร้อมบอกใบ้ว่ามากไปหรือน้อยไป จนกว่าจะทายถูก
จาก สุ่ม นำเข้า randint
เลขที่ถูก = randint(1, 100)
ครั้งที่ทาย = 0
ขณะ จริง:
คำตอบ = จำนวนเต็ม(รับข้อมูล("ทายตัวเลข (1-100): "))
ครั้งที่ทาย += 1
ถ้า คำตอบ == เลขที่ถูก:
พิมพ์(f"ถูกต้อง! คุณทายถูกในครั้งที่ {ครั้งที่ทาย}")
หยุด
อื่นถ้า คำตอบ < เลขที่ถูก:
พิมพ์("น้อยไป ลองใหม่")
อื่น:
พิมพ์("มากไป ลองใหม่")