[python] TypeError: can only concatenate str (not "int") to str

Jun_Gyu·2023년 7월 23일
post-thumbnail
# + 만 나이 계산기를 만들어 보자.
year = int(input("태어난 년도 입력 : "))
month = int(input("태어난 달 입력 : "))
day = int(input("태어난 일 입력 : "))

yourAge = 2023 - year

if month < 7 or day < 23 :
    print("당신은 현재 만 " + int(yourAge) + "살 입니다.")
elif month == 7 and day == 23:
    print("생일 축하합니다! 1997" + "당신은 오늘부로 만 " + int(yourAge) + "살 입니다!")
else :
    print("당신은 현재 만" + int(yourAge - 1) + "살 입니다.")

금일 처음 파이썬을 공부하기 시작하여 사용자의 생년월일을 입력받아 현재 만 나이로 몇 세인지 출력해주는 프로그램을 간단히 제작하였다.

하지만 위와 같이 코드를 입력하니 아래의 오류메세지가 출력되었다.

타입 형태가 맞지 않다는 것인데, 간단히 말하자면 사용자의 나이를 나타내는 변수 yourAge의 형태가 문자형이 아닌 정수형이라서 타입 에러가 발생 한다는 것이다.

Java에서는 문자형과 정수형을 같이 사용해도 이와 같은 문제는 발생하지 않았지만, 파이썬에서는 다르다.

출력하고자 하는 한 줄의 내용들의 형태를 모두 통일시켜주어야 한다는 것이다.
문제를 해결하고자 하면 아래의 방법들을 사용해야 한다.

# 해결방법 1
# 정수형 변수 yourAge를 문자형으로 변경하여 출력한다.

if month < 7 or day < 23 :
    print("당신은 현재 만 " + str(yourAge) + "살 입니다.")
elif month == 7 and day == 23:
    print("생일 축하합니다! 1997" + "당신은 오늘부로 만 " + str(yourAge) + "살 입니다!")
else :
    print("당신은 현재 만" + str(yourAge - 1) + "살 입니다.")

# 해결방법 2
# 문자형과 정수형을 쉼표","로 구분하여 출력한다.

if month < 7 or day < 23 :
    print("당신은 현재 만 ", int(yourAge), "살 입니다.")
elif month == 7 and day == 23:
    print("생일 축하합니다! 1997" + "당신은 오늘부로 만 ", int(yourAge), "살 입니다!")
else :
    print("당신은 현재 만", int(yourAge - 1), "살 입니다.")
profile
시작은 미약하지만, 그 끝은 창대하리라

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기