#!/usr/bin/env python # coding: utf-8 # # กระดาษทดเขียนโปรแกรมม.1 # In[1]: # มีคนสงสัยว่า a,b = 3,4 แปลว่าอะไร # แปลว่าให้ a มีค่า 3 และ b มีค่า 4 a, b = 3, 4 # In[2]: a # In[3]: b # In[4]: # เขียนแบบนี้ก็ได้เหมือนกัน (a, b) = (3, 4) # In[5]: a # In[6]: b # In[7]: # ตัวอย่างพิมพ์ค่า a, b มาด้วย f-string # ดูเพิ่มเติมได้ที่ https://realpython.com/python-f-strings/ print(f'a is {a}, b is {b}') # In[8]: # ตัวอย่างลิสต์ mylist = [1,2,3,4] # In[9]: print(mylist) # In[10]: # เพิ่มของเข้าไปในลิสต์ด้วย append mylist.append(5) print(mylist) # In[11]: # append เพิ่มของทีละตัวเท่านั้น mylist.append(6,7) print(mylist) # In[12]: # เครื่องหมายเปอร์เซ็นต์ทำหน้าที่หาเศษจากการหารให้เรา 1024 % 16 # In[13]: # 5 หารด้วย 2 เหลือเศษ 1 5 % 2 # In[14]: # 1024 หารด้วย 7 เหลือเศษ 2 1024 % 7 # In[15]: # ใช้ == ตรวจว่าสองข้างเท่ากันไหม # ในที่นี้ 1024 หาร 16 ลงตัวหรือเปล่า (ดูว่าหารแล้วเศษเท่ากับ 0 หรือเปล่า) 1024 % 16 == 0 # In[16]: # เราสามารถเอาความรู้นี้มาหาตัวประกอบของ 1024 ได้ # เอาเลข 1, 2, 3, ... 1024 ไปหารดูว่าหารลงตัวไหม # ถ้าหารลงตัวก็เป็นตัวประกอบของ 1024 for i in range(1, 1024 + 1): if 1024 % i == 0: print(i) # In[17]: # หาตัวประกอบของ 577 for i in range(1, 577): if 576 % i == 0: print(i) # In[18]: # ทำเป็นฟังก์ชั่นหาตัวประกอบของตัวเลช x ใดๆ def หาตัวประกอบ(x): for i in range(1, x + 1): if x % i == 0: print(i) # In[19]: หาตัวประกอบ(1) # In[20]: หาตัวประกอบ(20) # In[21]: หาตัวประกอบ(1234567) # In[22]: หาตัวประกอบ(12345678) # In[23]: หาตัวประกอบ(123456789) # In[24]: # นับด้วยว่ามีตัวประกอบกี่ตัว def หาตัวประกอบ(x): count = 0 for i in range(1, x + 1): if x % i == 0: print(i) count = count + 1 print("ตัวประกอบมี " + str(count) + " ตัว" ) # In[25]: หาตัวประกอบ(20) # In[26]: # ฟังก์ชั่นที่ดีควรส่งผลลัพธ์กลับมาให้ผู้ใช้เอาไปทำอะไรต่อได้ให้เป็นประโยชน์มากขึ้น # ดังนั้นเราจะส่งผลลัพธ์เป็นลิสต์ที่มีตัวประกอยไปให้ผู้ใช้แทนที่จะพิมพ์ในฟังก์ชั่นของเรา def หาตัวประกอบ(x): factors = [] for i in range(1, x + 1): if x % i == 0: factors.append(i) return(factors) # สมมุติว่าเราไม่ชอบชื่อเดิมของฟังก์ชั่น เราจะตั้งชื่อใหม่ให้มันด้วยก็ได้ find_factors = หาตัวประกอบ # In[27]: หาตัวประกอบ(20) # In[28]: find_factors(20) # In[29]: # ตัวอย่างเอาผลลัพธ์จากฟังก์ชั่นไปทำอะไรต่อ # ในที่นี้เอามาดูว่า 20 มีตัวประกอบกี่ตัวด้วย len(...) f = หาตัวประกอบ(20) print(len(f)) # In[30]: # ไล่ดูว่าตัวเลข 1 ถึง 10 แต่ละตัวมีตัวประกอบกี่ตัว for n in range(1,11): factors = หาตัวประกอบ(n) print(n, len(factors)) # In[31]: # เรียงลำดับเลข 1-100 ตามลำดับจำนวนตัวประกอบของมันจากมากไปน้อย results = [] #ลิสต์ที่จะเก็บคู่ลำดัย (จำนวนตัวประกอบ, ตัวเลข) for n in range(1,101): #ไล่ตัวเลขไปตั้งแต่ 1-100 factors = find_factors(n) #หาตัวประกอบของมัน results.append((len(factors),n)) #เก็บคู่ลำดับ (จำนวนตัวประกอบ, ตัวเลข) ไว้ในลิสต์ print(results) #พิมพ์ลิสต์มาดู print("-" * 100) #พิมพ์บรรทัดคั่น print(sorted(results, reverse=True)) #เรียงลำดับ (จำนวนตัวประกอบ, ตัวเลข) ตามจำนวนตัวประกอบจากมากไปน้อยด้วย sorted(..., reverse=True)