#!/usr/bin/env python # coding: utf-8 # # กระดาษทดโปรแกรมมิ่ง ม. 1 # In[1]: # ตัวอย่างตัวแปรประเภทต่างๆ x = 312 #จำนวนเต็ม (int) y = -3.14 #เลขทศนิยม (float) s = "Hello, World." #ข้อความ (string) a = [1, 2, 3, 4 , 100] #ลิสต์ของตัวเลข b = ["A", "Hello", "Good Bye"] #ลิสต์ของข้อความ c = [1, -0.5, "Hello", [3,4], a, b] #ลิสต์ของสิ่งต่างๆหลายแบบ t = (1, 4, 9, 16, 25) #ชุดของตัวเลข (tuple) w = ((1,2,3), (4,5,6)) #ชุดของชุดตัวเลข (tuple of tuples) # In[2]: # เลขจำนวนเต็มบวกกับเลขทศนิยมได้ x + y # In[3]: # เลขจำนวนเต็มบวกกับข้อความไม่ได้ x + s # In[4]: # เลขจำนวนเต็มบวกกับลิสต์ไม่ได้ x + a # In[5]: # ลิสต์กับลิสต์บวกกันได้ a + b # In[6]: # หน้าตาของ c ที่มีลิสต์ a และลิสต์ b เป็นสมาชิกอยู่ด้วย c # In[7]: # เอาเลขจำนวนเต็มบวกคูณกับข้อความได้ 3 * "Hello " # In[8]: # ลองเอาเลขจำนวนเต็มลบคูณกับข้อความดูว่าจะเป็นอย่างไร -3 * "Hello " # In[9]: # ข้อความบวกกับจำนวนเต็มไม่ได้ s + x # In[10]: # ต้องเปลี่ยนจำนวนเต็ม x ให้เป็นข้อความด้วย str(x) ก่อนที่จะเอาไปบวกกับข้อความ s ได้ s + str(x) # In[11]: # เปลี่ยนจำนวนเต็ม x ให้เป็นข้อความด้วย str(x) str(x) # In[12]: # ลองบวกข้อความที่หน้าตาเหมือนตัวเลข "123" กับจำนวนเต็ม 456 # บวกกันไม่ได้ ข้อความบวกกับจำนวนเต็มไม่ได้ p = "123" p + 456 # In[13]: # ถ้าจะบวกให้ได้ ต้องเปลี่ยนข้อความ p ให้เป็นจำนวนเต็มด้วย int(p) ก่อน int(p) + 456 # In[14]: # การทำงานซ้ำๆด้วย for i in range for i in range(1,11): print(i) # In[15]: # ให้คอมพิวเตอร์บวกเลข 1 ถึง 10 ให้ sum = 0 for i in range(1,11): sum = sum + i print(sum) # In[16]: # ให้คอมพิวเตอร์บวกเลข 1 ถึง 1,000,000 ให้ # สังเกตว่าเราใส่ _ แทนที่ , ให้อ่านตัวเลขยาวๆให้ง่ายขึ้นได้ sum = 0 for i in range(1, 1_000_001): sum = sum + i print(sum) # In[17]: # ให้คอมพิวเตอร์บวกเลข 1**2, 2**2, 3**2, ..., 10**2 ให้ sum = 0 for i in range(1,11): sum = sum + i**2 print(sum) # In[18]: # ให้คอมพิวเตอร์บวกเลข 1**3, 2**3, 3**3, ..., 10**3 ให้ sum = 0 for i in range(1,11): sum = sum + i**3 print(sum) # In[19]: # ถ้าจะให้พิมพ์ทีละขั้นตอน ก็ใส่ print ไว้ใต้ for i in range ด้วย sum = 0 for i in range(1,11): sum = sum + i**3 print(sum) # In[20]: # สังเกตว่าผลรวมของตัวเลขกำลังสาม เท่ากับ (ผลรวมตัวเลข)ยกกำลังสอง import math sum = 0 for i in range(1,11): sum = sum + i**3 print(sum, math.sqrt(sum)) # In[21]: # สร้างฟังก์ชั่นมาบวกเลข 1 + 2 + 3 + ... + n def sum_to(n): "คำนวณผลรวม 1 + 2 + 3 + ... + n" sum = 0 for i in range(1,n+1): sum = sum + i return(sum) # In[22]: sum_to(100) # In[23]: sum_to(1) # In[24]: # สร้างฟังก์ชั่นมาบวกเลข 1**2 + 2**2 + 3**2 + ... + n**2 def sum_sqr_to(n): "คำนวณผลรวม 1**2 + 2**2 + 3**2 + ... + n**2" sum = 0 for i in range(1,n+1): sum = sum + i*i return(sum) # In[25]: sum_sqr_to(3) # In[26]: for i in range(11): print(i, sum_to(i), sum_sqr_to(i)) # In[27]: # สร้างฟังก์ชั่นมาบวกเลข 1**3 + 2**3 + 3**3 + ... + n**3 def sum_cube_to(n): "คำนวณผลรวม 1**3 + 2**3 + 3**3 + ... + n**3" sum = 0 for i in range(1,n+1): sum = sum + i**3 return(sum) # In[28]: sum_cube_to(3) # In[29]: for i in range(11): print(i, sum_to(i), sum_sqr_to(i), sum_cube_to(i)) # In[30]: sum_cube_to(0) # In[31]: # สร้างฟังก์ชั่นมาบวกเลข 1**p + 2**p + 3**p + ... + n**p def sum_power_to(n, p): "คำนวณ 1**p + 2**p + 3**p + ... + n**p" sum = 0 for i in range(1, n+1): sum = sum + i ** p return(sum) # In[32]: sum_power_to(10,2) # In[33]: #เปรียบเทียบฟังก์ชั่นบวกเลข 1**p + 2**p + 3**p + ... + n**p # โดยที่ p มีค่าตั้งแต่ 0 ถึง 5 for i in range(11): for power in range(0,6): print(sum_power_to(i,power), " ", end="") print()