이름을 물어서 입력받고 입력받은 데이터의 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 + " 글자 이군요! ")
완료!
'udemy 정리' 카테고리의 다른 글
계산 우선 순위 (혼합 계산) / BMI 측정 코드 작성 (0) | 2023.07.06 |
---|---|
2자리 데이터를 입력받아 각 자리를 서로 더해주는 코드 (0) | 2023.07.05 |
udemy 정리 - 변수 (0) | 2023.07.04 |
udemy 정리 - 입력 함수 input , 문자열의 길이 함수 len() (0) | 2023.07.04 |
udemy 정리 - 기본적인 디버깅 (0) | 2023.07.04 |