วันอังคารที่ 20 ธันวาคม พ.ศ. 2559

example2

เมื่อทำการเรียนใช้ฟังก์ชัน ตัวแปรที่ส่งเข้ามาในฟังก์ชันใช้สำหรับตรวจสอบว่าตัวนั้นเป็นจำนวนเฉพาะหรือไม่ y ทำหน้าที่ในการวนรอบ count ทำหน้าที่ วนหาตัวที่สามารถหารลงตัว

def prime(x):
 
    y = 2
    while x > y :
     
        print(x ,"%",y ,"= ",x%y)
        count = 2
     
        while x > count :
            if x%count == 0 :
                ans = "NP"
                break
            else:
                ans = "P"
             
            count += 1
         
        y += 1
     
    print(ans)
prime(7)




วันอาทิตย์ที่ 18 ธันวาคม พ.ศ. 2559

example

ตัวอย่าง


การหาค่า ดัชนีมวลกาย รับค่าส่วนสูงและน้ำหนักจากแป้นพิมพ์  โดยมีเงือนไข ถ้า น้ำหนักเท่ากับศูนย์จะไม่คำนวน


wght = float(input("Enter weight :"))
if wght <= 10:
    print("light weight")
hght = float(input("Enter height :"))
if hght == 0 :
    print("It's impossoble")

hm = hght / 100
#print("height :",hm)
if hm == 0 :
    print("not calculate")
else :
    bmi = wght / hm**2 
    print(bmi)
    print("bye bye")






การหาเลขจำนวนเฉพาะ ตั้งแต่ 2 - 100 ว่ามีตัวไหนบ้าง


i = 2
while i < 100 :
    j = 2
    
    while j <= i :
        if i%j == 0 :
            break
        j += 1
    if j > i//j :
        print (i) 
    i += 1    




การหาว่าเลขดังกล่าวเป็น เลขจำนวนเฉพาะหรือไม่

a = 2
num = 14
while num > a :
  if num%a == 0 & a != num :
        print("not prime by :",a)
        a += 1
    
  else:
        print("prime")
        a = num + 1


a = 2
num = 17
while num > a :
  if num%a == 0 & a != num :
        print("not prime by :",a)
        a += 1
    
  else:
        print("prime")
        a = num + 1






หากเอาเงื่อนไข  a != num  ออก ได้หรือไม่


a = 2
num = 12
while num > a :
  if num%a == 0  :
        print("not prime by :",a)
        a += 1
 
  else:
        print("prime")
        a = num + 1

สามารถเอาออกได้ เพื่อคลอบคลุมเงื่อนไขที่ดีกว่า

เช่นในกรณีที่ ตัวสุดท้ายที่ต้องวนรอบ num%a == 0 (12%12 == 0) ก็จะไปเข้ากรณี else แทน


การเรียกใช้ฟังค์ชันที่มีการรับค่าตัวแปรเพื่อนำไปคำนวนในฟังก์ชัน


def number(b):
    a = 1
    while a <= b :
        print(a)
        a += 1
    return()
b = 20
#c = 15
number(b)
print("/////////")



การหาค่า factorial การเรียกใช้ฟังค์ชันที่มีการรับค่าตัวแปรเพื่อนำไปคำนวนในฟังก์ชัน เมื่อเราใช้คำสั่ง
print(factorial(3)) ก็จะนำค่าไปคำนวนในฟังก์ชัน แล้ว return ค่าออกมาแสดง



def factorial(n):
    count = 1
    for i in range(1, n + 1 ):
        count *= i
    return count

print(factorial(3))
print(factorial(5))




การหา ค่าสูงสุด จาก สาม ค่า โดยจะส่งค่าไปยังฟังกฺชัน max เพื่อเปรียบเทียบหาค่าที่มากว่ากันสองค่า
แล้วทำการ return ค่าออกไป เมื่อต้องการเปรียบเทียบ สาม ค่า ก็ทำซ้ำอีกรอบ นำเลขตัวที่สาม ไปเปรียบเทียบกับค่าที่ถูกส่งมาก่อนหน้านี้


def max(a, b):
    if a > b:
        return a
    else:
        return b

def max3(a, b, c):
    return max(max(a, b), c)

print(max3(3, 7, 12))



การหาค่าสูงสุด โดยรับค่ามาจากแป้นพิมพ์

def max(a, b):
    if a > b:
        return a
    else:
        return b
    
print(max(int(input("num1 :")), int(input("num2 :"))))



วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2559

Flow Chart

Flow Chart


if...else

if else นั้นเป็นการกำหนดทางเลือกอื่น หากกรณีนั้นไม่ตรงกับเงื่อนไขที่อยู่ใน if ก็จะทำงานคำสั่งต่างๆ ที่อยู่ใน else แทน


else...if

else if เราจะใช้ในกรณีที่เรามีเงื่อนไขคำสั่งเยอะๆ ซึ่งแต่ละเงื่อนไขนั้นแตกต่างกัน else if นั้นเป็นสิ่งที่มาเสริมให้กับคำสั่ง if นั้นสมบูรณ์รัดกุมกับเงื่อนไขมากขึ้น

while loop



       โดยการใช้ while จะดูเงื่อนไขใน while โดยตรง ถ้าเกิดเข้าเงื่อนไขก็จะมีการวนลุปไปเรื่อยๆ


for loop


  การใช้ loop for นั้นมีรูปแบบการใช้ดังนี้
for(ค่าเริ่มต้น;เงื่อนไข;การเพิ่มค่า)
      ชุดคำสั่ง
ค่าเริ่มต้น คือ ค่าเริ่มต้นที่เราใช้กำหนดเพื่อใช้ในเงื่อนไข
เงื่อนไข คือ เงื่อนไขที่ใช้ในการเช็คว่าจะเข้าไปทำงานในชุดคำสั่งที่เรากำหนดไว้หรือไม่
การเพิ่มค่า คือค่าที่เราจะทำการกระทำ เพื่อเชคเงื่อนไข ตอนจบการทำงานในแต่ละ loop

วันพุธที่ 23 พฤศจิกายน พ.ศ. 2559

Class

Class
ประเภทข้อมูล
·         จำนวน              ใช้        int หรือ float
·         ข้อความ             ใช้         str
·         จริง/เท็จ             ใช้           boolean
·         กลุ่มข้อมูล          ใช้           list, set, tuple, dict


คลาสเพื่อสร้างประเภทข้อมูลที่ต้องการ
·        
ใช้คลาสประกาศองค์ประกอบของข้อมูลประเภทใหม่ว่าประกอบด้วยข้อมูลย่อยๆ อะไรบ้าง


·         เมื่อประกาศคลาสแล้ว สามารถสร้างที่เก็บข้อมูลเรียกว่า อ็อบเจกต์(object) ด้วยการเรียกใช้ constructor




การสร้างอ็อบเจกต์

            คลาส คือประเภทข้อมูล  อ็อบเจกต์คือตัวข้อมูล




แต่ละอ็อบเจกต์มีตัวแปรประจำอ็อบเจ็กต์ของตนเอง




การใช้ / เปลี่ยนค่าของตัวแปรอ็อบเจกต์
           

b1.price  อ่านว่า ตัวแปร price ของอ็อบเจกต์ b1
ตัวอย่าง : class song


Function

Function

แบ่งโปรแกรมออกเป็นส่วนย่อยๆ
·         เรียกส่วนย่อยว่า subroutine, subprogram, function, method
·         แต่ละ function มีหน้าที่ในตัวเองอย่างเด่นชัด
·         โปรแกรมอ่านง่าย
·         function เรียกใช้ได้หลายครั้ง


โปรแกรมเริ่มต้น



โปรแกรม เมื่อมี function


องค์ประกอบของฟังก์ชัน




ต้องเยื้องคำสั่งทั้งหลายในฟังก์ชันให้ตรงกัน
ส่วนหัว : ชื่อฟังก์ชัน
·         ใช้กฎตั่งชื่อเหมือนกับตัวแปร
·         มักตั้งชื่อฟังก์ชันขึ้นต้นด้วยอักษรตัวเล็ก
·         มักตั้งชื่อฟังก์ชันให้เป็นกริยา
ส่วนหัว : รายการของพารามิเตอร์
·         parameter คือตัวแปรสำหรับข้อมูลจากผู้เรียก
·         รายการของ parameter อยู่ภายในวงเล็บ(ถ้าไม่รับ parameter ใดๆ ก็ไม้ต้องใส่อะไรในวงเล็บ)



ส่วนตัวของฟังก์ชัน
·         คำสั่งต่างๆที่ทำงานตามข้อกำหนด
·         ถ้าต้องการคืนผลการทำงานให้ผู้เรียกใช้คำสั่ง return คามด้วยค่าที่ต้องการคืนผลลัพธ์


·         ถ้าต้องการคืนหลายค่า ก็คืนเป็น tuple หรือ list



ส่วนตัว : Local Variables
·         พารามิเตอร์และตัวแปรในฟังก์ชันก์ใด เป็นตัวแปรที่ใช้ได้ในฟังก์ชันนั้น
ชื่อซ้ำกันได้ ถ้าอยู่คนละฟังก์ชัน
เรียกใช้ตัวแปร ที่อยู่คนละฟังก์ชันไม่ได้

ตัวแปรของผู้เรียกกับของฟังก์ชันเป็นคนละตัว
                ตัวแปรเก็บ int, float, bool ของฟังก์ชันเปลี่ยนแค่ของผู้เรียกไม่เปลี่ยน เพราะคนละตัว
กรณีเป็นตัวแปรแบบ list, tuple, set, dict ตัวแปรของผู้เรียกกับพารามอเตร์ของฟังก์ชันเป็นคนละตัว แต่อ้างอิงที่เก็บข้อมูลเดียวกัน


เมื่อใดควรเขียนฟังก์ชันใหม่
·         เมื่อฟังกืชันที่เขียนอยู่ยาวเกินไปหรือเข้าใจได้ยาก
·         เมื่อมีกลุ่มคำสั่งที่เขียนซ้ำกัน หรือทำงานเหมือนกัน แต่ทำกับข้อมูลต่างกัน

ข้อแนะนำการเชียนฟังก์ชัน
·         ควรตั้งชื่อสือความหมาย
·         ควรมีภาวะที่ต้องทำหนึ่งอย่างตามชื่อ
·         ควรสั้นกระทัดรัด อ่านเข้าใจง่าย
·         ควรพารามิเตอร์จำนวนไม่มาก







Recursive Function : ฟังก์ชันแบบเวียนเกิด

            ความสำพัน์เวียนเกิด (Recurrences)
·         การเขียนคสามสัมพัน์ของจำนวนเต็มในลำดับ






ข้อดี-ข้อด้อย
การเขียนแบบ recursive มีทั่งข้อดีและข้อด้อย
ข้อดี
·         สั้นกระทัดรัด
·         ในบางกรณี มุมมองแบบ recursive จะทำให้เห็น วิธีแก้ปัณหาได้ง่ายขึ้น
·         ถ้าจำนวนชั้นของ loop ไม่ คงที่ การใช้ recursive จะง่ายกว่ามาก
ข้อด้อย
·         บางครั้งการทำงายช้ากว่าแบบ loop
·         ใช้หน่วยความจำมากกว่า

การคำนวณ 




ตัวอย่าง flatten_list






List

List

ตัวอย่างการใช้งาน




 List คือ รายการของข้อมูล
            [2,3,5,7,12,15,19,28]
            [“SUN”,”MON” ,”TUE” ,”WED” ,”THU” ,”FRI” ,”SAT”]
            [23587,”Sometime”,[“A” ,”B”,”C”]]
            []  ß empty list


การใช้และการเปลี่ยนแปลงค่าแต่ละข้อมูลใน list




เราสามารเปลี่ยนข้อมูลใน list ได้ ซึ่ง ใน string เปลี่ยนไม่ได้


 

len(list) : ความยาวของ list (จำนวนข้อมูลใน list)



จาก  print(len(x[1])) เกิด error เพราะ len จะไม่รับค่าที่เป็น int จะรับค่าที่เป็น string list …

การใช้และการเปลี่ยนแปลงรายการย่อยใน list

การใช้



            การเปลี่ยนแปลงค่าใน list



การเพิ่มและลบข้อมูลใน list




ตำแหน่งของข้อมูลใน list
·         ต้องเป็น int หรือเป็นช่วง int:int               x[3]      x[3:5]
·         เป็นตัวแปรที่เก็บข้อมูลแบบ int                  x[i]
·         เป็นexpression ที่ให้ผลเป็น int                  x[2*i+1]


การค้นข้อมูลใน list (c in x)






List กับ วงวน for

 
         

for e in x กับ for i in range




บริการของสตริงเพิ่มเติม : split และ join
·         เมื่อนำ             string ไป split จะได้ list

list ไป join จะได้ string



ตัวอย่าง : การหาค่าเฉลี่ยของชุดข้อมูล



ตัวอย่าง การแยก วัน/เดือน/ปี