본문 바로가기
python3/문법

[python문법] int를 str로 바꿔서 출력하기

by MeaninGood 2022. 1. 15.

1. 한 줄 씩 쪼개서 출력하기

a = list(range(1,11))

for i in range(a) : # 일단 a에 저장된 값 하나씩 다 돌면서 보기
    for j in str(a[i]) : a의 [i]번 값을 문자(str)로 출력
        print(j)
        
        
        
''' 결과
1
2
3
4
5
6
7
9
1 # 10 이 1과 0으로 나눠서 출력됨
0
'''

 

 

2. 리스트 그대로 출력해보기

a = list(range(1,11))
b = str(a)
print(b[0])


''' 결과

# 1이 나올 거라고 생각했는데

[

# a 리스트의 대괄호가 출력됨
'''

 

 

3. 입력 받은 숫자를 문자로 쪼개서 더하기 (예시 : 75 = 7 + 5 = 12로 출력하기)

def 함수로 만들어서 푼 문제 링크 백준_4673_셀프넘버

 

[백준/python3] 4673_셀프 넘버

''' # d(75) = 75 + 7 + 5 = 87 # 이렇게 하려면 int로 받고 str로 쓰기 a = int(input()) b = str(a) print(b[0]) # 입력 : 867 # 출력 : 8 ''' # d(75) = 75 + 7 + 5 = 87 # 이걸 함수로 만들어야 함 def d(n)..

meaningood.tistory.com

a = 75
b = map(int, str(a)) # 75를 7과 5로 쪼개고, int로 바꿔서 연산해 줌
print(sum(b))


''' 결과
12
'''

 

 

4. 꼭 map으로 묶어야 하나? 리스트로 묶으면 안 되나? 해서 해 본 코드

a = 75
b = [int(str(a))]
print(sum(b))


''' 결과
75
'''

 

 

5. 비슷한 것 같은데 이상하게 에러가 뜨는 코드


a = 75
b = list(int(str(a))) # 리스트를 []로 만들지 않고 list()로 만들면 에러가 뜸
print(sum(b)) 


'''결과
TypeError : 'int' object is not iterable
'''





a = 75
b = int(str(a)) # 그래서 아예 list()를 빼고 만들었더니 또 에러가 뜸
print(sum(b)) 


'''결과
TypeError : 'int' object is not iterable
'''

 

--> 4, 5번에서 [int(str(a)]는 되는데 list(int(str(a)))는 왜 안 되는 건지,
또 그냥 int(str(a))는 왜 안 되는 건지 이유를 아시는 분들은 댓글 부탁드립니다!