str 정수값 감싸기가 잘이해가 안됩니다.
조회수 296회
print(str(len(hope))) # 글자수 세기
print(len(hope))
위에 두 문장 모두 잘 작동하는 데
print("생성된 비밀번호 :" + cut1[:3] + str(len(cut1)) + str(cut1.count("e")) + "!") #cut1은 문자열(?) 변수
이문장은 왜 str이 있어야 작동하나요?
정수변수는 무조건 str로 감싸줘야하나요?
2 답변
-
+
연산때문입니다.a = "123" + 123
a = 123 + "123"
위의 두 연산은 각기 다른 에러를 발생 시킵니다. 문자열과 숫자는 서로 더하기 연산이 불가능하기 때문인데요. 문자열 더하기는 사용하신 것 처럼 두 문자열을 합쳐주는 역할을 수행합니다.
print 함수에서 문자들을 이어 문자열을 만들어 주고싶을 때는 모두 str로 만들어 더하기 연산을 수행해야 합니다. 혹은 f-string을 이용할 수 도 있습니다.print(f"생성된 비밀번호 :{cut1[:3]}{len(cut1)}{cut1.count("e")}!")
f-string을 사용하실 때는 문자열 더하기 연산이 아니기 때문에 문제를 일으키지 않습니다.(물론 내부적으로 사용됩니다)
-
서로 다른 타입끼리는 더할 수 없습니다.
len() => int 'e' => str
a = 'qeasdf;llaj' b = len(a) print(type(a)) print(type(b))
댓글 입력