Tuesday, December 1, 2009

Python Programming


Variable and the First Python Program!!

ประพัฒน์ สุริยผล

ตัวแปร (variable) เป็นองค์ประกอบที่สำคัญของการเขียนโปรแกรม ตัวแปรเป็นสิ่งที่ใช้เก็บค่าต่างๆ ที่จะนำไปใช้ต่อไปในอนาคต ตัวแปรสามารถเก็บได้หลายอย่าง ไม่ว่าจะเป็นตัวเลข ตัวอักษร หรือสิ่งอื่นๆ

เราสามารถกำหนดค่าตัวแปรได้ง่ายๆ โดยการตั้งชื่อค่าตัวแปรทางซ้าย แล้วใช้เครื่องหมายเท่ากับ (
=) พร้อมกับใส่ค่าที่ต้่องการทางด้านขวาดังตัวอย่าง

a = 1
b = 'letter'
c = 1+2

เราสามารถดูค่าที่อยู่ในตัวแปรได้ ด้วยการใช้คำสั่ง print

>>> print a
1

เมื่อเราใช้คำสั่ง print a เราจะได้ 1 ออกมา คำสั่ง print จึงเป็นเครื่องมือที่ดี ที่เราสามารถใช้ในการตรวจสอบดูว่า ณ ขณะนั้น ตัวแปรเก็บค่าอะไรอยู่บ้าง ค่าในตัวแปร ไม่คงที่ เราสามารถกำหนดค่าให้ให้ตัวแปรได้เสมอ อย่างเช่น ตอนนี้ ตัวแปร a เก็บค่าเลข 1 อยู่ เราสามารถเปลี่ยนให้ตัวแปรเก็บเลข 2 ได้ ด้วยการใช้คำสั่ง

>>> a = 2

ลองใช้คำสั่ง
print ดูก็จะเห็นว่า ตัวแปร a เก็บค่าเลข 2 ไว้ แทนที่จะเป็นเลข 1 เช่นเดิม เราสามารถใช้ตัวแปรตัวเดียวกันไว้ทางด้านขวาของเครื่องหมายเท่ากับได้ เช่น

>>> a = a + 1

สิ่งที่เกิดขึ้นก็คือ python จะทำงานหาค่าที่อยู่ทางด้านขวามือของเครื่องหมายเท่ากับก่อน คือเอาค่าของ a มาบวกกับเลข 1 แล้วนำผลลัพธ์ที่ได้ ไปใส่ไว้ในตัวแปรเดิมอีกที สิ่งที่เกิดขึ้นก็คือ ไม่ว่าตัวแปร a เก็บค่าตัวเลขอะไรไว้ก็ตาม เมื่อ python พบกับคำสั่งนี้ ก็จะเป็นการเพิ่มค่าตัวแปร a ขึ้นไปหนึ่งโดยอัตโนมัติ การใช้ตัวแปรในลักษณะนี้มีให้เห็นบ่อยๆ ใน python และเป็นประโยชน์มาก

แบบฝึกหัด

1. ใช้คำสั่ง print เพื่อดูค่าตัวแปร b และ c

2. ลองนำตัวแปรมาใช้ในการคำนวณทางคณิตศาสตร์ดู แล้วใช้
print พิมพ์สิ่งที่อยู่ในตัวแปรออกมาดู

3. ลองนำตัวแปรที่เป็นตัวเลข แล้วนำตัวอักษรไปบวก เกิดอะไรขึ้น

4. ลองนำตัวแปรที่เป็นตัวอักษร แล้วนำตัวเลขไปบวก เกิดอะไรขึ้น

5. ลองนำตัวแปรที่เป็นตัวอักษร แล้วบวกกับตัวอักษร เกิดอะไรขึ้น

6. ลองตั้งตัวแปร ดังนี้

d = 'hello'
e = ' my friend'
f = d + e

ลอง print ค่าตัวแปร d, e และ f ดู จากนั้น เปลี่ยนค่า e ด้วยคำสั่ง

e = ' your friend'

ลอง print ดูอีกครั้งว่า ตัวแปร f เปลี่ยนแปลงตาม e หรือไม่

Raw_input function And My first program

ครั้งนี้เราจะเขียนโปรแกรมที่ทำงานได้จริงๆ โดยใช้ความรู้ที่เราได้เรียนมาจากครั้งก่อน ร่วมกับฟังก์ชันใหม่หนึ่งฟังก์ชันที่ชื่อว่า
raw_input

ฟังก์ชัน
raw_input ใช้สำหรับรับค่าจากผู้ใช้

จากตัวอย่างเดิม เราเคยกำหนดค่าตัวแปรโดยใช้คำสั่ง

a=1

เราสามารถเปลี่ยนคำสั่งนี้ให้เป็น

a=raw_input()

ซึ่งเมื่อเราใช้คำสั่งนี้ python จะรอให้ผู้ใช้พิมพ์ค่าที่ต้องการ เมื่อผู้ใช้กดปุ่ม enter โปรแกรม python ก็จ���นำค่านั้นไปใส่ไว้ในตัวแปร a เพื่อให้ผู้ใช้เข้าใจว่า python กำลังรอรับค่าอยู่ เราควรจะบอกผู้ใช้สักหน่อย แทนที่จะปล่อยให้หน้าจอว่าง แล้วให้ผู้ใช้เดาเอาเองว่า python กำลังรอข้อมูล

print "Please give value for variable a"
a=raw_input()
print "variable a now contains", a

ลองพิมพ์โปรแกรมข้างบนลงใน text editor แล้ว save ในชื่อ program1.py จากนั้น ลองรันโปรแกรมนี้ดู ใน dos box (หากจำไม่ได้ว่า dos box คืออะไร ให้กลับไปดูที่ Python Tutorial ครั้งแรก)

อันที่จริง คำสั่ง
raw_input อนุญาตให้เราใส่คำบอกผู้ใช้ไว้อยู่แล้ว โปรแกรมข้างบน เราอาจจะเขียนได้เป็น

a=raw_input("Please give value for variable a")
print "variable a now contains", a

ลอง save ชื่อ program2.py แล้วลองรันดู ดูสิว่า จะได้ผลเหมือน program1.py หรือไม่

คราวนี้ เราจะมาลองเขียนโปรแกรมคำนวณพื้นที่สี่เหลี่ยมดู

พื้นที่สี่เหลี่ยม = ความยาวฐาน x สูง
โปรแกรมของเราหน้าตาจะเป็นประมาณนี้

print "Program to calculate Area of Rectangle"
base = raw_input("Please enter base -> ")
height = raw_input("Please enter height -> ")
base_int = int(base)
height_int = int(height)
print "Rectangle area of base", base, "and height", height, "is", base_int*height_int

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

int(
ตัวแปร)

คำสั่งนี่้จะคืนค่าตัวเลขออกมา

แบบฝึกหัด

ลองเขียนโปรแกรมเพื่อคำนวณค่าพื้นที่ของสามเหลี่ยม สูตรคำนวณคือ

พื้นที่สามเหลี่ยม = 0.5 x ฐาน x สูง

Focus on Bioinfo Researches


Bioinformatics Researches in Science and Nature

ภัสสร วรรณพินิจ

สวัสดีค่ะพี่ๆ และเพื่อนๆ ทุกคน พบกันอีกเช่นเคยนะคะใน “Focus on Bioinfo Researches” ครั้งนี้ดิฉันขอหยิบยกเรื่องราวที่น่าสนใจจากวารสาร Nature และ Science ตลอดช่วงเดือนพฤศจิกายนมาเล่าสู่กันฟังค่ะ

เริ่มกันที่ข่าวคราวความเคลื่อนไหวในแวดวง Genomics กันก่อนค่ะ เมื่อเร็วๆ นี้มีประกาศที่จะเริ่มโครงการ “Genome 10K” ขึ้น โดยโครงการนี้เป็นความร่วมมือกันของนานาชาติจากทุกทวีป เพื่อหาลำดับเบสของสิ่งมีชีวิตที่มีกระดูกสันหลัง (vertebrates) จำนวน 10,000 สายพันธุ์ เพื่อทำความเข้าใจเกี่ยวกับความหลากหลายทางชีววิทยา รวมถึงเป็นฐานข้อมูลสำหรับการศึกษาในเรื่องอื่นๆ Nature ได้พูดถึงเรื่องนี้อย่างคร่าวๆ ในหัวข้อ “10,000 genomes to comeและ Science วิเคราะห์เรื่องนี้ในเรื่องความพร้อมทางเทคนิคและการวิเคราะห์ข้อมูลลำดับเบสจำนวนมหาศาลนี้ในหัวข้อ “No Genome Left Behindนอกจากสิ่งมีชีวิตที่มีกระดูกสันหลังแล้ว ยังมีอีกหนึ่งโครงการที่กำลังริเริ่ม���นประเทศสหรัฐอเมริกาเกี่ยวกับการหาลำดับเบสของจุลินทรีย์สายพันธุ์ต่างๆ เพื่อเพิ่มจำนวนข้อมูลลำดับเบสให้ครอบคลุมความถึงหลากหลายของจุลินทรีย์ชนิดต่างๆ ในโลก รายละเอียดและความคืบหน้าต่างๆ สามารถหาอ่านเพิ่มเติมได้จากหัวข้อ “Biologists rally to sequence ‘neglected’ microbes

มาถึงงานทางด้าน epigenomics กันบ้างค่ะ epigenomics เป็นการศึกษาการควบคุมการแสดงออกของ gene ผ่าน epigenetic mechanisms อย่างเช่น DNA methylation และ histone protein modification ในระดับ genome ในเดือนที่ผ่านมา Nature ได้ตีพิมพ์เรื่องราวเกี่ยวกับการสร้างแผนที่ Genome-wide methylated cytosine ในมนุษย์ซึ่งคาดว่าจะเป็นประโยชน์ต่อการศึกษาการแสดงออกของ genes ในช่วงต่างๆ ของพัฒนาการมนุษย์ พี่ๆ และเพื่อนๆ ที่สนใจ สามารถอ่านบทความเกี่ยวกับเรื่องนี้ได้ที่Epigenomics: Methylation Matters และ “Human DNA methylomes at base resolution show widespread epigenomic differences ค่ะ

ส่วนงานทางด้าน transcriptome นั้น Sciene ได้ตีพิมพ์เรื่องราวเกี่ยวกับการใช้เทคนิค strand-specific tiling arrays ร่วมกับ transcriptome sequencing ในการศึกษา transciptome ของ
Mycoplasmy pneumoniae ผลการศึกษาบ่งชี้ถึงความหลากหลายของ transcripts ในจุลินทรีย์ชนิดนี้ที่มีความใกล้เคียงกับความหลากหลายของ eukaryotic transcriptome สำหรับรายละเอียดของเรื่องนี้สามารถหาอ่านได้จากหัวข้อ “Transcriptome Complexity in a Genome-Reduced Bacteriumนอกจากนี้ในวารสารฉบับเดียวกัน ยังมีการตีพิมพ์เรื่องราวการศึกษา proteome ของสิ่งมีชีวิตชนิดเดียวกัน โดยใช้เทคนิค tandem affinity purification-mass spectrometry (TAP-MS) ในการศึกษา protein-protein interaction และจำแนกชนิดของโปรตีน รวมไปถึงการใช้ single-particle electron microscopy และ cellular electron tomogram ในการวิเคราะห์การจัดเรียงตัวของโปรตีนต่างๆ ในระดับ proteome ผลการศึกษาชิ้นนี้ ช่วยให้เราเข้าใจถึงกระบวนการภายในเซลล์ที่จำเป็นต่อการดำรงชีวิต รายละเอียดของงานวิจัยชิ้นนี้สามารถหาอ่านเพิ่มเติมได้จาก “Proteome Organization in a Genome-Reduced Bacterium ค่ะ

สำหรับผู้ที่สนใจการสร้างและประยุกต์ใช้เครื่องมือใหม่ๆ ทาง Bioinformatics ในการทำวิจัย ดิฉันก็มีเรื่องราวที่น่าสนใจมาเล่าสู่กันฟังเช่นกันค่ะ เริ่มกันที่เรื่องราวเกี่ยวกับการสร้างกระบวนการศึกษารูปแบบใหม่เพื่อใช้ในการทำนาย spatio-temporal cis-regulatory activity ในระดับ genome โดยใช้ข้อมูล transcription factor binding และ enhancer activity ซึ่งกระบวนการนี้ได้มีการนำไปประยุกต์ใช้สร้างแผนที่ของ cis-regulatory modules ที่มีความละเอียดสูง เพื่อทำความเข้าใจเกี่ยวกับการควบคุมการ transcription ในช่วงพัฒนาการของ
Drosophila mesoderm รายละเอียดต่างๆ ของงานวิจัยชิ้นนี้สามารถหาอ่านได้จาก “Combinatorial binding predicts spatio-temporal cis-regulatory activity และยังคงอยู่ในเรื่องของ transcription factor นะคะ แต่คราวนี้เป็นเรื่องเกี่ยวกับการใช้เทคนิคทาง network analysis ในการศึกษาความสัมพันธ์ของ genes ต่างๆ ที่เกี่ยวข้องกับ transcription factor FOXP2 (forkhead box P2) ซึ่ง genes ต่างๆเหล่านี้มีความสำคัญเกี่ยวข้องกับการทำงานของสมองในส่วนที่เกี่ยวข้องกับพัฒนาการทางภาษาของมนุษย์ รายละเอียดของงานวิจัยชิ้นนี้สามารถหาอ่านเพิ่มเติมได้ที่ “Human-specific transcriptional regulation of CNS development genes by FOXP2 ค่ะ

สำหรับเรื่องสุดท้ายที่ดิฉันจะขอนำมาเล่าในครั้งนี้เป็นเรื่องเกี่ยวกับการศึกษา target ใหม่ๆ ของยาที่มีอยู่ในท้องตลาดในปัจจุบันโดยใช้เทคนิคทางคอมพิวเตอร์ในการเปรียบเทียบความคล้ายคลึงระหว่างโครงสร้างของยากับ ligand ของ drug target ต่างๆ ผลการศึกษาครั้งนี้ช่วยในการระบุ drug target ใหม่ๆ ทั้งหมด 23 ชนิด ซึ่งข้อมูลเหล่านี้จะเป็นประโยชน์ในการศึกษาผลข้างเคียงต่างๆของยาที่มีขายอยู่ในปัจจุบัน สำหรับรายละเอียดเกี่ยวกับขั้นตอนการศึกษาวิจัยสามรถอ่านเพิ่มเติมได้ในหัวข้อ “Predicting new molecular targets for known drugs ค่ะ

สำหรับฉบับนี้ ดิฉันก็ขอจบไว้เพียงเท่านี้ก่อนนะคะ และเช่นเคยค่ะถ้าเพื่อนๆ พี่ๆ น้องๆ คนใด อยากให้ดิฉันหยิบงานวิจัยเกี่ยวกับหัวข้อใดมาเล่าเพิ่มเติม หรือมีข้อแนะนำประการใดก็สามารถเขียนหรือแนะนำไว้ใน comment ข้างล่างได้เลยนะคะ ทั้งนี้ก็เพื่อจะได้ปรับปรุงให้ดียิ่งขึ้นต่อไปค่ะ ขอบคุณค่ะ

Sunday, November 1, 2009

ฉบับที่ 3 (พฤศจิกายน 2009)


Opening

สวัสดีครับ ในที่สุด Thai Bioinformatics e-Magazine ฉบับที่ 3 ก็สำเร็จลุล่วงไปได้ด้วยดีอีกครั้งหนึ่ง อันที่จริงก่อนหน้านี้ผมมีความกังวลอยู่ว่าจะหาเรื่องอะไรมาเขียนลงใน Highlight ดีหนอ คิดอยู่ราวครึ่งเดือน ตอนนั้นผมไม่มีไอเดียมาเขียนเลยครับ จนกระทั่ง ราวกลางเดือนตุลาคม ผมมีโอกาสพาเพื่อนชาวมาเลเซียไปเที่ยวที่สตอกโฮล์ม และได้แวะไปชมนิทรรศการที่ Nobel Museum ก็เลยได้ไอเดียดีๆ เอามาเล่าสู่กันฟัง อันที่จริงผมลืมไปเสียสนิทเลยว่า เดือนตุลาคมของทุกปีจะเป็นเดือนที่ประกาศรายชื่อผู้เข้ารับรางวัลโนเบล และในปีนี้นักวิทยาศาสตร์รางวัลโนเบลสาขาเคมีได้รับรางวัลเนื่องจากได้สร้างโครงสร้างโมเลกุลของไรโบโซมในระดับอะตอม ซึ่งในความสำเร็จนี้ ก็มีองค์ความรู้ทาง bioinformatics เข้าไปเกี่ยวข้องอยู่ด้วยพอสมควร และที่จะลืมไม่ได้เลยคือ นักวิทยาศาสตร์รางวัลโนเบลสาขาฟิสิกส์ ซึ่งได้รับรางวัลเนื่องจากการค้นพบใยแก้วนำแสง ซึ่งสิ่งประดิษฐ์นี้มีผลทำให้อินเตอร์เนตมีการพัฒนาขึ้นอย่างมาก รวมไปถึง information technologies ต่างๆ ด้วย และนี่ก็รวมถึง bioinformatics ด้วยเช่นกัน แต่เนื่องจากเพื่อนสมาชิกทุกคนเป็นนักชีววิทยา ผมเลยถือโอกาสใช้คอลัมน์ Highlight ฉบับนี้ นำเพื่อนๆ มารู้จักกับผลงานของนักวิทยาศาสตร์รางวัลโนเบลสาขาเคมีกันครับ

นอกจากนี้ Python Programming ในฉบับนี้ ก็เริ่มเข้าสู่เนื้อหาของการเขียนโปรแกรมแล้วล่ะครับ เพราะว่าเป็นเรื่องของคำสั่ง PRINT ซึ่งเป็นคำสั่งพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์ครับ ผมเชื่อว่าหลายคนที่ยังลังเลว่าจะเลือกใช้ภาษาไหน หรือกล้าๆ กลัวๆ กับการเขียนโปรแกรม คงถึงเวลาแล้วครับที่จะเรียนรู้ไปด้วยกันกับเราในคอลัมน์ Python Programming ส่วน Focus on Bioinfo Researches ก็มีเรื่องราวน่าสนใจมานำเสนอเช่นเดิมครับ หวังว่าผู้ที่กำลังติดตามงานทางด้าน human genetics คงจะสนใจมากกว่าใครเพื่อน

สุดท้ายนี้ ผมหวังเป็นอย่างยิ่งว่า e-Magazine ภาษาไทย เพื่อคนไทย จะเป็นประโยชน์ต่อผู้สนใจทางด้าน bioinformatics พอสมควร ผมอยากให้เพื่อนๆ พี่ๆ น้องๆ ที่ผ่านมาเจอ ผ่านมาอ่าน ได้เสนอความคิดเห็น หรืออยากให้พวกเราทีมงานจัดทำอะไรเพิ่มเติม เพื่อการปรับปรุง e-Magazine ให้ดีขึ้นไปในฉบับหน้า ขอบคุณครับ

ประเวช อรรจวัฒนวงศ์

Highlight


The Nobel Prize in Chemistry 2009: Ribosome at the atomic level

ประเวช อรรจวัฒนวงศ์

ผมเชื่อว่า คงไม่มีใครในที่นี้ไม่รู้จักรางวัลโนเบล (The Nobel Prize Awards) อย่างแน่นอน แต่ถึงแม้ว่าจะรู้จักกันบ้างแล้ว ผมก็อยากจะขอใช้โอกาสนี้เล่าเรื่องราวเกี่ยวกับรางวัลโนเบลให้ฟังกันครับ ก่อนอื่น ผมจะขอเกริ่นก่อนว่ารางวัลโนเบลนี้ ตั้งขึ้นมาจากเจตนารมณ์ของนักเคมีชาวสวีเดน ชื่อ อัลเฟรด โนเบล (Alfred Nobel, ค.ศ. 1833 - 1896) อัลเฟรด เกิดที่กรุงสตอกโฮล์ม ในตระกูลนักวิจัยระเบิด เหตุที่กล่าวเช่นนี้เพราะบิดาของอัลเฟรดทำงานวิจัยทางด้านตอร์ปิโดที่เซนต์ปีเตอร์สเบิร์ก ซึ่งเป็นส่วนหนึ่งของสหภาพโซเวียต (ในสมัยนั้น) ต่อมาครอบครัวเขาประสบปัญหาทางการเงิน จึงย้ายไปอยู่ที่สหรัฐอเมริกา หลังจากนั้นเขาได้ทุ่มเทชีวิตตัวเองให้กับงานวิจัยทางด้านระเบิด และในที่สุดเขาพบว่าถ้านำสารไนโตรกลีเซอรีนมาผสมกับซากของไดอะตอมที่เราเรียกว่า diatomaceous earth จะทำให้ระเบิดมีเสถียนภาพสูงขึ้นมากและการผลิตดินระเบิดก็มีความปลอดภัยสูงขึ้นมากด้วยเช่นกัน เขาเรียกระเบิดแบบใหม่นี้ว่า "ไดนาไมค์"


จากการค้นคว้านี้ทำให้ธุรกิจการผลิตระเบิดและอาวุธสงครามดำเนินไปได้เป็นอย่างดี แต่อย่างไรก็ตาม อุบัติเหตุที่ไม่คาดฝันก็มักจะเกิดขึ้นอยู่บ่อยครั้งในโรงงานของอัลเฟรด ครั้งที่ร้ายแรงที่สุดได้เกิดเหตุการณ์ระเบิดและคร่าชีวิตผู้คนในโรงงานไปมากมาย รวมทั้งชีวิตน้องชายของอัลเฟรดด้วย หนึ่งปีก่อนที่อัลเฟรดจะเสียชีวิต เขาได้ร่างพินัยกรรมเพื่อยกทรัพย์สินส่วนใหญ่ของเขาให้เป็นรางวัลแก่ผู้ทำคุณประโยชน์แก่โลกโดยไม่จำแนกเชื้อชาติ และนี่ก็กลายเป็นจุดกำเนิดของรางวัลโนเบล และในวันที่ 10 ธันวาคม ค.ศ. 1896 อัลเฟรด โนเบลก็ได้ถึงแก่กรรมด้วยโรคเส้นโลหิตในสมองแตก ทางมูลนิธิโนเบลจึงถือเอาวันที่ 10 ธันวาคมของทุกปี เป็นวันมอบรางวัลโนเบล จำนวน 5 สาขา อันได้แก่ ฟิสิกส์ (Physics) เคมี (Chemistry) สรีรวิทยาหรือวิทยาศาสตร์การแพทย์ (Physiology or Medicine) วรรณกรรม (Literature) และสันติภาพ (Peace)

ในวันที่ 7 ตุลาคม ค.ศ. 2009 นี้เอง คณะกรรมการผู้ทรงคุณวุฒิจาก The Royal Swedish Academy of Sciences ณ กรุงสตอกโฮล์ม ได้ตัดสินให้นักวิทยาศาสตร์ผู้ที่ได้รับรางวัลโนเบลสาขาเคมีในปี ค.ศ. 2009 นี้ มีด้วยกัน 3 คน โดยคนแรกคือศาสตราจารย์เวนคาทรามัน รามากริชมัน (Venkatraman Ramakrishman) จาก MRC Laboratory of Molecular BiologyCambridge สหราชอาณาจักร คนที่ 2 คือศาสตราจารย์โทมัส เอ สตีทซ์ (Thomas A. Steitz) จาก Yale University สหรัฐอเมริกา และคนสุดท้ายคือศาสตราจารย์เอดา อี โยนาธ (Ada E. Yonath) จาก Weizmann Institute of Science Rehovot ประเทศอิสราเอล ผลงานของนักวิทยาศาสตร์ทั้ง 3 ท่านนี้ เกี่ยวข้องกับการศึกษาโครงสร้างของไรโบโซม (ribosome) ในระดับอะตอม การค้นพบดังกล่าวทำให้เราเข้าใจการทำงานของไรโบโซมมากขึ้น ทั้งนี้ผู้สนใจสามารถเข้าไปอ่านรายละเอียดได้จากเวบไซต์ของมูลนิธิโนเบลได้โดยตรง แต่ผมขอถือโอกาสนี้ นำเอกสารที่ทางมูลนิธิจัดทำเพื่อเผยแพร่แก่บุคคลทั่วไปมาแปลและเรียบเรียงเนื้อหาใหม่ ให้ง่ายต่อความเข้าใจ ซึ่งอาจจะมีประโยชน์ต่อผู้สนใจที่��ีเวลาน้อย และผู้ที่ไม่ถนัดภาษาอังกฤษ

ทฤษฎีวิวัฒนาการของดาร์วินที่เสนอไว้ตั้งแต่ปี ค.ศ. 1859 มีหัวใจสำคัญอยู่ที่ลักษณะต่างๆ ของสิ่งมีชีวิต ต้องสามารถถ่ายทอดไปยังสิ่งมีชีวิตรุ่นลูกหลานได้ และในระหว่างที่ลักษณะเหล่านี้ถ่ายทอดไป ก็จะเกิดการเปลี่ยนแปลงทีละเล็กทีละน้อย สิ่งมีชีวิตตัวที่แข็งแรงกว่า สามารถอยู่รอดได้ ก็จะถ่ายทอดลักษณะนั้นไปยังลูกหลานรุ่นต่อๆ ไปได้ เมื่อนักวิทยาศาสตร์พิจารณาทฤษฎีของดาร์วินให้ละเอียดขึ้น ก็เกิดคำถามใหม่ขึ้นมาอีกหลายคำถาม อาทิ อะไรกันแน่ที่ถูกส่งต่อไปยังลูกหลาน จริงๆ แล้วการเปลี่ยนลักษณะทีละน้อยนั้นเกิดขึ้นที่ไหนกันแน่ ลักษณะเหล่านี้แสดงออกมาได้อย่างไรในสิ่งมีชีวิตชนิดต่างๆ และอีกหลากหลายคำถามที่ตามมา

เราทราบกันดีเกี่ยวกับ central dogma ว่�� DNA สามารถสร้าง RNA และ RNA ก็เป็นแม่แบบในการสร้างโปรตีน นักชีววิทยาถือว่า central dogma เป็นกุญแจสำคัญในการควบคุมชีวิต เพราะทำให้เราทราบว่า DNA ควมคุมลักษณะทางพันธุกรรมได้อย่างไร และรางวัลโนเบลสาขาเคมีปีนี้ถือได้ว่าเป็นภาคจบของรางวัลโนเบลไตรภาค (trilogy) ที่สำคัญมากอันหนึ่ง โดยเริ่มต้นในปี ค.ศ. 1962 จากการที่ เจมส์ วัตสัน (James Watson) ฟรานซิส คลิกค์ (Francis Crick) และมัวริส วิลกินส์ (Maurice Wilkins) ได้รับรางวัลโนเบลสาขาสรีรวิทยาหรือการแพทย์ เนื่องจากนำเสนอโครงสร้างโมเลกุล DNA ที่เป็นเกลียวคู่ จากนั้น episode II เกิดขึ้นในปี ค.ศ. 2006 โดย โรเจอร์ ดี คอร์นเบิร์ก (Roger D. Kornberg) ได้รางวัลโนเบลสาขาเคมี จาก X-ray structure ที่ใช้อธิบายว่า mRNA ถูกสร้างขึ้นมาจากแม่แบบได้อย่างไร และในปีนี้นักวิทยาศาสตร์ทั้ง 3 ท่านก็ได้วางชิ้น jigsaw ชิ้นสุดท้ายของ central dogma โดยการค้นพบโครงสร้างระดับอะตอมของไรโบโซม

โครงสร้าง DNA - ปฐมบทแห่งการค้นพบ

Deoxyribonucleic acid หรือที่เรียกกันสั้นๆ ว่า DNA เป็นสารเคมีในเซลล์ที่นักวิทยาศาสตร์รู้จักกันมาตั้งแต่ช่วงต้นของศตวรรษที่ 20 แล้ว แต่ไม่ได้ให้ความสนใจศึกษามากนัก จนกระทั่งปี ค.ศ. 1871 เฟดเดอริก มิชเชอร์ (Friedrich Micscher) ได้สกัด DNA ออกจากนิวเครียสของเซลล์ได้สำเร็จ และมีการศึกษาต่อมาพบว่าในโมเลกุล DNA ประกอบไปด้วยนิวคลีโอไทด์ (nucleotide) 4 ชนิด คือ adenine (A) cytosine (C) guanine (G) และ thymine (T) แต่นักวิทยาศสตร์กลับไปสนใจกับโปรตีนมากกว่า จนกระทั่งปี ค.ศ. 1944 นักวิทยาศาสตร์หันกลับมาให้ความสนใจกับ DNA อีกครั้ง เพราะการทดลองของ เอเวอร์รี่ (Avery) แมกโลด (MacLeod) และแมกคาร์ธี (McCarty) ที่ transfer ชิ้น DNA ของแบคทีเรียก่อโรคเข้าไปยังแบคทีเรียไม่ก่อโรค แล้วทำให้แบคทีเรียไม่ก่อโรคมีสมบัติในการก่อโรค นั่นแสดงว่า DNA เป็นตัวควบคุมพันธุกรรม

วันที่ 28 กุมภาพันธ์ ค.ศ. 1953 เจมส์ วัตสัน และ ฟรานซิส คลิกค์ แห่ง Cavendish Laboratory จากมหาวิทยาลัยเคมบริดจ์ สหราชอาณาจักร ค้นพบว่าโครงสร้างสามมิติของ DNA ต้องอยู่ในรูปของเกลียวคู่ถึงจะถูกต้อง นี่เป็นเพราะพวกเขาได้เห็นภาพ X-ray diffraction ของโรซาลินด์ แฟรงกลิน (Rosalind Franklin) จาก King's College ในกรุงลอนดอน ประกอบกับงานวิจัยของ เออร์วิน ชาร์กาฟ (Erwin Chargaff) ที่พบว่าใน DNA ของสิ่งมีชีวิตต่างๆ ไม่ว่าจะเป็นพืช สัตว์ หรือแม้แต่แบคทีเรีย มักจะมีนิวคลิโอไทด์ชนิด A และ T เท่าๆ กัน และนิวคลิโอไทด์ชนิด G และ C เท่าๆ กันด้วย นอกจากนี้งานวิจัยอีกชิ้นหนึ่งที่สำคัญมากจากเพื่อนร่วมงานคนหนึ่งของพวกเขา แสดงให้เห็นว่านิวคลีโอไทด์ A สามารถเชื่อมกับ T และ C สามารถเชื่อมต่อกับ G ได้ ทั้งหมดนี้เลยส่งผลให้ วัตสัน และ คลิกค์ สร้างแบบจำลองโครงสร้างสามมิติของ DNA ได้สำเร็จ

RNA - ปริศนาที่เชื่อมโยงพันธุกรรมกับลักษณะของสิ่งมีชีวิต

ในช่วงเวลาไล่เลี่ยกับที่ วัตสัน และ คลิกค์ ได้ค้นพบโครงสร้าง DNA นักวิทยาศาสตร์จำนวนมากก็เริ่มหันมาสนใจโมเลกุล ribonucleic acid หรือที่เราเรียกว่า RNA จากการสั่งสมความรู้มากมาย ทำให้เราทราบว่า ในโมเลกุลของ RNA ไม่มีนิวคลีโอไทด์ชนิด T แต่มีนิวคลีโอไทด์ uracil (U) แทน ในช่วงกลางศตวรรษที่ 20 เรารู้เพิ่มเติมว่า RNA มักจะพบอยู่ในไซโตพลาสซึม (cytoplasm) ของเซลล์และพบรวมอยู่กับก้อนโปรตีนขนาดใหญ่ ต่อมาในปี ค.ศ. 1958 เราเรียกก้อนโปรตีนนั้นว่าไรโบโซม (ribosome) และยังเรียก RNA ที่อยู่กับไรโบโซมว่า ribosomal RNA หรือ rRNA อีกด้วย

หลังจากที่นักพันธุศาสตร์ทำการศึกษาค้นคว้ามากขึ้น พวกเขาค้นพบว่า DNA เป็นตัวการควบคุมลักษณะทางพันธุกรรม และโปรตีนเป็นตัวแสดงออกของลักษณะทางพันธุกรรม แต่ DNA อยู่ในนิวเคลียส ส่วนโปรตีนถูกสร้างขึ้นด้วยก้อนไรโบโซมในไซโตพลาสซึม สารเคมีทั้งสองถูกแยกออกจากกันด้วยเยื่อหุ้มนิวเคลียส และไม่เคยได้พบกัน แล้ว DNA จะไปสร้างโปรตีนขึ้นมาควบคุมลักษณะต่างๆ ได้อย่างไร คำถามนี้ยังคงเป็นปริศนาดำมืด จนกระทั่งช่วง 1960s นักวิทยาศาสตร์เริ่มค้นพบว่ารหัสพันธุกรรมใน DNA จะถูกคัดลอกลงไปไว้ในโมเลกุลของ RNA แต่ RNA แบบนี้ไม่เหมือน rRNA ที่พวกเขารู้จัก จึงตั้งชื่อใหม่ว่า messenger RNA หรือ mRNA หลังจากที่นักวิทยาศาสตร์ค้นพบ mRNA ก็เริ่มศึกษาขบวนการสังเคราะห์โปรตีนมากขึ้นและเรียนรู้ต่อมาว่าไรโบโซมจะอ่านลำดับนิวคลีโอไทด์บน RNA ทีละสามนิวคลีโอไทด์ หรือที่เรียกกันว่า ��คดอน (codon) และโคดอนแรกที่เขารู้จักก็คือ UUU ซึ่งเป็นรหัสสำหรับสังเคราะห์กรดอะมิโน phenylalanine ต่อมาจึงมีการค้นพบ RNA อีกชนิดหนึ่งที่เป็นตัวพากรดอะมิโนมาเชื่อมต่อกันเป็นสายโปรตีนตามลำดับที่กำหนดไว้ในสาย mRNA เราเรียก RNA พวกนี้ว่า transfer RNA หรือ tRNA

จากจุดนี้เอง ทำให้นักวิทยาศาสตร์เห็นภาพกว้างว่า DNA ควบคุมให้เกิดลักษณะต่างๆ ได้โดยผ่านตัวกลางคือ RNA นั่นเอง แต่ วัตสัน เคยกล่าวไว้ใน review ฉบับหนึ่ง เมื่อปี ค.ศ. 1964 ว่า "แย่หน่อย ที่เราไม่สามารถอธิบายการทำงานของโมเลกุลใดๆ ได้อย่างถูกต้องเลย ถ้าเราไม่รู้โครงสร้างของโมเลกุลนั้นเสียก่อน"

เอดา โยนาธ ผู้บุกเบิกเส้นทางวิจัยที่ไม่มีใครกล้าเดิน

การค้นพบที่สำคัญๆ ส่วนมาก มักจะมาจากความพยายามที่บ้าบิ่น เลือกเดินในเส้นทางที่ไม่มีใครคาดคิดมาก่อน และทำในสิ่งที่ไม่มีใครคิดถึงมาก่อน และครั้งนี้ก็เช่นเดียวกัน ผู้บุกเบิกเส้นทางวิจัยสายนี้คนแรกก็คือ เอดา โยนาธ เธอตั้งใจจะทำในสิ่งที่นักวิทยาศาสตร์ทั่วโลกเชื่อว่ามันไม่มีทางเป็นไปได้ นั่นคือ การถ่ายภาพ x-ray crystallography ของไรโบโซม

หลักการของ X-ray crystallography ก็คล้ายกับการเอาไฟฉายมาส่องมือแล้วให้เกิดเงาบนฉากเป็นรูปมือ แล้วเราก็เดาว่ามือต้องมีรูปร่างอย่างไรจากรูปเงา แต่ X-ray crystallography ซับซ้อนกว่ามาก เพราะแทนที่จะใช้แสง กลับใช้รังสี X แทน และเราต้องเตรียมโปรตีนที่ต้องการศึกษาให้อยู่ในรูปผลึกโปรตีน (protein crystal) เมื่อรังสีเอ๊กซ์ผ่านเข้าไปในก้อนผลึกโปรตีน ก็จะกระทบกับอะตอมต่างๆ ในผลึกและกระเจิงออกมาเกิดเงาบนแผ่นฟิล์มซึ่งทำหน้าที่แทนฉาก จากนั้นเราก็มาวิเคราะห์รูปเงาที่ได้ว่าโมเลกุลในผลึกน่าจะมีโครงสร้างเป็นอย่างไร แต่ปัจจุบันเรามีอุปกรณ์ที่ดีกว่าแผ่นฟิล์มมาก นั่นก็คือ CCD detector เหมือนกับที่มีในกล้องถ่ายรูปดิจิตอลที่เราใช้กันเลย (และรางวัลโนเบลสาขาฟิสิกส์ปีนี้ ก็มอบให้กับผู้ค้นพบใยแก้วนำแสง ซึ่งนำไปสู่การสร้าง CCD) การใช้ CCD detector ทำให้การวัดตำแหน่งของอะตอมต่างๆ ในโมเลกุลถูกต้องมากขึ้น

ความยากของการทำ X-ray crystallography ไม่ได้อยู่ที่คุณภาพของ detector ต้องดีมากๆ เพียงอย่างเดียว แต่คุณภาพของผลึกโปรตีนก็สำคัญไม่แพ้กัน การทำให้โปรตีนกลายเป็นผลึกขึ้นมาได้นั้นก็อาศัยหลักการคล้ายๆ กับการระเหยน้ำเกลือให้แห้งอย่างช้า สุดท้ายเราก็จะได้ผลึกเกลือที่มีรูปร่างสวยงามอยู่ที่ก้นภาชนะ แต่ถ้าเราต้มน้ำเกลือให้แห้งอย่างรวดเร็ว ก็จะได้ตะกอนเกลือแทน จะเห็นว่า วิธีในการตกผลึก จะส่งผลให้ผลึกที่มีคุณภาพต่างกันออกไป ที่นี้ไรโบโซม เป็นสารทีมีโมเลกุลขนาดมหึมา ประกอบด้วย 2 subunits คือ small subunit ที่มี RNA 1 โมเลกุลประกอบอยู่กับโปรตีนอีก 32 โมเลกุล และ large subunit ที่ประกอบขึ้นจาก RNA จำนวน 3 โมเลกุลและโปรตีนอีก 46 โมเลกุล ถ้าคุณภาพของผลึกไม่ถึงขั้นดีมากๆ การจะได้ภาพ X-ray crystallography ที่ชัดเจนก็ดูจะมืดมน

จากน้ำพุร้อนสู่ Dead Sea - ยิ่งหายาก เพชรยิ่งน้ำงาม

เอดา ยูนาธ รู้ว่าการตกผลึกไรโบโซมที่มีคุณภาพสูงนั้นไม่ใช่เรื่องง่าย เธอจึงเลือกไรโบโซมจากแบคทีเรียที่โตในน้ำพุร้อนที่อุณหภูมิ 75 องศาเซลเซียส ชื่อ Geobacillus stearothermophilus นั่นเพราะเธอเชื่อว่าไรโบโซมของแบคทีเรียชนิดนี้น่าจะมีความคงตัวมาก และสามารถนำไปตกผลึกให้มีคุณภาพสูงได้ และในปี ค.ศ. 1980 เธอก็ได้ภาพ X-ray crystallography ของ large subunit ของไรโบโซมมา ถึงแม้ว่าภาพนั้นจะดูแย่มากก็ตาม แต่อย่างน้อยความพยายามก็ไม่สูญเปล่าเลยทีเดียว

หลังจากนั้น เธอก็ทดลองตกผลึกอีกหลายต่อหลายครั้ง เปลี่ยน condition ในการทดลองมากมาย อาทิเช่น เธอลองตกผลึกโดยแช่แข็งโปรตีนในไนโตรเจนเหลวที่อุณหภูมิ -196 องศาเซลเซียส หรือแม้แต่ทดลองตกผลึกไรโบโซมจากแบคทีเรียHaloarcula marismortui ที่เติบโตได้ดีใน Dead Sea ที่มีเกลือในความเข้มข้นสูง เป็นต้น

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

ไขปริศนาของจุดดำจำนวนหลายล้านจุด

ในช่วงปลายศตวรรษที่ 20 เอดา สามารถตกผลึกไรโบโซมที่มีคุณภาพพอที่จะได้ภาพถ่าย X-ray crystallography ที่บอกรายละเอียดของอะตอมในตำแหน่งต่างๆ ได้ แต่นี่กลับทำให้เธอพบปัญหาใหม่ที่รออยู่ นั่นก็คือ "phase problem" ที่เป็นเช่นนี้ ก็เพราะว่าการคำนวณ electron density ในโมเลกุลนั้น จำเป็นต้องมี 3 สิ่งประกอบกัน นั่นคือ ดัชนีของการหักเห (indicies of a reflection) ความเข้มของการหักเห (intensity of reflections) และ phase angle ซึ่งสองค่าแรกนั้นจะได้มาจากการทดลอง ส่วนค่าสุดท้ายเป็นค่าที่คำนวณได้ค่อนข้างยากและซับซ้อน และการที่จะได้โครงสร้างระดับอะตอมของไรโบโซม พวกเขาจำเป็นจะต้องรู้ phase angle ของอะตอมทุกอะตอมที่ปรากฏเป็นภาพในรูปของจุดสีดำบน detector มิเช่นนั้นก็จะไม่สามารถทราบได้เลยว่าอะตอมต่างๆ เหล่านี้อยู่ที่ตำแหน่งใดในก้อนผลึก

แต่ในที่สุดปัญหานี้ก็มีทางแก้ไข นักวิทยาศาสตร์จะชุบก้อนผลึกด้วย heavy atom เช่น ปรอท เป็นต้น อะตอมเหล่านี้จะไปเคลือบอยู่ที่ผิวของผลึกไรโบโซม และนักวิทยาศาสตร์จะทราบ phase angle ได้จากการเปรียบเทียบจุดจากผลึกที่เคลือบและไม่ได้เคลือบด้วย heavy atoms แต่ไรโบโซมก็ไม่ใช่สารโมเลกุลใหญ่ธรรมดาๆ แต่เป็นโมเลกุลขนาดมหึมา จึงไม่ใช่เรื่องง่ายที่จะหา phase angle ของอะตอมต่างๆ ได้ทั้งหมด

ในที่สุด โทมัส ก็เป็นคนสุดท้ายที่เข้ามาแก้ไขปัญหาดังกล่าวให้ลุล่วงไปได้ โดยอาศัยข้อมูลจากภาพถ่ายไรโบโซมด้วยกล้องจุลทรรศน์อิเล็กตรอน แต่ด้วยข้อมูลของภาพถ่ายไรโบโซมเพียงอย่างเดียวก็ไม่คมชัดเพียงพอที่จะเห็นอะตอมต่างๆ ได้ครบทั้งก้อนไรโบโซม สุดท้ายเมื่อรวมข้อมูลภาพถ่ายดังกล่าวเข้ากับข้อมูลของ heavy atoms ก็ทำให้เขาได้ phase angle ในที่สุด

ความเหน็ดเหนื่อยตลอด 20 ปี

ในปี ค.ศ. 1998 โทมัส ได้ตีพิมพ์โครงสร้างระดับโมเลกุลของ large subunit ของไรโบโซมสำเร็จเป็นคนแรก แต่โครงสร้างโมเลกุลอันนั้น ก็ยังไม่ละเอียดมากจนสามารถเห็นได้ทุกอะตอม แต่เราสามารถเห็น rRNA ที่อยู่ในไรโบโซมได้ ซึ่งถือได้ว่าเป็นการค้นพบที่ยิ่งใหญ่มากอันหนึ่ง

ปัจจุบันนี้ เทคโนโลยีการสร้างผลึกโปรตีนก้าวหน้าขึ้นมาก ประกอบกับนักวิทยา
ศาสตร์สามารถแก้ปัญหา phase problem ได้ดีขึ้นมาก แต่พวกเขาก็ยังไม่หยุดที่จะเดินหน้าค้นหาโครงสร้างของไรโบโซมเพิ่มขึ้นอีก ราวเดือนสิงหาคมและกันยายนของปี ค.ศ. 2000 โทมัส ก็ได้โครงสร้างของ large subunit ของไรโบโซมจากแบคทีเรีย Haloarcula marismortuiส่วนเอดาและเวนคาทรามัน ก็ได้โครงสร้างของ small subunit ของไรโบโซมจากแบคทีเรียThermus thermophilus ในที่สุด

ไรโบโซม - กุญแจไขปริศนาแห่งชีวิต

ถ้าไรโบโซมสามารถสร้างโปรตีนที่มีลำดับกรดอะมิโนผิดปกติไปจากรหัสที่กำหนดไว้ใน DNA โปรตีนที่เกิดขึ้นก็อาจจะทำหน้าที่ไม่ได้ หรือที่แย่ยิ่งไปกว่านั้นคือโปรตีนใหม่นี้อาจมีหน้าที่เปลี่ยนแปลงไป

โครงสร้างโมเลกุลของ small subunit ของไรโบโซมที่เวนคาทรามันสร้างขึ้น เป็นกุญแกไขปริศนาว่า ทำไมไรโบโซมจึงมีขบวนการแปลรหัส (translation) ได้อย่างแม่นยำ เขาค้บพบอะไรบางอย่างในไรโบโซมที่เรียกว่า molecular ruler นั่นคือ rRNA ในไรโบโซมจะวัดระยะห่างระหว่าง codon บนเส้น mRNA และ anti-codon บน tRNA ถ้าระยะห่างนี้ไม่ถูกต้อง tRNA โมเลกุลนั้นจะหลุดออกไปจากไรโบโซม ด้วยเหตุนี้ ทำให้ความผิดพลาดในการทำงานของไรโบโซมเกิดขึ้นได้น้อยมาก (ประมาณ 1 ครั้งใน 100,000 กรดอะมิโน)

ส่วน large subunit ของไรโบโซม มีหน้าที่สำคัญในการสังเคราะห์โปรตีน เพราะ peptide bond จะถูกสร้างขึ้นในส่วนนี้ของก้อนไรโบโซม นอกจากนี้ นักวิทยาศาสตร์ยังพบว่าในแต่ละวินาที ไรโบโซมแต่ละก้อนจะสามารถ peptide bond ได้ประมาณ 20 ครั้ง และด้วยโครงสร้างโมเลกุลของ large subunit ของไรโบโซมที่โทมัสทำขึ้น ก็เป็นกุญแจอธิบายว่าอะตอมไหนในไรโบโซมทำหน้าที่ในการสร้าง peptide bond

ยิ่งไปกว่านี้ มนุษย์เราเรียนรู้ที่จะสร้างยาปฏิชีวนะจำนวนมากมายเพื่อใช้ในการฆ่าเชื้อแบคทีเรีย โดยการยับยั้งการทำงานของไรโบโซมของแบคทีเรีย และในวันนี้ ผลงานของนักวิทยาศาสตร์รางวัลโนเบลทั้งสามท่านนี้ นอกจากจะช่วยให้เราเข้าใจกลไกการทำงานของไรโบโซมมากยิ่งขึ้นแล้ว ยังช่วยให้เราทราบว่ายาปฏิชีวนะแต่ละชนิดไปยับยั้งการทำงานของไรโบโซมที่ตำแหน่งไหนในระดับอะตอม และยังช่วยให้นักวิทยาศาสตร์สามารถค้นหายาปฏิชีวนะใหม่ๆ ได้อีกมากมาย

Python Programming


Print: A Useful Output Command

ประพัฒน์ สุริยผล

ทั้งนี้ ผม assume ว่าคุณได้ติดตั้ง python และสามารถเรียก python IDLE ขึ้นมาทำงานได้แล้ว เราจะเริ่มต้นเรียนรู้การเขียนโปรแกรมด้วยคำสั่ง print ที่เลือก print เป็นคำสั่งแรก เพราะเป็นคำสั่งที่มีความสำคัญ print เป็นคำสั่งที่เราใช้แสดงผลในสิ่งที่เราต้องการ โปรแกรมส่วนใหญ่จะไม่มีประโยชน์ถ้าเราไม่สามารถสั่งให้เครื่องแสดงผลได้ คำสั่ง printสามารถนำไปใช้ในการสร้าง file ก็ได้ โดยที่เรายังไม่ต้องเรียนรู้วิธีสร้าง file ใน python เลย (จะกล่าวถึงวิธีนี้ในหัวข้อ pipe ในภายหลัง) เราจะเริ่มต้นง่ายๆ ด้วยคำสั่ง

>>> print 1
1

ซึ่งเครื่องก็จะแสดงผลลัพธ์ เป็นเลข 1 ออกมา

>>> print 1+2
3

เราก็จะได้ เลข 3 เพราะฉะนั้น เราสามารถใช้ python เป็นเครื่องคิดเลขอย่างง่ายๆ แล้ว ถ้าหากเราเปิด python อยู่แล้วต้องการใช้เครื่องคิดเลข ก็ไม่ต้องมองหาไปที่อื่น สามารถพิมพ์คำสั่งใน python ได้เลย ถ้าหากเราต้องการพิมพ์ตัวอักษร เราก็สามารถทำได้ดังนี้

>>> print 'hello world'
hello world

เครื่องก็จะพิมพ์ hello world ออกมาให้ ให้สังเกตว่า สำหรับตัวอักษร เราจะต้องปิดหัวท้ายส่วนที่เป็นตัวอักษรด้วยสัญลักษณ์ (') ขีดเดียว หรือ (") ขีดคู่ เพื่อให้ python ทราบว่าให้จัดการกับสิ่งที่อยู่ด้านในนั้นแบบตัวอักษร และถ้าเราใส่เลขลงไป จะเกิดอะไรขึ้น

>>> print '1'
1

เราก็จะได้เลข 1 เหมือนเดิม เพราะตัวอักษร 1 กับเลข 1 เมื่อพิมพ์ออกมาก็ไม่มีอะไรต่างกัน แต่เมื่อเราพิมพ์

>>> print '1'+'2'
12

เราจะได้ 12 แทนที่จะเป็น 3 ตามตัวอย่างข้างต้น เพราะสำหรับ python แล้ว การที่เอาตัวอักษรมาบวกกัน ก็คือการเอาตัวอักษรมาต่อกันตามลำดับนั่นเอง

ถ้าหากเราต้องการพิมพ์ขีดเดียว เราสามารถคร่อมตัวอักษรด้วยขีดคู่ และในทางกลับกัน เราสามารถคร่อมขีดคู่ด้วยขีดเดี��วได้เช่นกัน เช่น

>>> print 'I say "Hello" to you.'
I say "Hello" to you.

พิมพ์ตัวอักษรที่พิมพ์ด้วยวิธีปกติไม่ได้

1. ตัวขึ้นบรรทัดใหม่ (new line)

มีตัวอักษรหรือบางสิ่งบางอย่างที่เราไม่สามารถพิมพ์ได้ ยกตัวอย่างเช่น การขึ้นบรรทัดใหม่ เพราะถ้าหากเราต้องการพิมพ์ตัวขึ้นบรรทัดใหม่ด้วยการกดปุ่ม ก็จะกลายเป็นว่า เราสั่งให้ python ทำงานที่บรรทัดนั้นทันที เราจึงไม่สามารถกดปุ่มได้ python แก้ปัญหานี้ด้วยการใช้ตัวอักษรพิเศษ เช่น \n แทนการขึ้นบรรทัดใหม่ เช่นถ้าหากเราต้องการพิมพ์ 1 ขึ้นบรรทัดใหม่ แล้วพิมพ์ 2 แล้วขึ้นบรรทัดใหม่ เราสามารถใช้คำสั่ง

print 1
print 2

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

print '1\n2'

เราไม่ต้องปิดท้ายเลข 2 ด้วย \n เพราะว่า เมื่อจบคำสั่ง print เราจะได้บรรทัดใหม่โดยอัตโนมัติ ถ้า���ราใส่ \n ลงไป เราจะได้ขึ้นบรรทัดใหม่มา 2 บรรทัด วิธีจำง่ายๆ คือ n มาจากคำว่า newline

2. ตัวแท็ป (tab)

ตัวอักษรอีกตัวหนึ่งที่เรามักจะต้องใช้พิมพ์บ่อยๆ คือตัวแท็ป (tab) ใน python เราสามารถแทนด้วยสัญลักษณ์ \t วิธีจำง่ายๆ คือ t มาจากคำว่า tab

3. สัญลักษณ์ backslash

เมื่อเราใช้ \ (backslash) ในการพิมพ์ตัวอักษรพิเศษ เราจึงไม่สามารถพิมพ์ \ ได้ด้วยการใช้คำสั่ง

print '\' # อันนี้ ไม่ถูกต้อง

note: เราต้องใส่สัญลักษณ์ ' คร่อมไว้ เพราะตัว \ เป็นตัวอักษร วิธีพิมพ์ \ ที่ถูกต้องคือใช้สัญลักษณ์ '\\'

สัญลักษณ์ # หมายถึง comment สิ่งที่อยู่ต่อจากสัญลักษณ์นี้ไปจนกระทั่งสุดบรรทัด จะไม่มีผลต่อการทำงานของ python จะพิมพ์หรือไม่พิมพ์ก็ได้ ที่ใส่ไว้เพื่อเตือนใจว่า บรรทัดนี้ทำงานไม่ถูกต้อง

print '\\' # ถูกต้อง

เราจะได้สัญลักษณ์ \ หนึ่งตัว

พิมพ์มากกว่าหนึ่งชนิด

เราสามารถพิมพ์ผสมกันมากกว่าหนึ่งชนิดได้ ด้วยการคั่นแต่ละชนิดด้วย comma (,) เช่น

print '1+2=', 1+2

เราจะได้ผลลัพธ์ออกมาเป็น

1+2= 3

ให้สังเกตว่าหลังเครืองหมาย = จะมีเว้นวรรคมาหนึ่งตัวโดยอัตโนมัติ

เรื่องของ print ยังมีอีกไว้ต่อคราวหน้า

แบบฝึกหัด

เขียนคำสั่ง print ให้พิมพ์ดังนี้ โดยใช้คำสั่งบรรทัดเดียว (มีคำสั่ง print คำสั่งเดียว)

1. Hello, How are you?

2. Don't say No!

3. Header1 Header2 Header3
<-tab-> <-tab->

4. บรรทัดแรกให้พิมพ์ 234*22.43 = (ใส่คำตอบที่คำนวณได้ตรงนี้)
บรรทัดที่สองพิมพ์ this is backslash -> \

คิดว่าคงจะไม่ยากสำหรับคุณนะครับ