บทเรียนการจัดการเกี่ยวกับอักขระ หรือประโยคต่างๆที่เป็น Data Type ประเภท String ด้วยภาษา Python สำหรับผู้เริ่มต้นพัฒนาโปรแกรม เพื่อทำความเข้าใจจากภาษา Python
ในบทเรียนนี้เราจะจัดการกับ Data Type ของตัวแปรประเภท String โดยใช้ตัวอย่างต่อไปนี้
str = "Life is not a problem to be solved, but a reality to be experienced. , Soren Kierkegaard" print (str)
หากทำการบันทึกไฟล์เป็น Tutorial4.py แล้วกด F5 เพื่อ Run คำสั่งแล้วจะได้ผลลัพธ์เรียบง่ายดังนี้
เป็นการ Print ค่าประโยคที่อยู่ภายใน “-” ออกมาทั้งหมด คราวนี้จะเป็นการใช้งานคำสั่งที่เกี่ยวกับตัวแปรประเภท String
str1 = "Life is not a problem to be solved, but a reality to be experienced. , Soren Kierkegaard" str2 = "Mr. Smith" newWord = str1.replace("Soren Kierkegaard",str2) print (":",newWord)
เป็นการเก็บตัวแปร str1 ด้วยประโยคเมื่อครู่ และเพิ่มตัวแปร str2 มาเก็บชื่อของผู้แต่งประโยคนั่นคือ “Mr. Smith” เราจะทำการใช้ฟังก์ชัน String.Replace() เป็นการ แทนค่า String บางคำในประโยคให้เป็น คำใหมแทนที่เข้าไป เก็บลงตัวแปร newWord
ผลลัพธ์คือ
เราสามารถใช้วิธีการ Sub String ใน Python ได้ง่ายโดยการเรียกคำสั่งดังนี้
import string stringWord = "Life is not a problem to be solved, but a reality to be experienced." print (stringWord[0], end="") print() print (stringWord[0:11], end="")
ผลลัพธ์
คำสั่งแรกคือเรียก String ตำแหน่งแรกของประโยค คือ “L” อีกคำสั่งคือ
print (stringWord[0], end="")
นั่นคือการเรียกตำแหน่งที่ 0 ถึงตัวอักษรที่ 11
print (stringWord[0:11], end="")
เป็นการ substring แบบง่ายๆ ซึ่งเราไม่อยากใช้ String.Replace() เราสามารถใช้คำสั่ง SubString และ Update String ในตำแหน่งที่ต้องการไปแทนก็ได้
เช่น
import string stringWord = "Life is not a problem to be solved, but a reality to be experienced." stringNew = "Life is ***" print (stringWord[0:11], end="") print() print ("Result: ", stringWord[0:11]+stringNew, end="")
เป็นการ Sub ตัดแค่ช่วงของ Lift is not ตำแหน่งที่ 0 ถึง 11 ตามคำสั่ง
print (stringWord[0:11], end="")
แล้วทำการ Update String ด้วยประโยคใหม่ที่เก็บจากตัวแปร stringNew คือ “Life is ***” ไปแทนค่าตำแหน่งนั้นเลย
print ("Result: ", stringWord[0:11]+stringNew, end="")
ผลลัพธ์คือ
คำสั่งการนับ String.Len() เป็นการนับ Length ขนาดของ String ใช้คำสั่งต่อไปนี้
import string stringWord = "Life is not a problem to be solved, but a reality to be experienced." print (str(len(stringWord)), end="")
ผลลัพธ์คือ
การใช้ String.Strip() เป็นการ “ละ” อักขระบางตัวที่ไม่ต้องการแสดงผล เช่นตัวอย่างที่ใช้คือ
import string stringWord = "Life is not a problem to be solved, but a reality to be experienced." print (stringWord.strip("."), end="")
สังเกตว่าเราจะเอาตัวอักขระ “.” คือ . ออกไปจากประโยค
สุดท้ายของบทนี้น่าจะเป็นการรับค่าตัวแปรจาก Input ทั้งสองค่าเพื่อนำไป ผสมกับ String Format Operator แบบง่ายๆ ตัวอย่างที่จะยกก็น่าจะเป็นคำสั่งชุดนี้ครับ
import string fullname = input("ชื่อ-นามสกุล: ") email = input("อีเมล: ") ages = int(input("อายุ: ")) salary = float(input("เงินเดือน: ")) print("คุณชื่อ %s อายุ %d ปี เงินเดือน %f สามารถติดต่อคุณได้ที่อีเมล %s" % (fullname,ages,salary,email), end="")
จะเห็นว่ารูปแบบ String Operation ไม่ต่างอะไรกับตระกูลภาษา C/C++ ใช้ % เป็นค่ารับซึ่งเราสามารถเรียกใช้ตามข้อกำหนดดังนี้
Format Symbol | Conversion |
---|---|
%c | character |
%s | string conversion via str() prior to formatting |
%i | signed decimal integer |
%d | signed decimal integer |
%u | unsigned decimal integer |
%o | octal integer |
%x | hexadecimal integer (lowercase letters) |
%X | hexadecimal integer (UPPERcase letters) |
%e | exponential notation (with lowercase ‘e’) |
%E | exponential notation (with UPPERcase ‘E’) |
%f | floating point real number |
%g | the shorter of %f and %e |
%G | the shorter of %f and %E |
ลองทดสอบ Run ผลลัพธ์ดู
จะเห็นว่าการเรียกรับค่า และนำมาแสดงผลกับ String นั้นไม่ยากเท่าไรเลยใช่ไหมครับ ลองเอาไปประยุกต์ใช้ในบทเรียนกันนะครับ