Devdit
 

Python รับค่าบวกตัวเลข TypeError: can only concatenate str (not int) to str คือ วิธีแก้ไข

4.1K

รันโค้ด 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 เพื่อไปแสดงผลต่อไป

แก้ไข 3 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ