Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเพิ่มค่าตัวอักษร (Increment Character) ใน Python


ในบทช่วยสอนนี้ เราจะดูวิธีต่างๆ ในการเพิ่มค่าตัวอักษรใน Python

Typecasting (การแปลงชนิด)

มาดูก่อนว่าจะเกิดอะไรขึ้นถ้าเราบวก int เข้ากับ char โดยไม่แปลงชนิด

ตัวอย่างโค้ด

## เริ่มต้น str
char = "t"
## ลองบวก 1 เข้ากับ char
char += 1
## เกิดข้อผิดพลาด

หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้ -

TypeError: must be str, not int

เพื่อเพิ่มค่าตัวอักษรใน Python เราต้องแปลงมันเป็น integer บวก 1 เข้าไป แล้วแปลง integer ผลลัพธ์กลับเป็น char เราสามารถทำได้โดยใช้ builtin methods ord และ chr

ตัวอย่างโค้ด

## เริ่มต้น str
char = "t"
## แปลง char เป็น int
i = ord(char[0])
## เราสามารถบวกตัวเลขใดๆ ได้ถ้าต้องการ
## เพิ่ม i
i += 1
## แปลง int ผลลัพธ์กลับเป็น char
## เราจะได้ 'u'
char = chr(i)
print(f"อักษรหลัง t คือ {char}")

หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้ -

อักษรหลัง t คือ u

Bytes

มีอีกวิธีหนึ่งในการเพิ่มค่าตัวอักษรโดยใช้ bytes

  • แปลง str เป็น bytes
  • ผลลัพธ์จะเป็น array ที่มีค่า ASCII ของทุกตัวอักษรในสตริง
  • บวก 1 เข้ากับตัวอักษรแรกของ bytes ที่แปลงแล้ว ผลลัพธ์จะเป็น int
  • แปลง int กลับเป็น char

ตัวอย่างโค้ด

## เริ่มต้น str
char = "t"
## แปลง char เป็น bytes
b = bytes(char, 'utf-8')
## บวก 1 เข้ากับ char แรกของ 'b'
## b[0] คือ 't' ที่นี่
b = b[0] + 1
## แปลง 'b' กลับเป็น char
print(f"อักษรหลังเพิ่มค่า ASCII คือ {chr(b)}")

หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้ -

อักษรหลังเพิ่มค่า ASCII คือ u

หากเรามีสตริงและแปลงเป็น bytes เราสามารถเพิ่มค่าตัวอักษรที่ต้องการได้ มาดูตัวอย่าง

ตัวอย่างโค้ด

## เริ่มต้น str
name = "tutorialspoint"
## แปลง char เป็น bytes
b = bytes(name, 'utf-8')
## บวก 1 เข้ากับ char 'a' ของ 'b'
## index ของ 'a' คือ 6
b = b[6] + 1
## แปลง 'b' กลับเป็น char
print(f"name หลังเพิ่มค่า 'a' char คือ tutori{chr(b)}lspoint")

หากรันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้ -

name หลังเพิ่มค่า 'a' char คือ tutoriblspoint

หวังว่าคุณจะเข้าใจแนวคิดนี้ดี หากมีข้อสงสัยเกี่ยวกับบทช่วยสอน กรุณาระบุในส่วนความคิดเห็น Happy Coding :)