udemy 정리

str() 함수

ilsancityboy 2023. 7. 5. 19:45

이름을 물어서 입력받고 입력받은 데이터의 len()함수로 길이를 얻어내 다시 출력시키는 코드를 만들 것 이다.

name_len = len(input("이름이 무엇인가요?"))
print("당신의 이름은 " + name_len + " 글자 이군요! ")

위 코드에서 문제가 있어 보일까? 나도 문제없이 가능 할줄만 알았다.

허나 컴퓨터는 위 코드를 에러로 처리한다.

이유는 "당신의 이름은" , "글자 이군요!" 라는 문자열들과 name_len 안에 있는 정수 (숫자) 를 합치는 법을 모르기때문이다.

즉, 컴퓨터는 정수와 문자열들 합치지 못한다.

그럼 어떻게 해야 우리가 의도한대로 출력을 시킬 수 있을까?

정답은 str() 함수를 써서 값을 문자열로 변경시키면 된다.

 

이해하기전에 문자열과 정수에대해 간단하게 이해를 하고가자.

숫자 6을 예시로 들어보겠다.

코드를 짤때는 6 이랑 "6" 이랑 다르다는 뜻이다.

print(1+2)
print("1+2")
print("1"+"2")




>>> 3
>>> 1+2
>>> 12

즉 쌍따움표 ( " " ) 안에 들어가는건 전부 문자열이다. 쌍따움표가 들어가지않은 숫자는 정수로 판단하는것이다.

그럼 첫번째줄에 1+2를 해서 얻어낸 3은 정수상태이다.

이 3을 문자열로 처리하고싶을때  str() 함수를 쓴다.

A = 1+2
B = str(test)

첫줄에 A에는 1+2의 결과인 3이 들어간다. 그후 두번째줄에선 str()함수 내에 A를 넣어서 3이라는 값을 문자열 "3"으로 

바꾸어서 B에 넣은것이다. 따라서 A는 현재 정수상태인 3 , B는 현재 문자열 상태인 "3"이다.

 

 

그럼 다시 문제로 돌아와서

name_len = len(input("이름이 무엇인가요?"))
print("당신의 이름은 " + name_len + " 글자 이군요! ")

아까 말했듯 문자열들과 정수를 합치지 못하니 정수를 문자열로 바꾸어서 출력시키면 된다는것이다.

 

 

 

 

 

 

 

 


 

name_len = len(input("이름이 무엇인가요?"))
print("당신의 이름은 " + str(name_len) + " 글자 이군요! ")



or


name_len = len(input("이름이 무엇인가요?"))
str_name_len = str(name_len)
print ( "당신의 이름은" + str_name_len + " 글자 이군요! ")

 

 

 

완료!