ในบทช่วยสอนนี้ เราจะมาดูวิธีการต่างๆ ในการเพิ่มตัวละครใน Python
การพิมพ์ดีด
มาดูกันก่อนว่าจะเกิดอะไรขึ้นหากเราเพิ่ม int ให้กับ char โดยไม่พิมพ์ดีด
ตัวอย่าง
## str initialization char = "t" ## try to add 1 to char char += 1 ## gets an error
หากคุณรันโปรแกรมข้างต้น มันจะให้ผลลัพธ์ดังต่อไปนี้ -
TypeError Traceback (most recent call last) <ipython-input-20-312932410ef9> in <module>() 3 4 ## try to add 1 to char ----> 5 char += 1 ## gets an error TypeError: must be str, not int
หากต้องการเพิ่มอักขระใน Python เราต้องแปลงเป็น จำนวนเต็ม และเพิ่ม 1 แล้วโยนผลลัพธ์ จำนวนเต็ม เป็น ถ่าน . เราสามารถทำได้โดยใช้วิธีการในตัว ord และ chr .
ตัวอย่าง
## str initialization char = "t" ## converting char into int i = ord(char[0]) ## we can add any number if we want ## incrementing i += 1 ## casting the resultant int to char ## we will get 'u' char = chr(i) print(f"Alphabet after t is {char}")
หากคุณรันโปรแกรมข้างต้น มันจะให้ผลลัพธ์ดังต่อไปนี้ -
Alphabet after t is u
ไบต์
มีอีกวิธีหนึ่งในการเพิ่มอักขระโดยใช้ ไบต์ .
- แปลง str เป็น ไบต์ .
- ผลลัพธ์จะเป็นอาร์เรย์ที่มีค่า ASCII ของอักขระทั้งหมดของสตริง
- เพิ่ม 1 ให้กับอักขระตัวแรกของ ไบต์ที่แปลงแล้ว . ผลลัพธ์จะเป็น int.
- แปลง int เป็น อักขระ .
ตัวอย่าง
## str initialization char = "t" ## converting char to bytes b = bytes(char, 'utf-8') ## adding 1 to first char of 'b' ## b[0] is 't' here b = b[0] + 1 ## converting 'b' into char print(f"Alphabet after incrementing ACII value is {chr(b)}")
หากคุณรันโปรแกรมข้างต้น มันจะให้ผลลัพธ์ดังต่อไปนี้ -
Alphabet after incrementing ACII value is u
หากเราต้องสตริงและแปลงเป็น ไบต์ จากนั้นเราสามารถเพิ่มอักขระใดก็ได้ที่เราต้องการ มาดูตัวอย่างกันเลย
ตัวอย่าง
## str initialization name = "tutorialspoint" ## converting char to bytes b = bytes(name, 'utf-8') ## adding 1 to 'a' char of 'b' ## 'a' index is 6 b = b[6] + 1 ## converting 'b' into char print(f"name after incrementing 'a' char is tutori{chr(b)}lspoint")
หากคุณรันโปรแกรมข้างต้น มันจะให้ผลลัพธ์ดังต่อไปนี้ -
name after incrementing ‘a’ char is tutoriblspoint
ฉันหวังว่าคุณจะเข้าใจแนวคิดนี้ดี หากคุณมีข้อสงสัยเกี่ยวกับบทช่วยสอน โปรดระบุในส่วนความคิดเห็น มีความสุขในการเข้ารหัส :)