รันโค้ด Python รับค่าจากผู้ใข้งานเป็นตัวเลขแล้วนำมาบวก เจอปัญหาถ้าผู้ใช้งานไม่กรอกเป็นตัวเลขจะขึ้นข้อความ TypeError: can only concatenate str (not "int") to str แบบนี้ต้องแก้ไขอย่างไร
a = input("Please input number a: ")
b = a + 1
print(b)
Please input number a: x
Traceback (most recent call last):
File "D:\test.py", line 2, in <module>
b = a + 1
TypeError: can only concatenate str (not "int") to str
วิธีแก้ไข
ปัญหานี้เกิดขึ้นกรณีไม่ได้กรอกเป็นตัวเลข ทำให้ภาษา Python เข้าใจว่าเครื่องหมาย + หมายถึงการต่อข้อความ (Concatenate) แก้ไขได้โดยแปลงค่าที่รับจากผู้ใช้งานให้เป็นชนิดตัวเลข คือ int และใช้หลักการ try except เพื่อดักจับข้อผิดพลาดจากการกรอกข้อมูล สามารถเขียนโปรแกรมได้ดังนี้
try:
a = int(input("Please input number a: "))
except:
a = 0
b = a + 1
print(b)
โปรแกรมด้านบนแปลงค่าจากการกรอกข้อมูลให้เป็นตัวเลข คือ int จากนั้นใช้ try เพื่อดักจับข้อผิดพลาดจากการกรอกข้อมูล หากผู้ใช้งานไม่ได้กรอกตัวเลขโปรแกรมจะเข้าไปทำงานในส่วนของ except โดยกำหนดให้ตัวแปร a มีค่าเท่ากับ 0 จากนั้นโปรแกรมนำตัวแปร a ไปบวก 1 แล้วส่งให้ตัวแปร b เพื่อไปแสดงผลต่อไป