3.1. จุดประสงค์รายสัปดาห์
3.2. ตัวเลขประเภทต่างๆ (Numeric Data Types)
3.3. ค่าใดเป็น int ค่าใดเป็น float?
3, 3.99, 4, 2, 3.0, 4, 8, 7., 1 3.4. การตรวจดูชนิดของข้อมูลtype(3) # <class 'int'> type(3.44) # <class 'float'> age = 32 type(age) # <class 'int'> 3.5. ทำไมตัวเลขมี 2 ประเภท?
3.6. ตัวดำเนินการ (Operators)ตารางแสดงตัวดำเนินการ
หมายเหตุ: การหารเอาเศษนั้นมาจากสมการ \[a = d q + r\] โดย
3.7. กฏการหาผลลัพธ์เมื่อใช้ตัวดำเนินการ
type( 3.0 + 4.0 ) type( 3 + 4 ) type( 3.0 * 4.0 ) type( 3 * 4 ) type( 10.0 / 3.0 ) type( 10 / 3 ) type( 10 // 3 ) type( 10.0 // 3.0 ) 3.8. ลำดับการประมวลผลเมื่อสมการมีทั้ง int และ float
3.9. การเปลี่ยนประเภทของตัวเลขfloat(22//5) # 4.0 int(4.5) # 4 int("4") # 4 float("32") # 32.0 round(3.9) # 4 round(3) # 3 round(3.1415926, 2) # 3.14 หมายเหตุ : * ควรใช้ float(), int() ในการแปลงตัวเลขจากผู้ใช้แทน eval() * เพราะข้อมูลที่ผู้ใช้กรอกจะตรงกับที่ต้องการใช้ * ถ้าผู้ใช้กรอกไม่ตรง โปรแกรมจะปิดและมีข้อความแสดงข้อผิดพลาด - error message 3.10. ตัวอย่างโปรแกรม# รวมตังค์ print("โปรแกรมรวมตังค์") print() print("กรอกจำนวนเงินตามประเภท") tens = int(input("มูลค่า 10 มีจำนวน: ")) twenties = int(input("แบงค์ 20 มีจำนวน: ")) fifties = int(input("แบงค์ 50 มีจำนวน: ")) hundreds = int(input("แบงค์ 100 มีจำนวน: ")) total = tens*10 + twenties*20 + fifties*50 + hundreds*100 print() print("รวมมีเงินทั้งหมด ", total) 3.11. การใช้ชุดคำสั่ง math libraryนอกจากการใช้ตัวดำเนินการทางคณิตศาสตร์เช่น
ตัวอย่างฟังก์ชันที่สามารถใช้ได้ใน math library ตารางสรุป
3.12. ตัวอย่างโปรแกรมซอฟต์แวร์สำหรับเพื่อแก้สมการ \(ax^2 + bx + c = 0\)
Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ \[x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\]
import math a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2)) # หรือ print(f'(x1={x1}, x2={x2})')
รันโปรแกรมแล้วกรอกค่าทดสอบต่อไปนี้ ว่าสามารถทำงานได้จริงหรือมีข้อผิดพลาดหรือไม่? ข้อมูลทดสอบชุดที่ 1
3.13. Errorกรอกค่า a: 1 กรอกค่า b: 2 กรอกค่า c: 3 Traceback (most recent call last): File "<pyshell#26>", line 1, in -toplevel- main() File "...", line 14, in ... ValueError: math domain error >>> 3.14. Exercises
กำนดสมการในการคำนวณหาความเร็วปลาย \(v_s\) คือ \[v_s = v_0 + at\] หน่วยวัด
ข้อมูลนำเข้า ข้อมูลนำเข้ามีบรรทัดเดียวเป็นชุดของตัวเลข 3 จำนวนคั่นด้วย ข้อมูลส่งออก ตัวเลขหนึ่งตัวระบุค่าของ \(v_s\) ตัวอย่างข้อมูล
3.15. การเขียนโปรแกรมสะสมค่าเป็นการเขียนโปรแกรมที่จำเป็นต้องมีการคำนวณมากกว่า 1 ครั้งจึงจะได้ผลลัพธ์ เช่น
3.15.1. ตัวอย่างการเขียนโปรแกรมสะสมค่า เพื่อบวก 5 ตัวเลข
Input - ตัวเลข 5 ตัวเลข Output - ผลรวม 5 ตัวเลข Process - เก็บสะสมผลรวมของตัวเลขที่ผู้ใช้กรอกมาเรื่อยจนครบ 5 ตัวเลข \[total = total + x\] เมื่อ \(x\) แทนค่าที่ผู้ใช้กรอก
total = 0 x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x print('ผลรวมคือ '+str(total)) # หรือ print(f'ผลรวมคือ {total}')
รันโปรแกรมแล้วกรอกค่าทดสอบต่อไปนี้ ว่าสามารถทำงานได้จริงหรือมีข้อผิดพลาดหรือไม่? ตัวอย่างข้อมูลชุดที่ 1
3.16. คำสั่งทำซ้ำ n ครั้งจากตัวอย่างข้างต้นจะเห็นว่าการเขียนโปรแกรมที่มีการทำงานซ้ำๆกันด้วยคำสั่งชุดเดิมๆ จะเกิดขึ้นบ่อยมาก ดังนั้นจึงมีคำสั่งทำซ้ำ จากตัวอย่างการเขียนโปรแกรมเพื่อบวก 5 ตัวเลข total = 0 x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x print('ผลรวมคือ '+str(total)) # หรือ print(f'ผลรวมคือ {total}') สามารถนำมาเขียนใหม่โดยใช้ total = 0 for i in range(5): x = int(input('กรอกค่า x: ')) total = total + x print(f'ผลรวมคือ {total}') 3.16.1. Exercise
ข้อมูลนำเข้า (Input) ตัวเลขทศนิยม 10 ตัวเลข แทน gpa ของนักศึกษา 10 คน ตัวเลขละบรรทัด ข้อมูลส่งออก (Output) ตัวเลขแสดงผลรวมของ gpa ของนักศึกษาทั้ง 10 คน ตัวอย่างข้อมูลนำเข้า-ส่งออก ตัวอย่างข้อมูล
ข้อมูลนำเข้า (Input) ตัวเลขทศนิยม 10 ตัวเลข แทน gpa ของนักศึกษา 10 คน ตัวเลขละบรรทัด ข้อมูลส่งออก (Output) ตัวเลขแสดงผลเฉลี่ยของ gpa ของนักศึกษาทั้ง 10 คน ตัวอย่างข้อมูล
3.16.2. ถ้าผู้ใช้ต้องการกรอกจำนวนตัวเลขเองtotal = 0 n = int(input('จำนวนตัวเลขที่ต้องการกรอก: ')) for i in range(n): x = int(input('กรอกค่า x: ')) total = total + x print(f'ผลรวมคือ {total}')ตัวอย่างข้อมูลชุดที่ 1
3.16.3. Exercise
ข้อมูลนำเข้า (Input) บรรทัดแรกเป็นตัวเลขจำนวนเต็ม \(n\) ระบุจำนวนนักศึกษา \(n\) บรรทัดถัดมาเป็นตัวเลขทศนิยมระบุค่า gpa ของนักศึกษาแต่ละคน ข้อมูลส่งออก (Output) ตัวเลขทศนิยมหนึ่งค่า ระบุผลรวมของ gpa ของนักศึกษาทั้งหมด ตัวอย่างข้อมูลนำเข้า-ส่งออก ตัวอย่างข้อมูลชุดที่ 1
3.17. ฟังก์ชัน range( )
for i in range(1, 9): print(i); # 1 2 3 4 5 6 7 8 for i in range(1, 20, 2): print(i, end=' '); # 1 3 5 7 9 11 13 15 17 19 3.18. Exerciseจงเขียนคำสั่งทำซ้ำเพื่อให้ได้ผลลัพธ์ต่อไปนี้
3.19. การใช้ลำดับแทน range( )3.19.1. ลำดับ (sequence) ~ Recallลำดับ (sequence) หมายถึง ชุดของข้อมูลที่มีสมาชิกเรียงกันเป็นลำดับมีตำแหน่งของสมาชิกแต่ละตัวชัดเจน เช่น 3.44, 2.22, 3.00, 3.50, 3.66 เป็นลำดับที่มีสมาชิกดังนี้
ตัวอย่างการเขียนชุดข้อมูลที่เป็นลำดับในภาษา Python [3.44, 2.22, 3.00, 3.50, 3.66] [1, 2, 3, 4, 5] ['avocado', 'banana', 'cranberry', 'durian'] 3.19.2. การใช้คำสั่งทำซ้ำกับลำดับfor i in [1, 2, 3, 4, 5]: print(i) for i in [3.44, 2.22, 3.00, 3.50, 3.66]: print(i) for fruit in ['avocado', 'banana', 'cranberry', 'durian']: print(fruit) 3.19.3. การใช้คำสั่งทำซ้ำเพื่อสะสมค่าtotal = 0 for i in [1, 2, 3, 4, 5]: total += i print(f'total = {total}') totalGpa = 0.0 for i in [3.44, 2.22, 3.00, 3.50, 3.66]: totalGpa += i print(f'totalGpa = {totalGpa}') allFruit = '' for fruit in ['avocado', 'banana', 'cranberry', 'durian']: allFruit += fruit print(f'allFruit = {allFruit}') 3.20. การตรวจสอบค่าสะสมในแต่ละขั้นตอนtotal = 0 for i in [1, 2, 3, 4, 5]: total += i print(f'i={i}, total={total}') print(f'total={total}') total = 0 for i in range(1,10): total += i print(f'i={i}, total={total}') print(f 'total={total}') 3.21. การสะสมในแต่ละขั้นตอนด้วยการคูณ หรือตัวดำเนินการอื่นtotal = 1 for i in [1, 2, 3, 4, 5]: total *= i print(f'i={i}, total={total}') print(f'total={total}') total = 1 for i in range(1,10): total /= i print(f'i={i}, total={total}') print(f'total={total}') 3.22. ตัวอย่างการพัฒนาซอฟต์แวร์คำนวณยอดเงินลงทุนใน 10 ปี
3.23. Exercise
\[n! = n \times (n-1) \times (n-2) \times ... \times 2 \times 1\] ตัวอย่างการคำนวณ \[\begin{split}5! = 5 \times 4 \times 3 \times 2 \times 1 \\ 9! = 9 \times 8 \times 7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1\end{split}\] ตัวอย่างข้อมูลนำเข้า-ส่งออก ตัวอย่างข้อมูล
ตัวอย่างการคำนวณ กรอกจำนวนเงินต้น 1000 * สิ้นปีที่ 1 ยอดเงิน เป็น ยอดเงินรวมเป็น 1000 + 1000 * 4 / 100 * สิ้นปีที่ 2 ยอดเงิน เป็น ยอดเงินรวมเป็น 1040.0 + 1040.0 * 4 / 100 * สิ้นปีที่ 3 ยอดเงิน เป็น ยอดเงินรวมเป็น 1081.6 + 1081.6 * 4 / 100 * สิ้นปีที่ 4 ยอดเงิน เป็น ยอดเงินรวมเป็น 1124.8639999999998 + 1124.8639999999998 * 4 / 100 * คำตอบเมื่อสิ้นปีที่ 4 ยอดเงินรวมเป็น 1169.85856ตัวอย่างข้อมูล
|