1. คอมพิวเตอร์และโปรแกรม

Computers and Programs

Download

1.1. จุดประสงค์

  1. เข้าใจการทำงานของโปรแกรมที่เขียนด้วยภาษา Python

  • สร้าง แก้ไข และ run โปรแกรมบน spyder ได้

  • เขียนคำสั่งบน ipython ได้

  • สร้าง jupyter notebook ได้

  • เขียนคำสั่งและ run บน notebook ได้

  1. เขียนโปรแกรมเพื่อแสดงข้อความ "สวัสดีชาวโลก" ได้

  2. เขียนโปรแกรมเพื่อรับชื่อและแสดงข้อความ "สวัสดีคุณชื่อ" ได้

1.2. Computer Hardware

hardware

hardware

1.3. Computer Software (Programs)

1.3.1. A. [แปลง] Compiled Programming Languages

compile-program

compile-program

1.3.1.1. ตัวอย่างภาษาโปรแกรมที่เป็นแบบ Compiled

  • C

  • C++

  • D

  • Go

  • Java

  • Swift

  • Rust

1.3.2. B. [แปล] Interpreted Program

interpreted-program

interpreted-program

1.3.2.1. ตัวอย่างภาษาโปรแกรมที่เป็น interpreted

  • Python

  • TypeScript

  • JavaScript

  • PHP

  • R

  • Lisp

1.3.2.2. ภาษาที่ได้รับความนิยมสูงสุด

1.3.2.3. ภาษาที่ตลาดมีความต้องการสูงสุด

  • เม.ย. 2562 จัดอันดับโดย codeplatoon

  • ก.พ. 2562 จัดอันดับโดย codingdojo

1.4. เริ่มการเขียนคำสั่ง

  • คำสั่งสำหรับนำเข้าชุดคำสั่ง sys เพื่อเรียกใช้ฟังก์ชัน version เพื่อดูรายละเอียดของ Python

    import sys
    sys.version
    

กรอกคำสั่งตรงช่องด้านล่าง แล้ว click รัน หรือกดปุ่ม Shift พร้อม Enter บน keyboard

  • คำสั่งแสดงข้อความบนหน้าจอ

    print('ข้อความ')
    
  • ตัวอย่างคำสั่งแสดงข้อความอื่นๆ

    print('Hello world')
    print("Hello world")
    print('สวัสดีชาวโลก')
    print("สวัสดีชาวโลก")
    
  • Exercise 01.1 จงเขียนคำสั่งเพื่อแสดงชื่อของตัวเอง เป็นภาษาไทย

  • Exercise 01.2 จงเขียนคำสั่งเพื่อแสดงชื่อเล่น

  • Exercise 01.3 จงเขียนคำสั่งเพื่อแสดงชื่อของตัวเอง เป็นภาษาอังกฤษ

  • Exercise 01.4 ลองเขียนคำสั่งเพื่อแสดง email ของตัวเอง

1.5. การแสดงผลการคำนวณเบื้องต้น

  • คำสั่งแสดงผลบวก

    print(2+3)
    
  • คำสั่งแสดงผลลบ

    print(2561-543)
    
  • คำสั่งแสดงผลคูณ

    print(9*1024)
    
  • คำสั่งแสดงผลหาร

    print(1024/7)
    
  • คำสั่งแสดงผลยกกำลัง

    print(10**2)
    print(2**10)
    
  • คำสั่งแสดงผลค่ารากที่สองตัวเลข

    print(100**0.5)
    
  • คำสั่งแสดงผลของสมการที่ซับซ้อนขึ้น

    print( (2*3 + 3*3 + 1*3 + 2*3 + 2*3)/(3+3+3+3) )
    
  • Exercise 01.5 จงเขียนคำสั่งเพื่อแสดงผลลัพธ์ของสมการต่อไปนี้

    • \(2^3 + 9 \times 7\)

    • \(\frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \frac{1}{5}\)

    • \(\sqrt{3^2 - 4\times 1 \times 2}\)

    • \(\frac{\sqrt{4\times 3 \times 7}}{2 \times 3}\)

1.6. การแสดงข้อความร่วมกับตัวเลข

print('ผลลัพธ์ ', 2**20)
print('สวัสดีคุณ', 'พอล')
print('สวัสดีคุณ'+'พอล')
print('สวัสดีคุณ'+str(2**20))

Note: str() แปลงค่าให้เป็นข้อความ

1.7. การรวมหลายคำสั่งเป็นฟังก์ชัน

  1. (ให้นิยาม) กำหนดชื่อและการทำงานของฟังก์ชัน

def hello():
    print('Hello world')
    print("Hello world")
    print('สวัสดีชาวโลก')
    print("สวัสดีชาวโลก")
  1. (เรียกใช้ฟังก์ชัน) คำสั่งเรียกใช้

hello()
  1. ตัวอย่างฟังก์ชัน

def print9():
    print(' 9x1 =  9')
    print(' 9x2 = 18')
    print(' 9x3 = 27')
    print(' 9x4 = 36')
    print(' 9x5 = '+str(9*5))
    print(' 9x6 = ', 9*6)
  • Exercise 01.6 จงเขียนฟังก์ชันแสดงสูตรคูณแม่ต่างๆ พร้อมเรียกใช้

    • สูตรคูณแม่ 4

    • สูตรคูณแม่ 7

    • สูตรคูณแม่ 12

1.8. การเรียกใช้ฟังก์ชันที่พร้อมใช้งาน

ฟังก์ชันที่เรียกใช้ได้เลย รายชื่อ built-in functions ทั้งหมด

1.8.1. 1. กลุ่มฟังก์ชันแปลงชนิดข้อมูล

bin(8)         # แปลงตัวเลขเป็นเลขฐานสอง
bool(1)        # แปลงเป็นค่าเท็จจริง True, False
chr(3585)      # แปลงตัวเลขเป็นตัวอักขระ
float('3.55')  # แปลงเป็นเลขทศนิยม
hex(20)        # แปลงเป็นเลขฐาน 16
id(1)          # แปลงเป็นหมายเลขรหัส
int(3.2)       # แปลงเป็นจำนวนเต็ม
oct(9)         # แปลงเป็นเลขฐาน 8
ord('ก')       # แปลงอักขระเป็นจำนวนเต็ม
str(619009499) # แปลงเป็นข้อความ

1.8.2. 2. กลุ่มฟังก์ชันให้ช่วยเหลือ

dir()           # แสดงรายการฟังก์ชันที่สามารถเรียกใช้งานได้
help()          # ขอความช่วยเหลือกับคำสั่งต่างๆ
type('ข้อความ')   # แสดงชนิดของข้อมูล

1.8.3. 3. กลุ่มฟังก์ชันสำหรับการประมวลผลอื่นๆ

  1. ฟังก์ชันนำเข้าข้อมูล - input -

input()                 # ฟังก์ชันนำเข้าข้อความ (ให้ผู้ใช้กรอกจากคีย์บอร์ด)
input('กรุณากรอกข้อมูล ')  # ฟังก์ชันนำเข้าข้อความพร้อมข้อความบอกผู้ใช้
  1. ฟังก์ชันช่วยในการประมวลผล - process -

format(  1234, '<15d')
format('1234', '>15s')
format(  1234, '^15d')
min( [5,9,7,6,5,4] )
max( [5,9,7,3,7,1] )
len( [1,9,3,4,4] )
open('test.txt', 'r')
pow(2, 10)
range(10)
round(3.6)
round(3.4)
sorted( [1,9,3,4,4] )
sum( [1,9,3,4,4] )
  1. ฟังก์ชันแสดงข้อความ - output -

print('ข้อความที่ต้องการให้ผู้ใช้เห็น')

1.9. การเก็บข้อความที่ผู้ใช้กรอกเพื่อใช้งาน

  • การนำเข้าข้อความที่ผู้ใช้กรอกเก็บไว้สำหรับอ้างอิงต่อไปโดยใช้ชื่อ x

    x = input()
    
  • การแสดงค่าที่ x อ้างอิงถึง

    print(x)
    
  • หลักเกณฑ์ในการตั้งชื่อตัวอ้างอิง (identifier) บางคนเรียก ตัวแปร - variable

  1. เป็นลำดับของตัวอักษรติดกันแต่ละอันสามารถใช้ a-z, A-Z, 0-9, _ โดยไม่จำกัดความยาว

  2. ตัวแรกต้องไม่เป็นตัวเลข

  3. ต้องไม่เป็น keywords (คำสงวน)

  4. ต้องไม่เป็นค่า literals - ชุดของอักขระที่ Python สามารถแปลงเป็นค่าได้ทันที เช่น 'Paul' 342.0 เป็นต้น

  • คำสงวน (keywords) ในภาษา Python มีอะไรบ้าง?

    False      class      finally    is         return
    None       continue   for        lambda     try
    True       def        from       nonlocal   while
    and        del        global     not        with
    as         elif       if         or         yield
    assert     else       import     pass
    break      except     in         raise
    
  • Exercise 01.7 ฝึกตั้งชื่อตัวอ้างอิงหรือตัวแปร

    • ตัวแปรสำหรับเก็บชื่อผู้ใช้

    • ตัวแปรสำหรับเก็บอายุผู้ใช้

    • ตัวแปรสำหรับเก็บค่า x

    • ตัวแปรสำหรับเก็บค่า y

    • ตัวแปรสำหรับเก็บค่า z

    • ตัวแปรสำหรับเก็บค่าปีเกิด

    • ตัวแปรสำหรับเก็บค่าเกรดเฉลี่ย

    • ตัวแปรสำหรับเก็บค่าความสูงของระดับน้ำในแม่โขง

    • ตัวแปรสำหรับเก็บค่าระยะทางจากวารินไปยังทุ่งศรีเมือง

1.10. การรับข้อความและแปลงเป็นค่าต่างๆ

  • การรับข้อความแล้วแปลงเป็นตัวเลข

    x = input()
    age = int(x)
    
  • การรับข้อความแล้วแปลงเป็นตัวเลขโดยใช้คำสั่งซ้อนคำสั่ง

    age = int(input())
    
  • การรับข้อความแล้วแปลงเป็นเลขทศนิยม

    x = input()
    gpa = float(x)
    
  • การรับข้อความแล้วแปลงเป็นเลขทศนิยมโดยใช้คำสั่งซ้อนคำสั่ง

    gpa = float(input())
    
  • ตัวอย่าง การเขียนโปรแกรมเพื่อรับชื่อผู้ใช้

    name = input('ชื่ออะไรครับ? ')
    print('สวัสดีครับคุณ'+name)
    
  • ตัวอย่าง การเขียนโปรแกรมเพื่อรับชื่อผู้ใช้

    name = input('What is your name? ')
    print('Hello, '+name)
    
  • ตัวอย่าง การเขียนโปรแกรมเพื่อรับอายุผู้ใช้

    x = input('อายุเท่าไหร่? ')
    age = int(x)
    print('คุณอายุ '+str(age)+' ปี')
    
  • ตัวอย่าง การเขียนโปรแกรมเพื่อรับค่า x กับ y แล้วบอกผลบวก

    x = int(input('x = '))
    y = int(input('y = '))
    print(' x + y = '+str( x+y ))
    
  • Exercise 01.7 จงเขียนโปรแกรมเพื่อให้ทำงานตามโจทย์ต่อไปนี้

    • จงเขียนโปรแกรมเพื่อรับค่า x กับ y แล้วบอกผลต่าง

    • จงเขียนโปรแกรมเพื่อรับค่า x กับ y แล้วบอกผลคูณ

    • จงเขียนโปรแกรมเพื่อรับค่า x กับ y แล้วบอกผลหาร

    • จงเขียนโปรแกรมเพื่อรับค่า x กับ y แล้วบอกผลลัพธ์เมื่อเอาค่า x ยกกำลัง y \(x^y\)

    • จงเขียนโปรแกรมเพื่อรับค่าปี พ.ศ.เกิดของผู้ใช้ แล้วบอกอายุ

    • จงเขียนโปรแกรมเพื่อรับค่าปี พ.ศ.เกิดของผู้ใช้ แล้วบอกปีเกิดของผู้ใช้เป็น ค.ศ.

    • จงเขียนโปรแกรมเพื่อรับค่าเกรดเฉลี่ยของเทอมต้น และเกรดเฉลี่ยของเทอมปลาย แล้วบอกเกรดเฉลี่ยรวมในปีนั้น