จาก Blog ตอนที่แล้วเรื่อง มาลองเล่น "jupyter กัน" มันเป็นการศึกษา ลองเทสว่าใช้งานได้ก่อนมาเรียนครับ คราวนี้มาเรียนจริงและ โดย ดร. กานต์ (ไม่รู้เขียนชื่อ ถูกหรือป่าว ?) มาศึกษา python ผ่านตัว jupyter บ้าง โดยทำไมต้องใช้ jupyter
- ง่าย - เขียนเสร็จ Run ดูผลลัพธ์ได้เลย
- jupyter - สามารถเขียน Doc และ Code ร่วมกันได้
- notebook - Workspace ที่เราใส่ Code ใส่ไฟล์ต่างๆลงไป เช่น TextFile หรือ JsonFile เป็นต้น
- แต่ละช่องที่ให้เราพิมพ์อะไรเข้าไป มันเรียกว่า Cell จากรูปมี 3 Cell ครับ
มาดู Key ลัดใน jupyter ดีกว่า
- สำหรับในวันนี้ที่ผมใช้บ่อยๆ เป็นกลุ่มคำสั่งใน Command Mode เข้าได้โดยการกดปุ่ม ESC หรือ Ctrl + Enter ก็ได้นะ ตัว Cell เปลี่ยนเป็นสีฟ้า (ณ 2016-08-20 เผื่ออนาคตโปรแกรมมันเปลี่ยนสีครับ)
- เพิ่ม Cell : A - Aboove, B - Below
- ลบ Cell : D - Delete
- Ctrl + Enter : Run Code ใน Cell นั้น
- Shift + Enter : Run Code และให้ชี้ Cell ถัดไป
- Alt Enter : Run Code และให้สร้าง Cell ใหม่
- Y : เปลี่ยน Cell เอาไว้สำหรับเขียน Code
- M : เปลี่ยน Cell ให้เป็น Mark Down เอาไว้ใส่ทำ Doc
- กด Tab มันจะ Hint ด้วยนะ ว่ามี Method อะไรให้ใช้งาน
- กด Shift + Tab มันแสดงคำอธิบาย ว่า Function นั้นต้องการอะไร การกดแต่ละครั้งจะได้ Detail ที่ลึกขึ้น โดยกดได้สูงสุด 4 ครั้ง
- ตัว jupyter มี Auto Save ด้วยนะ ลองดูจาก Log ใน Command Line นะ
- ถ้าไม่ใช้งานแล้ว ก็ Ctrl + C ที่ Command Line เพื่อให้มันหยุดรัน Notebook นั้นๆ ไม่งั้นมันจอง Port ยาวนะ เดี๋ยวไปชนกับ App อื่นนะ
- แต่ตัว jupyter เอง มันฉลาดพอที่จะขยับ Port หนีไปนะ
- สำหรับใน jupyter มันใช้ไฟล์ .ipynb ครับ เวลาเอาไปใช้จริงบน Production อย่าลืม Export ไปเป็น .py ด้วยนะครับ แต่มีหลาย format ที่น่าเล่นนะ
มาที่ Python กันบ้าง (มี Code ปนๆกับ Comment อธิบายแทรกไปด้วยกัน)
- Comment
# one line comment ''' Multi-line Comment ''' """ Multi-line Comment """
- Numbers and Math
25 + 30 / 6 #output is 30.0 (25 + 30) / 6 #output is 9.166666666666666 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6 #output is 6.75 3 + 2 < 5 - 7 #output is False
- ข้อควรระวัง Python 2.x int / int = int ใน C# ก็เป็นนะ ผมมีเขียน Blog ไว้แล้ว "[C#] ทำไม int / int แล้วไม่มีทศนิยมหละ"
- แต่ Python 3.x int / int ได้ Float
- Variables and Names
cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90 cars_not_driven = cars - drivers cars_driven = drivers carpool_capacity = cars_driven * space_in_a_car average_passengers_per_car = passengers / cars_driven print(cars_not_driven) print(cars_driven) print(carpool_capacity) print(average_passengers_per_car) ''' Output - cars_not_driven = 70 - cars_driven = 30 - carpool_capacity = 120.0 - average_passengers_per_car = 3.0 '''
- Data Types
- int
type(5) #output is int
- float
type(5.5) #output is float type(9999999999999999999999999999999999999999999999955555555555.5555) #output is float type(55555555555.555555555555555555555555555555555555555555555555555) #output is float
- string
type('hello') #output is str
- boolean
type(True) #Output is bool
- turple - immutable object (unchangeable)ชุดข้อมูล แก้ไขไม่ได้นะ
t= (5, 6, 7) type(t) #output is tuple t[0] #output is 5 t[0] = 99 ''' --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in () ----> 1 t[0] = 99 TypeError: tuple object does not support item assignment '''
- List - mutable
l = [1,2,3] type(l) #output is list l[0] #output is 1 l[0] = 99 print(l) #output is [99, 2, 3]
- Dictionary - เก็บเป็น Key, Value ข้อมูลข้างในไม่ได้ เรียงลำดับ
- int
- Input & Output
- Unpacking
- Functions
def just_hello() print('Hello') just_hello() ''' #Output is "ERROR" File "", line 1 def just_hello() ^ SyntaxError: invalid syntax '''
def just_hello(): print('Hello') just_hello() #Output is "Hello"
def hello(name): print('Hello,', name) hello('PingkungA') #Output is "Hello, PingkungA"
def print_something(a, b, c): print('Your input is', a, b, c) print_something(1, 2, 3) #Output is "Your input is 1 2 3"
''' * เท่ากับ Pointer ใน C, C++ และ * arguments อันตราย คนรับต้องทำค่าให้พอดีกับ ที่ได้รับมา ''' def print_something_again(*args): arg1, arg2, arg3 = args print('Your input is', arg1, arg2, arg3) print_something_again(1, 2, 3)
def print_something_again(*args): print('Your input is', args[0]) print_something_again(1, 2, 3) #Output is "Your input is 1"
def print_something_again(*args): print('Your input is', args[999]) print_something_again(1, 2, 3) """ #Output is 'ERROR' --------------------------------------------------------------------------- IndexError Traceback (most recent call last) in () 2 print('Your input is', args[999]) 3 ----- 4 print_something_again(1, 2, 3) in print_something_again(*args) 1 def print_something_again(*args): ----- 2 print('Your input is', args[999]) 3 4 print_something_again(1, 2, 3) IndexError: tuple index out of range """
def get_the_mean(a, b, c, d, f): return (a + b + c + d + f) / 5 print(get_the_mean(1, 2, 3, 4, 5)) #Output is "3.0" #Note for Python 3.X
- Making Decisions
- Loops
- Slicing
- Reading and Writing Files
- Modules
- Class
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.