17 ก.ค. 2020 เวลา 08:30 • วิทยาศาสตร์ & เทคโนโลยี
หลังจากที่ห่างหายกันไปนานมาก ๆ แอดมินได้ไปพัฒนาโปรแกรมต่อ วันนี้ก็ได้มีเวลามาพูดถึงเรื่อง string พื้นฐานกันอีกเล็กน้อย นั่นก็คือ การใช้ ฟังก์ชัน len และ string index
ฟังก์ชัน len(x) มีความหมายว่าความยาวของ string x ว่ามีกี่อักขระ เมื่อ x เป็น string ยกตัวอย่างเช่น
>> word=‘telephone’
>> print(len(word))
Output: 9
>> text=‘I have a boyfriend.’
>> print(len(text))
Output: 19 (นับทั้งเว้นวรรคและจุดด้วยเนื่องจากทั้งคู่ก็เป็นอักขระเช่นกัน)
String Index: คือการค้นหาอักขระตัวใดตัวหนึ่งที่อ้างอิงจากเลขบอกตำแหน่ง ก่อนอื่นเราจะกล่าวถึงเลขบอกตำแหน่งก่อน
เลขบอกตำแหน่งนี้สามารถมองได้สองแบบคือ
1. นับจากซ้ายสุดของสายอักขระไปยังขวาสุด โดยที่ตำแหน่งซ้ายสุดจะมีค่าประจำหลักคือเลข 0 แล้วไล่เรียงไปทางขวาโดยค่าประจำหลักจะเพิ่มทีละ 1 ไปเรื่อย ๆ ยกตัวอย่างเช่น
word=‘cAt’ โดยที่เราจะได้ว่า ค่าประจำหลักของ ‘c’ คือ 0, ค่าประจำหลักของ ‘A’ คือ 1 และ ค่าประจำหลักของ ‘t’ คือ 2
2. นับจากขวาสุด(ตำแหน่งสุดท้าย) ไปยังซ้ายสุดของสายอักขระ โดยที่ตำแหน่งขวาสุดจะมีค่าประจำหลักเป็นเป็น -1 แล้วไล่เรียงไปทางซ้านเรื่อย ๆ ซึ่งค่าประจำหลักจะลดลงทีละ 1 เช่นกัน ดังตัวอย่างเดิม word=‘cAt’ เราจะได้ว่า ค่าประจำหลักของ ‘t’ คือ -1, ค่าประจำหลักของ ‘A’ คือ -2 และค่าประจำหลักของ ’c’ คือ -3
ต่อมาเราจะกล่าวถึงการเรียงใช้งานค้นหาอักขระในแต่ละตำแหน่ง ซึ่งจะยกตัวอย่างเดิมเลย นั่นคือ word=‘cAt’ สมมติเราจะดึงแค่ตัว ‘A’ เก็บไว้ในตัวแปร chr เราก็ใช้ได้ดังสองวิธีข้างต้น เราจะสามารถใช้ข้อ 1. ได้เป็น chr=word[1] หรือ ใช้ข้อสองได้เป็น chr=word[-2] เป็นต้น
ตัวอย่างเพิ่มเติม กำหนดให้ text=‘I am Groot’ เราจะได้ว่า
text[4]=‘ ‘
text[5]=‘G’
text[-7]=‘m’
text[9] เกิด error เนื่องจากสายอักขระใน text มีเพียง 9 ตัวเท่านั้น แต่เราเรียงตำแหน่งที่ 9 ไม่ได้เพราะมันคือตัวที่ 10
แบบฝึกหัดท้ายบท
กำหนดให้ sentence=‘The Donkey and the Dog’ จงตอบคำถามต่อไปนี้
1. print(sentence[10])
2. print(sentence[-7])
3. print(sentence[-len(sentence)])
4. print(sentence[-24])
5. print(sentence[0]==sentence[-7])
6. print(sentence[3]!=sentence[-3] or len(sentence)==20)
ถ้าใครมีคำถามหรือข้อเสนอแนะ comment มาได้นะครับ ยินดีรับฟังทุกความคิดเห็นเลย
เรื่องอื่นเพิ่มเติม: https://www.blockdit.com/articles/5eedede2db20a50cafa7a2b3
Created by MickeyMouse
โฆษณา