บันทึกนี้จึงเขียนขึ้นเพื่อบันทึกสิ่งทีได้เรียนรู้เพื่อทบทวน และอาจจะเป็นประโยชน์สำหรับผู้เริ่มต้นเรียนรู้บ้าง และอาจจะมีผิดพลาด ตกหล่นไปบ้างก็ขออภัยไว้ ณ ที่นี้ และจักเป็นพระคุณยิ่งหากช่วยแนะนำแก้ไขเพื่อให้ถูกต้องต่อไป
โปรแกรมแรก Hello world!
Code: สร้างไฟล์ ex01.py แล้วเขียนโปรแกรมดังนี้#!/usr/bin/python
print "Hello world!"
Run: พิมพ์ที่หน้าจอ Terminal
$ python ex01.py
ผลที่ได้:
Hello world!
ไม่มีเครื่องหมาย { } กำหนดบล็อค
ในภาษาซี หรือ PHP จะใช้วงเล็บปีกกาเป็นตัวกำหนดขอบเขตของเงื่อนไขหรือส่วนต่างๆ แต่สำหรับ Python แล้วไม่มีเครื่องหมายวงเล็บกำหนดขอบเขต แต่จะใช้การย่อหน้า (line indentation) โดยย่อหน้าเดียวกันจะเป็นขอบเขตเดียวกัน และข้อควรระวัง การย่อหน้าจะต้องเลือกระหว่าง การเว้นวรรค หรือ แท็บ และต้องกำหนดย่อหน้าให้เท่ากัน เช่น เคาะเว้นวรรค 2 เคาะ ก็ต้องใช้ 2 เคาะเหมือกัน ถ้ามีเพิ่มเป็นอย่างอื่นก็จะถือว่าเป็นขอบเขตใหม่ตัวอย่าง
#!/usr/bin/python
n = 1
if n == 1:
print "True"
print "n = 1"
else:
print "False"
print "n <> 1"
ตัวอย่างนี้จะพิมพ์ผลลัพธ์หน้าจอเป้ฯ
True
n = 1
ตัวอย่างนี้แก้ไขบรรทัดสุดท้าย โปรแกรมจะถือว่าไม่ใช่ขอบเขตของ else แต่จะเป็นแสดงผลหลังจากจบเงื่อนไข else:
n = 1
if n == 1:
print "True"
print "n = 1"
else:
print "False"
print "n <> 1"
ผลลัพธ์ที่ได้
True
n=1
n<>1
วิธีสั่งรันไฟล์ python
การสั่งรันไฟล์โปรแกรม python มีสองแบบ คือ
1. เรียกโปรแกรม python ตามด้วยไฟล์ Script เช่น
python ex01.py2. กำหนดสิทธิ์ไฟล์ให้เป็น execute เช่น
chmod +x ex01.py
เวลาเรียกใช้โปรแกรมจะเรียกคำสั่งได้ทันทีคือ ./ex01.py (ต้องมี ./ หรือ กำหนด path ของโปรแกรมด้วย)
วิธีที่สองนี้อย่าลืมบรรทัดแรกสุดให้ใส่ #!/usr/bin/python เพื่อบอกให้ระบบรู้ว่าจะเรียกใช้โปรแกรมอะไรมารันไฟล์ที่เรียก
การเขียนคำสั่งในบรรทัดเดียวกัน
วิธีการเขียนคำสั่งให้อยู่บรรทัดเดียวกัน (multiple statements on a single line) วิธีนี้จะทำให้การเขียนคำสั่งสั้นลง แต่ก็เหมาะกับคำสั่งง่ายๆ ในฟังค์ชันเพื่อให้โปรแกรมสั้นไม่เยิ่นเย้อimport sys; x='foo'; sys.stdout.write(x+'\n')
คำสั่งนี้เมื่อรันใน python จะได้ผลลัพธ์ foo ออกทางหน้าจอภาพ
Parameter และ Argument
ก่อนที่จะเขียนโปรแกรมต่างๆ เราควรทำความรู้จักเสียก่อนว่า Parameter และ Argument ต่างกันอย่างไร โดยยกเอาข้อความของ MSDN ที่เปรียบเทียบไว้ให้ทราบอย่างชัดเจนว่า
the procedure defines a parameter, and the calling code passes an argument to that parameter. You can think of the parameter as a parking space and the argument as an automobile
paramter เปรียบเหมือนช่องจอดรถ argument เหมือนกับรถยนต์ที่เข้าจอดในช่องนั้นจากข้อเปรียบเทียบดังกล่าวสรุป คือ parameter เป็นตัวรับค่าที่กำหนดไว้ในฟังค์ชันหรือ procedure ส่วน argument นั้นเป็นตัวแปรที่กำหนดเพื่อส่งไปให้กับ parameter, parameter เป็นตัวแปรที่ใช้รับค่า argument เป็นตัวแปรหรือค่าที่ส่งให้กับฟังค์ชันโดยรับผ่าน parameter
Single หรือ Double Quote
การอ้างอิงชุดตัวอักษรหรือ String นั้นในภาษา C มักจะมีข้อแตกต่าง กรณี Single Quote ใช้สำหรับ Character ถ้าต้องการชุดตัวอักษรต้องใช้ Double Quoteแต่ใน python จะไม่มีความแตกต่าง จะใช้แบบไหนก็ได้ เพียงแต่ใช้อย่างใดอย่างหนึ่ง เช่น
str1 = "Hello World"
str2 = 'Hello World'
ทั้งสองตัวแปรมีค่าเท่ากัน ไม่แตกต่าง แต่ถ้าเป็นภาษา C การกำหนดค่า str2 จะ error
เปรียบเทียบกับภาษา C
โปรแกรม Python: hello.py#!/usr/bin/python
print "Hello World"
กำหนดให้เป็นไฟล์ที่รันได้
chmod +x hello.py
โปรแกรม C: hello.c
#include <stdio.h>
main(){
printf("Hello world\n");
}
คอมไพล์และสร้างไฟล์ที่สามารถเรียกใช้งานได้
gcc -o hello hello.c
เวลาที่ใช้รันไฟล์
pi@raspia ~/Desktop/python-dev $ time ./ex03.py
Hello World
real 0m0.230s
user 0m0.160s
sys 0m0.050s
pi@raspia ~/Desktop/python-dev $ time ./ex03
Hello World
real 0m0.027s
user 0m0.000s
sys 0m0.000s
การกำหนดตัวแปร
ในโปรแกรมไพธ่อนจะไม่ยุ่งยากในการกำหนดตัวแปร และวิธีการก็ง่ายๆ ไม่ซับซ้อน เช่นstr = "Hello World"number = 1name, cnt, total = "Yothin", 0, 0a=b=c=1มาตรฐานตัวแปรในไพธ่อน
- Numbers
- String
- List
- Tuple
- Dictionary
ดูจากรายการตัวแปรในไพธ่อนแล้วจะเห็นแปลกกว่า 3 รายการ คือ List, Tuple และ Dictionary จะว่าไปแล้วทั้ง 3 ก็คือ ตัวแปร Array ดีๆ นี่แหละ เพียงแต่แยกการใช้งาน
โดยทั่วไปจะเรียก Array แต่ใน Python เรียก List ซึ่งการทำงานสามารถเพิ่ม ลบรายการได้เหมือน Array แต่จะยืดหยุ่นมากกว่า
ส่วน Tuple จะคล้าย List เพียงแต่เป็นชุดข้อมูลแบบอ่านได้เพียงอย่างเดียวไม่สามารถเปลี่ยนแปลงได้
ตัวอย่าง tuple กับ list
mylist = ["Yothin", 100]ตัวอย่างข้างบนจะ error ในบรรทัดสุดท้าย ที่สั่งให้เปลี่ยนค่าจาก 100 เป็น 500
mytuple = ("Yothin", 100)
mylist[1] = 500
mytuple[1] = 500
Traceback (most recent call last):
File "list_array.py", line 15, in <module>
mytuple[1] = 500
TypeError: 'tuple' object does not support item assignment
การใช้งาน list หรือ array บางครั้งก็จะมีการคัดลอก list มาใช้งานเพราะข้อมูลเหมือนหรือใกล้เคียงกัน กรณีที่มีการเปลี่ยนแปลงในตัวที่คัดลอกมาจะทำให้ต้นฉบับถูกแก้ไขไปด้วยเช่น
list1 = [0, 1, 2, 3, 4]list2 = list1list2[0] = 1
จากคำสั่งแก้ไข list2[0] = 1 แทนที่จะแก้ไขเฉพาะ list2 เท่านั้น แต่ list1[0] จะถูกแก้ไขไปด้วย วิธีการแก้ไขปัญหาคือ ทำการสำเนา list ดังนี้
list1 = [0, 1, 2, 3, 4]
list2 = [:]list2[0] = 1
วิธีการหลังนี้ list1 จะยังคงเหมือนเดิมไม่มีการเปลี่ยนแปลง
Dictionary นั้นก็เป็นรายการที่เกี่ยวกับข้อมูลหรือชุดข้อมูลจะมีลักษณะคล้ายๆ กับข้อมูลแบบ json แต่ไม่เหมือนกัน เพราะ json นั้นเป็น ชุดข้อมูลแบบ String แต่ Dict เป็นชุดข้อมูลแบบ Structure
ชุดข้อมูลแบบ Dictionary ในไพธ่อนจะเปรียบเหมือน object ของ json |
การแสดงผลข้อความ
ในไพธ่อนกับภาษาซีสามารถใช้ % เพื่อแสดงข้อความได้เหมือนกัน แต่ในอนาคตมีข่าวว่าจะยกเลิกการใช้งานแบบ % แล้ว โดยใช้ .format แทน ตัวอย่างเช่น
list1 = [0, 1, 2, 3, 4]
print "list1 = {0}".format(list1)
ผลลัพธ์ที่ได้
list1 = [0, 1, 2, 3, 4]
การแปลงชนิดข้อมูลใน Python
การทำงานในโปรแกรมต่างๆ จะหนีไม่พ้นเรื่องการแปลงชนิดข้อมูลจากชนิดหนึ่งไปยังชนิดหนึ่ง เช่น แปลงจาก ตัวเลข ไปเป็น ชุดตัวอักษร เพื่อนำไปแสดงผลร่วมกันข้อความตัวอักษร เป็นต้นFunction | Description |
---|---|
int(x [,base])
|
Converts x to an integer. base specifies the base if x is a string.
|
long(x [,base] )
|
Converts x to a long integer. base specifies the base if x is a string.
|
float(x)
|
Converts x to a floating-point number.
|
complex(real [,imag])
|
Creates a complex number.
|
str(x)
|
Converts object x to a string representation.
|
repr(x)
|
Converts object x to an expression string.
|
eval(str)
|
Evaluates a string and returns an object.
|
tuple(s)
|
Converts s to a tuple.
|
list(s)
|
Converts s to a list.
|
set(s)
|
Converts s to a set.
|
dict(d)
|
Creates a dictionary. d must be a sequence of (key,value) tuples.
|
frozenset(s)
|
Converts s to a frozen set.
|
chr(x)
|
Converts an integer to a character.
|
unichr(x)
|
Converts an integer to a Unicode character.
|
ord(x)
|
Converts a single character to its integer value.
|
hex(x)
|
Converts an integer to a hexadecimal string.
|
oct(x)
|
Converts an integer to an octal string.
|
ที่มา: https://www.tutorialspoint.com/python/python_variable_types.htm
ทั้งหมดนี้คือส่วนหนึ่งของพื้นฐานในการเรียนรู้การเขียนโปรแกรม Python ซึ่งยังมีอีกมากจึงขอแยกเพื่อไม่ให้บทความยาวเกินไปนัก ขอบคุณที่ติดตามอ่าน หากพบส่วนใดบกพร่องโปรดชี้แนะเพื่อแก้ไขให้ถูกต้องด้วยครับ...
ทั้งหมดนี้คือส่วนหนึ่งของพื้นฐานในการเรียนรู้การเขียนโปรแกรม Python ซึ่งยังมีอีกมากจึงขอแยกเพื่อไม่ให้บทความยาวเกินไปนัก ขอบคุณที่ติดตามอ่าน หากพบส่วนใดบกพร่องโปรดชี้แนะเพื่อแก้ไขให้ถูกต้องด้วยครับ...
ไม่มีความคิดเห็น:
แสดงความคิดเห็น