Arisa-Kaewsuan / Python_Tutorial

: Python Programming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python   Python

  •   Python ใช้ทำอะไรได้บ้าง ?

     1.  ใช้ทำโปรแกรมแบบมี GUI  :  ใช้ library เช่น Tkinter , PyGTK , PyQT , JPython , Kivy , wxPython , ...
     2.  ใช้ทำเกม  :  ใช้ library เช่น pygame
     3.  ใช้ในงานสาย Data Science  :  ใช้ library เช่น pandas , Numpy , seaborn , mathplotlib
     4.  ใช้ในงานสาย IoT (Internet of Thing)  :  Arduino , ทำ Robot , Raspberry pi
     5.  ใช้ทำ web  :  ใช้ library เช่น Django , Flask
    
  •   เริ่มใช้ Python ยังไง ?

      1.  install python  :  คือ โปรแกรมแปลภาษาไพธอนเป็นภาษาเครื่อง เราก็จะสามารถเขียนไพธอนด้วย editor/IDE
          แล้วรันดูผลลัพธ์ได้
    
      2.  install editor  :  มีให้เลือกใช้เยอะมาก เช่น vscode (นิยมใช้สำหรับผู้เริ่มต้น), pycharm , Google colab
          (นิยมใช้สำหรับผู้เริ่มต้น สะดวกมากใช้บนเว็บได้เลย แค่มีบัญชี Google ), sublimetext (สำหรับคนใช้ mac) ,
          Jupyter (นิยมใช้ในงาน data science) , Spyder (อาจารย์ชอบใช้สอนตามมหาลัยสาย data science ทำ ML)
    
      โดยภาษา Python จะสามารถ Run ได้ 2 แบบ
      1.  Interpreter  :  การรันแบบ interpret คือการ run ที่ละบรรทัด เหมาะใช้ในงาน Data science
      2.  Compliler  :  การรันแบบ compile คือการที่เราเขียนเป็นไฟล์แล้ว run ทั้งหมดทีเดียว
    



1.   PYTHON  BASIC  🧠

               ควรมีพื้นฐาน Basic Programming ที่รู้ว่าคำสั่งพื้นฐานที่ใช้บ่อยๆ จึงควรจำหรือใช้จนคุ้นเคย มีอะไรบ้าง ? เพื่อให้เอาไป
       รวมร่าง ประกอบกันจนกลายเป็นโปรแกรมนึงขึ้นมาได้ ด้วยหลักการเขียนแบบ OOP และมาตรวจสอบปรับปรุงให้ดีขึ้น (เร็ว 
       และใช้หน่วยความจำน้อย) ได้โดยใช้ BigO ที่ เป็นความรู้ในวิชา Data Structure & Algorithm เพราะ คำสั่งพื้นฐาน
       ที่ใช้บ่อยๆ แบ่งเป็นกลุ่มๆแล้ว ทุกภาษาจะมีเหมือนๆกัน แค่ใช้ syntax ที่แตกต่างกันในการเขียน ทั้งยังบ่งบอกด้วยว่าภาษา
       นั้นๆทำอะไรได้บ้าง เช่น python มีกลุ่มคำสั่ง GUI ให้ใช้ ก็เลยสามารถทำโปรแกรมแบบมี GUI ได้
  •   syntax  :  indent สำคัญมาก เพราะ ไม่ใช้ {} และ ; ในการแบ่งบล็อคโค้ดเหมือนภาษาอื่น
       หลังเงื่อนไข (condition) มี : (colon)เสมอ เช่น เงื่อนไข if-else , เงื่อนไข loop
       เป็น Dynamic Programming ไม่ต้องระบุ Data type เหมือนภาษา java

  •   input  :  x = input('Enter your name:')

  •   output  :  print("Hello World !")

  •   Math  :  x = min(5, 10, 25)    x = max(5, 10, 25)    x = pow(4, 3)    x = math.sqrt(64)    x = math.pi
                   y = math.floor(1.4)   x = math.ceil(1.4)

  •   condition  :  if b > a:    elif a == b:    else:    TERNARY OPERATOR : print("A") if a > b else print("B")

  •   loop  :  while    ARRAY-LOOP : for x in array:    break    continue

  •   ในภาษา python มีชนิดข้อมูล (Data type) อะไรบ้าง ?  :  String    Tuple    List    Set    Dictionary    Boolean    Integer   Double

  •   Array  :  python ไม่มี Array แต่สามารถใช้ List เป็น Array ได้    CREATE : cars = ["Ford", "Volvo", "BMW"]    ACCESS : x = cars[0]    ARRAY-LENGHT : x = len(cars)    EDIT : cars[0] = "Toyota"    INSERT : cars.append("Honda")
       DELETE : cars.remove("Volvo")

  •   Tuple  :  CREATE : mytuple = ("apple", "banana", "cherry")    CHECK TYPE : print(type(thistuple))
       ACCESS : print(thistuple[1]) OR print(thistuple[2:5])    EDIT : y[1] = "kiwi"    ADD : y.append("orange")
       DELETE : y.remove("apple")    ARRAY-LOOP : for i in range(len(thistuple)):

  •   List  :  CREATE : mylist = ["apple", "banana", "cherry"]    ACCESS : print(thislist[1]) OR print(thislist[2:5])
       CHECK-IF-EXIST-IN-LIST : if "apple" in thislist: print("Yes")    EDIT : thislist[1] = "blackcurrant"
       2LIST-CONCAT : thislist.extend(thistuple)    ADD : thislist.insert(2, "watermelon") OR thislist.append("orange")

  •   String  :  print(len(str))    print("free" in txt)    print("expensive" not in txt)    SLICING : print(b[2:5])
       ลบ whitespacce หัวท้าย : print(a.strip())    print(str.replace("H", "J"))    แยกคำด้วย , : print(str.split(","))

  •   lampda  :  คือฟังก์ชั่นที่ไม่ต้องประกาศชื่อ เป็นการเขียนฟังก์ชั่นแบบ shorthand คล้ายๆ arrow function ในภาษา js แต่มีได้แค่ expression เดียว
       รับ a,b เข้ามาหาผลคูณเก็บใน x : x = lambda a, b : a * b

  •   File  :  f = open("demofile.txt")    print(f.read())    print(f.readline())    f.write("Now the file has more content!")    CHECK-IF-FILE-EXIST : if os.path.exists("demofile.txt"):



2.  PYTHON  OOP  🧠

              ควรมีพื้นฐาน OOP รู้ว่า OOP คืออะไร ดียังไง ทำไมควรใช้ OOP ? , 
      การเขียนโปรแกรมแบบ OOP ทำยังไง ใช้อะไร ? --- object(class) / function / inheritance / polymorphism /
      overriding / overloading คืออะไร ? , เราจะออกแบบโปรแกรมแบบ OOP ได้ยังไง ? , . . . เพราะ concept มัน
      เหมือนกัน แค่ใช้ syntax ที่ต่างกัน 

 >> อ่านพื้นฐานได้ในหน้า Java_OOP_Project

  •   Function  :  CREATE : def my_function():    เรียกใช้ FUNCTION : my_function()

  •   Class  :  CREATE : class Person:    CONSTRUCTOR : def __init__(self, name): self.name = name
       เรียกใช้ CLASS : p1 = Person("John")    ใช้ PARAMETER ที่ CLASS รับมา : print(p1.name)
       ใช้ PARAMETER ที่ CLASS รับมาใน FUNCTION ต้องมี self.: def welcome(self):print("Welcome", self.firstname)

  •   Inheritance  :  CREATE : class Student(Person):    เรียกใช้ CLASS : p1 = Person("John")
       CONSTRUCTOR ต้องระบุ PARAMETER ทุกตัวที่ superclass รับมาคลาสลูกก็ต้องมี : def __init__(self, fname, lname):super().__init__(fname, lname)

  •   Polymorphism  : 



3.   PYTHON  DATABASE  🧠

            ควรมีพื้นฐาน SQL , รู้ว่าฐานข้อมูลมีกี่แบบ , ออกแบบฐานข้อมูลยังไง , รู้ศัพท์เทคนิคเบื้องต้น , . . . 
    ซึ่งเป็นความรู้พื้นฐานเกี่ยวกับ Database  เพราะ ตรงนี้จะเป็นการพูดถึงการใช้ tool ที่เขียนขึ้นเพื่อให้กลับมาหาข้อมูล
    ได้เร็วเวลาทำโปรเจคแล้วมีจุดที่ลืม จึงเขียนแบบย่อๆ ถ้าไม่มีพื้นฐานมาอ่านตรงนี้อาจจะงง 

 >> อ่านพื้นฐานได้ในหน้า SQL_Exercise


    3.1   MySQL  ⚡️

  • เริ่มใช้ SQL

        1.  install API/MySQL Driver ที่ใช้กับภาษา python ทีชื่อ MySQL Connector แนะนำให้ install ผ่าน PIP
    
            💬 PIP คือ Package management ของ python คือ โมดูลที่รวม library/package ต่างๆ
                       ไว้ให้เรา install ได้จากที่เดียว โดยใช้คำสั่ง cmd สะดวกมาก pip จะถูก install มา
                       พร้อมกับตอนที่เราลง python วิธีเช็คว่าคอมเรามี pip ยังอาจะทำได้โดยการเช็ค version
                       ผ่านคำสั่ง cmd : pip --version
    
            ถ้าเช็คแล้วว่ามี pip แล้ว ให้ใช้ pip ช่วย install " MySQL Connector " package ด้วยคำสั่งด้านล่างนี้
            โดยเปิด cmd >> cd ไปที่ python.exe (มันคือ python cmd ใช้ run คำสั่ง python เพราะ cmd ของ window/mac
            ปกติรันคำสั่งไพธอนไม่ได้) >>  พิมพ์คำสั่ง
    

    python -m pip install mysql-connector-python

        2.  เริ่มใช้ได้เลย Algorithm ในการ connnect database จะมีขั้นตอนดังนี้
    
            💬 พื้นฐานควรรู้
               : เราจะ insert update delete ได้ก็คือ ต้องมี Database(จะเป็น MySQL,mariaDB,mongoDB..ก็ได้)
                 และมี ข้อมูล หรือก็คือ Table(ตารางข้อมูล) ใน database ก่อนทำได้หลายวิธี  เช่น
                  - เขียนโปรแกรมแกรมเชื่อมต่อ database แล้วใช้พวกคำสั่ง create DB , create table
                  - ใช้ DBMS เช่น ถ้าใครใช้ MySQl ก็ใช้ phpMyAdmin แต่ทั้ง 2 วิธีที่พูดมาเราต้องมีข้อมูล มันจึงไม่เหมาะใช้ฝึก
                  - สำหรับคนที่ฝึกนิยมใช้ free sammple data กัน เช่น sakila ก็โหลดมา import เข้า DB เราก็ใช้ได้เลย
    
              2.1  import คลาส mysql.connector ที่เรา install เมื่อกี้มา เพื่อที่จะสามารถใช้ คำสั่งต่างๆ(method)
                   ภายในคลาสได้
    
              2.2  create connection โดยใช้ method ที่ชื่อ connect เป็น method ที่รับ parameter ดังนี้
                   host,user,password,database ดังนั้นเวลาจะใช้ใช้ต้องระบุ parameter พวกนี้
    
              2.3  ตอนนี้เรา connect database สำเร็จแล้ว ก็สามารถ create read update delete ข้อมูลใน
                   database นั้นด้วยคำสั่ง SQL ได้แล้ว โดยต้องใช้ method cursor กับ method execute ใน
                   การเขียนคำสั่ง SQL    👩‍💻 ตอน run ต้องเปิดใช้งาน xamp ถ้าใครใช้ mysql ที่อยู่ในโปรแกรม xamp 
    

    ตัวอย่างที่ 1 : เขียน python เชื่อมต่อฐานข้อมูล MySQL เพื่อ Create Table ชื่อ customers มี column ชื่อ id เป็น primary key    ⚡️  การ Drop Table และ การ Create Database ก็ใช้ pattern นี้

      import mysql.connector
    
      mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      password="yourpassword",
      database="mydatabase"
      )
    
      mycursor = mydb.cursor()
      mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")
    

    ตัวอย่างที่ 2 : เขียน python เชื่อมต่อฐานข้อมูล MySQL เพื่อ Insert เพิ่มข้อมูลลง Table ชื่อ customers ใน column name กับ address เพิ่มค่า 3 rows จุดสำคัญของการ Insert คือต้องมีคำสั่ง .commit() เป็นการบอกว่า เรามีการเปลี่ยนแปลงข้อมูลในตาราง ถ้าเปลี่ยนเสร็จมันจะปริ้น was inserted ออกหน้าจอให้เรารู้    ⚡️  การ Update ข้อมูลใน Table และ การ Delete (Delete != Drop >> Delete คือ ลบข้อมูลในตาราง แต่ Drop คือลบตาราง) ก็ใช้ pattern และ method commit() แบบนี้

      create connection 
      ...
    
      mycursor = mydb.cursor()
    
      sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
      val = [ ('Peter', 'Lowstreet 4'),
              ('Amy', 'Apple st 652'),
              ('Hannah', 'Mountain 21') ]
    
      mycursor.executemany(sql, val)
      mydb.commit()
      print(mycursor.rowcount, "was inserted.")
    

    ตัวอย่างที่ 3 : เขียน python เชื่อมต่อฐานข้อมูล MySQL เพื่อ Select ดึงข้อมูลจาก Table ชื่อ customers ที่ address มีค่าเท่ากับ Yellow Garden 2 ( การใช้ placeholder ช่วยป้องกัน SQL Injection จาก Hacker ) ใช้คำสั่ง .fetchall() เป็นการบอกว่า ให้ดึงข้อมูลทั้งหมดมา แล้ววน loop แสดงค่าที่ดึงมา

      create connection
      ...
    
      mycursor = mydb.cursor()
    
      sql = "SELECT * FROM customers WHERE address = %s"
      adr = ("Yellow Garden 2", )
    
      mycursor.execute(sql, adr)
      myresult = mycursor.fetchall()
      for x in myresult:
           print(x)
    


        3.2   mongoDB  ⚡️

              ควรมีพื้นฐาน รู้ว่า mongoDB คืออะไร , มันเก็บข้อมูลแบบไหน , รู้ศัพท์เกี่ยวกับ mongoDB เพราะมัน
      ใช้คำเรียกต่างกันแต่จริงๆ ก็คืออันเดียวกันกับใน database อื่นๆ เช่น mysql ช่วยให้เราเข้าใจมากขึ้นเวลาใช้งาน 
    

 >> อ่านพื้นฐานได้ในหน้า SQL_Exercise

  • วิธีใช้ mongoDB

    1. install API/mongoDB Driver ที่ใช้กับภาษา python ทีชื่อ pymongo แนะนำให้ install ผ่าน PIP
       เหมือนเดิม  [ python -m pip install pymongo ]
    
    2. connect database [myclient = pymongo.MongoClient("mongodb://localhost:27017/") ]
    
    3. เชื่อมต่อฐานข้อมูลแล้วก็สามารถเขียนคำสั่ง insert / update / find / delete / drop ... ได้
    

 >>  ดูเพิ่มเติมที่นี่



4.   PYTHON  GUI  🧠

  •   TKinter  : 
  •   PyQT  : 

5.   PYTHON  WEB  🧠

  •   Django คืออะไร ?  : 
  •   Flask คืออะไร ?  : 
  •   web scrapping คืออะไร ?  : 
  •   API คืออะไร ?  : 

6.   PYTHON  DATA  SCIENCE  🧠

  •   Data Sciencetist ต่างจาก AI Engineer ยังไง ?  : 
  •   Data Engineer  :  pandas , spark , ci-cd
  •   Data Analyst  :  mathplotlib , Numpy



Python  Exercise

  •   BEGINNER    :   เป็นโจทย์เหมาะสำหรับฝึกใช้คำสั่งพื้นฐานให้คล่อง ให้คุ้นเคยกับ syntax

  •   INTERMEDIATE    :    เป็นโจทย์ที่ทำให้เราได้ฝึกเอาพื้นฐานมาประยุกต์ใช้สร้าง Product จริงๆ

    • practicepython :  โจทย์ส่วนมากเป็นเกม เช่น tic tac toe มีอธิบายโค้ด เหมาะใช้ฝึกอ่านทำความเข้าใจวิธีเขียนโค้ดของคนอื่น เพื่อมาประยุกต์ใช้
    • hackerrank    :    เลือกระดับได้ คล้ายๆ leetcode เหมาะใช้ฝึก interview coding เตรียมตัวก่อนไปสัมภาษณ์งาน
    • edabit  :  เลือกระดับได้ คล้ายๆ leetcode เหมาะใช้ฝึก interview coding เตรียมตัวก่อนไปสัมภาษณ์งาน
    • jetbrains    :    พาทำโปรเจคน่าสนใจ เช่น Password Hacker (Python) แต่ไม่ฟรี

About

: Python Programming


Languages

Language:Python 100.0%