🌜

1편 라이캣의 탄생!

다루고 있는 개념
변수
변수의 타입
난이도
Type
강의
file
 

1. 캣의 일상

notion imagenotion image
 
생선 가게를 운영하는 평범한 소년 '캣'이 있습니다.이 소년은 아픈 어머니를 대신하여 새벽이면 험한 바다에 나가 고기를 잡고, 오후가 되면 생선을 파는 생활을 반복하였어요.
 
notion imagenotion image
 
캣에게는 비밀이 한가지 있었어요. 부모님께서 신신당부하여 남들에게 말하지 않았지만, 자신이 원할 때 자신의 능력치를 볼수 있는 신기하고 특별한 능력이 있었어요.
"나에겐 고기잡기고기팔기 스킬이 있다냥, 매일매일 훈련해서 이 두개의 스킬 만큼은 최고의 스킬로 만들어보자냥!"
캣은 묵묵히, 매일 실력을 갈고닦았습니다.
 
#[In] # 라이캣의 개인정보 입력하기 이름 = '캣' 설명 = '위니브 월드 외각에 살고 있는 생선가게 주인 캣(cat)' 나이 = 10 오늘_잡은_물고기 = '10' 키 = '45cm' 몸무게 = 1.2 육식 = True 초식 = True 돈 = 1000 훈장 = [] 기술 = ['고기잡이', '고기팔기'] ''' 라이캣의 개인정보입니다. 성장함에 따라 해당 값이 변합니다. 주의) 마음대로 성장시키지 마십시오. '''
 
이름, 나이, 오늘_잡은_물고기 등을 변수라고 합니다. 변수는 변할 수 있는 수입니다. 또, 맨 위에 있는 #으로 되어 있는 부분과 '''로 감싸여져 있는 부분은 주석이라고 해요. Code의 양이 많거나 복잡하여 짧은 시간 내 이해하기 힘들 때 이해를 돕기 위해 주석이 필요합니다. 이 부분은 실행되지 않습니다. 코드를 잠시 보류하는 용도로도 사용하죠.
이렇게 하고 Alt + Enter를 실행해 보세요. 아래 셀이 추가되었죠? 따로 메시지는 뜨지 않았을 거에요. 무언가 실행시키지 않았기 때문입니다. 실행은 그 셀만 실행하는 Ctrl + Enter와 실행하고 셀 아래 셀을 추가하는 Alt + Enter 두가지가 있습니다.
 
💡
주석으로 변경을 원하는 코드에서 Ctrl + / 를 누르면 주석처리 됩니다. 여러줄도 가능해요.
 

 

2. 캣의 정보 변경

 
#[In] # 라이캣의 개인정보 변경하기 나이 = 11 이름, 나이
 
이렇게 하고 Alt + Enter를 실행해 보세요. 나이에 11이 출력되었죠? 이처럼 변수는 변경할 수 있습니다. 그리고, 위에 있는 변수를 가져와 사용할 수도 있어요.
 
#[In] 나이 = 나이 + 1 나이
 
연산은 나중에 할 예정이지만, 이렇게 덧셈을 할 수도 있답니다. 그럼 아래와 같이 덧셈을 해볼게요.
 
#[In] # 오늘_잡은_물고기 = '10' 오늘_잡은_물고기 = 오늘_잡은_물고기 + 1
 
이렇게 연산을 실행하게 되면 Error 문구가 뜨게 됩니다. 그 이유는 오늘 잡은 물고기는 문자열이기 때문인데요. 이처럼 파이썬과 같은 고급프로그래밍 언어에서는 그 형태를 구분하여 걸맞는 연산이 가능하도록 장치를 해두었답니다.
 
💡
Python이 무엇이고, 무엇을 할 수 있는지는 아래 영상을 참고해주세요. 고급 프로그래밍 언어가 어떤 뜻인지도 설명하고 있습니다. (책으로 보시는 분들은 YouTube에서 제주코딩베이스캠프를 검색해주세요.)
 
Video preview
가능하다면, 1편인 Front-end도 시청해주세요. 😉
 
조금 더 알려드리자면, 변수에는 몇 가지 규칙이 있어요.
  1. 변수 중간에 띄어쓰기를 하지 않습니다. 띄어쓰기를 명시하고 싶으실 때에는 언더스코어(_)를 사용하세요!
  1. 첫 글자는 숫자나 특수문자를 쓰지 않습니다. 물론 언더스코어(_)제외입니다.
  1. 첫 글자를 대문자로 쓰지 않습니다.(Class가 대문자로 쓰기 때문이지만, 대문자로 써도 실행됩니다.)
  1. 예약어를 사용하지 않습니다. 예를 들어 뒤에 print 구문이 나오는데요. 이러한 함수명이나 구문은 변수명으로 사용하지 않습니다.
  1. 변수명은 대소문자를 가립니다! Appleapple은 다른 변수가 됩니다.
 
#[In] # 오늘_잡은_물고기 = '10' 오늘_잡은_물고기 = int(오늘_잡은_물고기) + 1 오늘_잡은_물고기
 
자, 위와 같이 변경하고 Alt + Enter를 눌러 실행시켜보세요! 연산이 되었죠? 그 이유는, int라는 형변환 함수가 문자열을 숫자로 바꾸어 주었기 때문입니다. 형변환은 이번 챕터 5장에서 자세히 살펴보겠습니다.
 

 

3. 각 변수들의 타입을 알아보기

 
이번에는 위에서 코드를 복사해와서 아래와 같이 작성 후 실행해 보세요.
 
#[In] print(type(이름)) # '캣' print(type(나이)) # 현재 12 print(type(오늘_잡은_물고기)) #현재 11 print(type(몸무게)) print(type(육식)) #True print(type(기술)) #['고기잡이', '고기팔기']
 
💡
print를 써도 되고 쓰지 않아도 되는 것인가요? 네, 주피터 노트북에서는 print를 쓰지 않아도 마지막에 있는 변수는 출력을 합니다.(Python 기본 에디터 사용시 Error!) 그러나 여러개를 출력할 때에는 꼭 print를 명시해주셔야 합니다.
 

 

4. 각 변수들의 속성을 알아보기

 
위에서 실행시킨 결과값은 아래 주석과 같이 나왔을거에요! 물론 더 많은 자료형이 있지만, 이 수업은 기초 수업이기 때문에 간단한 내용들만 살펴볼 것입니다.
 
#[In] print(type(이름)) # class 'str' - 문자열 print(type(나이)) # class 'int' - 정수 print(type(오늘_잡은_물고기)) # class 'int' - 정수 print(type(몸무게)) # class 'float'은 실수입니다. print(type(육식)) # class 'bool' - 참거짓 print(type(기술)) # class 'list' - 배열
 
각 변수들에는 속성이 있습니다. 예를 들어 스트링의 경우에는 덧셈을 하면 이어 붙인다던지 하는 속성이요.
 
#[In] x = '10' y = 10 print(x + x) print(y + y)
 
위와 같이 실행을 시켰을 경우 '10'+ '10''1010'이 되지만, 10 + 1020이 됩니다. 이렇게 각 자료형마다 특징들이 있고, 이번 챕터에서는 이 특징들을 살펴볼 생각이에요. 그러나 걱정마세요. 너무 깊게 다루지는 않을 것입니다.
 
💡
Q : 깊게 다루지 않고 데이터 분석, 서비스 개발, IoT, 게임 개발 등을 할 수 있나요? A : 아닙니다! 하지만, 초급자 분들은 문법에 매몰 되시면 안되요. 일단 한 두 서클을 돌아보시면, 자연스레 이해되는 문법들이 있고, 또 그렇게 한 번 성공한 결과물을 갖게되면 자신감도 생기거든요! 그러니 초급자 분들은 한 서클(결과물을 만드는 과정)을 도시는 것에 초점을 맞춰서 공부해주세요!
 

4.1 int의 속성 알아보기

int는 정수입니다! 정수가 가진 속성에 대해 알아보도록 하겠습니다. 우선 아래와 같이 실행시킨 다음에 말씀드리도록 하겠습니다.
 
#[In] 나이 = 10 print(type(나이)) print(dir(나이))
 
그럼 아래와 같이 무시무시한 길이의 코드가 나타납니다. 겁내지 마세요. 다 알 필요도 없을 뿐더러, 우리는 아주 얕고 넓게, 실용적인 부분만 배울 것이기 때문입니다.
일단 첫줄 먼저 설명해드릴게요. <class 'int'>, class는 맨 뒤에 챕터에서 다루게 되고, int는 우리가 앞에서 공부한 것처럼 정수형을 나타냅니다. 이처럼 type(변수)를 해보시면 원하는 변수의 타입을 알아낼 수 있어요.
 
#[Out] <class 'int'> ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
 
여러분, 아래와 같이 정수와 실수를 더하면 얼마가 나올까요? 네, 20.1입니다. 그런데 다른 언어들은 이렇게 융통성이 있지 않아요. 만약 이 연산이 다른 언어였다면(JS는 더 융통성이 있으니 제외입니다.) 아래와 같이 말했을 거에요.
 
#[In] #나이는 10이고, 몸무게는 10.1 입니다. 나이 + 몸무게
 
실수로 더할꺼니? 그럼 실수로 바꿔줘야지. 정수로 더할꺼니? 그럼 뒤에 수에서 0.1을 포기해.
 
그런데 파이썬은 놀랍게도(!?), 이 연산이 가능합니다. 위 처럼 실행을 시켰다면 20.1의 출력 결과가 나올게요. 그럼 아래와 같은 코드는 어떨까요?
 
#[In] 10 + '10'
 
이것을 실행시키면 또 아래와 같은 무시무시한 에러가 나옵니다. 앞으로 자주 만나게 될 에러명이기 때문에 한번 읽어보죠.
 
#[Out] ... TypeError: unsupported operand type(s) for +: 'int' and 'str'
 
타입에러인데 정수형(int)과 문자열(str)의 덧셈을 허락하지 않는다고 합니다. 자, 이렇게 덧셈에 대해 어떻게 할 것인지에 대해 정의되어 있는 부분이, '__add__'입니다! 이부분은 class 챕터에서 더 배우게 되실거에요. 곱하기는 '__mul__', 비교는 '__eq__'랍니다.
아, 언더바(_)는 하나가 아니라 두개에요! 그래서 던더 함수라고 부르기도 하죠. 매직메서드라고 부르는 것이 통상적입니다.
그렇다면, 언더바가 없는 것들의 정체는 무엇일까요? 아래와 같은 코드를 실행해볼게요.
 
#[In] 나이 = 10 print(나이.bit_length()) print(bin(나이)) 나이_90년후 = 100 print(나이_90년후.bit_length()) print(bin(나이_90년후))
 
이것들은 .을 찍어 사용할 수 있어요. bit_length()만 사용해보았습니다. 이 메서드(지금은 점을 찍어서 사용할 수 있는 코드라고만 이해를 해주세요.)는 각 숫자를 bit로 변환한 자리숫자를 출력해준답니다! bit는 0과 1로 이루어진 세계입니다. 2진법을 사용하죠.
자, 너무 많은 내용을 했어요. 모두 이해하실 필요 없습니다. 여기서 중요한 핵심은 .을 찍어 활용할 수 있는 코드를 dir로 볼 수 있다는 사실만 알고 넘어가도록 하겠습니다!
 

4.2 float의 속성 알아보기

float형은 실수입니다! 실수가 있으니 허수도 있을까요? 네, 물론입니다. 하지만, 우리 수업에서 그렇게 어려운 수학적인 내용은 다루지 않아요. 아래와 같이 실행해본 후 이 챕터는 넘어갑니다.
 
#[In] # 몸무게는 10.1kg 입니다! print(type(몸무게)) print(dir(몸무게))
 

4.3 str의 속성 알아보기

str자료형은 스트링이라 읽습니다. 이 자료형은 작은따옴표(‘ ’)나 큰따옴표(“ ”) 또는 삼중따옴표(“““ ”””, ‘‘‘ ’’’)로 둘러싸서 나타냅니다. 삼중따옴표를 사용할 경우에는 줄단위의 문자열을 나타낼 수 있습니다. 이러한 문자열은 시퀀스 자료형에 해당됩니다.
Sequence, 순서가 있는 자료형이라는 뜻으로 각 요소들은 해당하는 Index 값을 갖습니다. 파이썬에서 가장 많이 사용되는 형태의 자료형이며, 시퀀스 자료형이 가지는 특성을 통하여 인덱싱, 슬라이싱, 반복 등 여러 연산으로 그 활용 범위가 넓습니다. 파이썬에서는 문자열, 리스트 등이 시퀀스 자료형에 해당됩니다.
 
#[In] # 설명 = '위니브 월드 외각에 살고 있는 생선가게 주인 캣(cat)' # 기술 = ['고기잡이', '고기팔기'] print(설명[0]) print(설명[1]) print(설명[2]) print(기술[0]) print(기술[1]) print(기술[0][0]) print(기술[0][1])
 
#[Out] 위 니 브 고기잡이 고기팔기 고 기
 
여기서 설명[0]안에 들어가는 0이라는 숫자를 index라고 부릅니다! 그리고 이렇게 index를 활용하여 특정 값을 호출하는 방식을 indexing이라고 하죠!
또, 이 index를 활용하여 문자열에서 원하는 부분만을 추출해낼 수 있습니다.
 
#[In] 설명 = '위니브 월드 외각에 살고 있는 생선가게 주인 캣(cat)' print(설명[0:6])
notion imagenotion image
인덱스가 start 인 지점에서 end 미만인 지점까지 추출합니다. 여기서 start를 생략했을 경우 문자열의 시작 지점, end 를 생략했을 경우 문자열의 끝지점이 설정됩니다.
 
#[In] 캣의_생년월일 = "2220.02.22" 생년 = birth[:4] 월 = birth[5:7] 일 = birth[8:] print("태어난 연도 : ", 생년) print("태어난 월 : ", 월) print("태어난 일 : ", 일)
 
#[Out] 태어난 연도 : 2220 태어난 월 : 02 태어난 일 : 22
 
변수명[start:stop:step]와 같은 형식으로 사용도 가능합니다. 이 경우 순회가능한 객체에 start index부터 stop index 바로 전만큼의 범위에서 k 만큼 건너뛰게 됩니다.
 
#[In] 숫자 = '123456789101112' print(숫자[::-1]) print(숫자[1:7:2])
 
#[Out] '211101987654321' '246'
 

4.4 bool의 속성 알아보기

bool자료형은 부울형, 불리언 자료형이라 읽습니다. 이 자료형은 TrueFalse 2가지 타입밖에 없어요.
 
💡
javascript에서는 True를 소문자 형태인 true로 표시하고 있어요! 이런 차이점에 대해서 알고 있으시면 좋답니다.
 
#[In] 육식 = True 초식 = True print(type(육식)) print(dir(초식))
 
#[Out] <class 'bool'> ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
 

4.5 list, tuple의 속성 알아보기

list는 두 개 이상의 값을 저장하고 싶을 때 사용하는 자료형입니다. str처럼 순서가 있는 시퀀스 자료형이며, 각 원소들은 변경이 가능합니다. 리스트의 기본 형태는 아래와 같습니다.
 
#[In] 훈장 = [] 기술 = ['고기잡이', '고기팔기'] print(type(기술)) print(dir(기술))
 
#[Out] <class 'list'> ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
 
여기서 대괄호 ([])를 사용하지 않고 소괄호(())를 사용하면 list가 아니라, 자료의 값이 변경 불가능한 tuple이 됩니다. tuple은 순서가 있고, 소괄호를 사용하며, 값을 변경할 수 없습니다. 얕은 물에서는 튜플을 상세하게 다루지 않으니 가볍게 훑고 넘어가주세요.
 
#[In] 잡은물고기_튜플 = ('광어', '고등어', '오징어', '오징어', '광어', '광어', '고등어', '고등어', '백상아리', '금붕어')
 
앞서 말씀드린 것처럼 list는 순서가 있는 시퀀스형 자료형이기 때문에 아래와 같이 str처럼 indexing, slicing이 가능합니다.
 
#[In] 잡은물고기 = ['광어', '고등어', '오징어', '오징어', '광어', '광어', '고등어', '고등어', '백상아리', '금붕어']
 
#[In] print(잡은물고기[0]) print(잡은물고기[0:3]) print(잡은물고기[0:7:2])
 
#[Out] 광어 ['광어', '고등어', '오징어'] ['광어', '오징어', '광어', '고등어']
 
그런데 마지막에 잡은 물고기가 금붕어죠? 잘못 표기한 것은 아래와 같이 바꿀 수 있답니다.
 
#[In] 잡은물고기[-1] = '백상아리' # -1 인덱스는 마지막에 있는 값으로, 아래와 같은 의미를 지닙니다. 잡은물고기[9] = '백상아리' 잡은물고기
 
#[Out] ['광어', '고등어', '오징어', '오징어', '광어', '광어', '고등어', '고등어', '백상아리', '백상아리']
 
여기서 광어는 얼마나 잡았는지, 고등어는 얼마나 잡았는지 알고 싶으면 어떻게 할까요? 여기서 앞서 말씀드린 메서드를 사용할 수 있답니다. 아래 코드를 실행해 보세요. 메서드 정리다른 강의해서 해드릴거에요. 여기는 얕은물 강좌이니, 어떻게 사용하는지 가볍게 살펴봅시다.
 
#[In] 잡은물고기.count('백상아리')
 
#[Out] 2
 
대단하군요. 고양이가 백상아리를 잡다니요. 그럼 훈장에 '백상아리를 잡은 고양이'를 추가해볼게요. 이 역시 메서드를 사용합니다.
 
#[In] 훈장.append('백상아리를 잡은 고양이') 훈장
 
#[Out] '백상아리를 잡은 고양이'
 

4.6 dict의 속성 알아보기

그런데 이렇게 물고기를 저장하는 것은 비효율 적이겠죠? 우리는 '백상아리!' 하면 '2마리!' 이렇게 바로 알려주었으면 좋겠는데요. 이것이 가능한 자료형이 Dictionary입니다.
 
# Dictionary의 구조 dic = { 'key' : 'value' }
 
자, 그러면 위에 리스트로 저장되어 있던 물고기를 딕셔너리로 정리해봅시다.
 
#[In] 잡은물고기_딕셔너리 = {'광어' : 3, '고등어' : 2, '오징어' : 2, '백상아리' : 2}
 
어떤가요? 보다 간편해졌죠? 우리는 앞으로 아래와 같이 key 값으로 value를 호출할 수 있습니다.
 
#[In] 잡은물고기_딕셔너리['광어']
 
#[Out] 2
 
값을 추가하고 싶을 때에는 아래와 같은 방법을 사용할 수 있습니다.
 
#[In] 잡은물고기_딕셔너리['고래'] = 1 잡은물고기_딕셔너리
 
#[Out] {'광어' : 3, '고등어' : 2, '오징어' : 2, '백상아리' : 2, '고래' : 1}
 
값을 지울 때에는 아래와 같은 방법을 사용합니다.
 
#[In] del 잡은물고기_딕셔너리['고래'] #del 키워드는 다른 자료형에서도 데이터를 지울 때 사용할 수 있습니다. 잡은물고기_딕셔너리
 
#[Out] {'광어' : 3, '고등어' : 2, '오징어' : 2, '백상아리' : 2}
 
Key값만 따로 알고 싶을 때와 Value값만 따로 알고 싶을 때에는 아래와 같은 방법을 사용합니다.
 
#[In] print(잡은물고기_딕셔너리.keys()) print(잡은물고기_딕셔너리.values()) print(잡은물고기_딕셔너리.items())
 
#[Out] dict_keys(['광어', '고등어', '오징어', '백상아리']) dict_values([3, 2, 2, 2]) dict_items([('광어', 3), ('고등어', 2), ('오징어', 2), ('백상아리', 2)])
 

4.7 set의 속성 알아보기

set은 집합이에요. 중복을 허락하지 않죠! 혹시 차집합, 합집합, 교집합 아시나요? 그 집합입니다! 자, 그럼 어떻게 사용할까요?
 
#[In] 잡은물고기_집합 = set(잡은물고기) 잡은물고기_집합
 
#[Out] 잡은물고기 = {'광어', '고등어', '오징어', '백상아리'}
 
어떤가요? 중복이 사라졌습니다! 이제 잡은 물고기의 종류를 한 번에 볼 수 있죠!
 

4.8 list, tuple, set, dict에 대해 더 알아보기

자료형끼리의 사칙연산과 메서드는 한 번 정리할 필요가 있어요. 더 공부하기를 원하신다면, 아래 영상을 참고하여 각 자료형 옆에 있는 메모 노트에 메모해 주세요. 하지만 기억하세요. 먼저 빠르게 훑어 간단한 웹이나 앱, 게임이나 IoT와 같은 결과물을 만들고, 나중에 좀 더 깊게 파봐도 늦지 않습니다. 너무 많은 내용을 한꺼번에 담으려 하지 마세요.
 
Video preview
Youtube '제주코딩베이스캠프'의 영상입니다😉
 
 

 

5. 각 변수들을 형 변환 해보기

자, 형 변환에 대해 좀 더 깊게 알아봅시다.
 
#[In] print(type(int(3.5))) print(int(3.5)) print(type(float(3))) print(float(3)) print(type(str(3)) print(str(3))
 
#[Out] <class 'int'> 3 <class 'float'> 3.0 <class 'str'> 3
 
앞서 말씀드린 것처럼 기존에 자료형에서 다른 자료형으로 바꾸는 것을 형 변환이라고 합니다. 아래처럼 input 함수를 이용하면 숫자나 문자를 입력받을 수 있는데요. 둘 다 str로 변수를 받기 때문에 주의해서 사용을 해야 합니다.
 
#[In] x = input('좋아하는 숫자를 입력하세요 :') y = input('더할 숫자를 입력하세요 :') print(x + y) print(type(x)) print(type(y))
 
#[Out] 좋아하는 숫자를 입력하세요 : 123 더할 숫자를 입력하세요 : 123 123123 <class 'str'> <class 'str'>
 
파이썬에서의 형 변환은 아주 많은 방법들이 있지만 내장함수(built in-functions, 이 키워드는 매우 중요하니 꼭 암기해두세요.)를 이용해서 아주 쉽게 할 수 있습니다. 어떤식으로 쓰이는지 간단한 예시를 통해 같이 한번 살펴봅시다.
 
형변환
다른 자료형을 정수형으로 변환
다른 자료형을 문자열로 변환
다른 자료형을 실수형으로 변환
다른 자료형을 리스트로 변환
다른 자료형을 튜플형으로 변환
다른 자료형을 집합 자료형으로 변환
다른 자료형을 사전형으로 변환
 
 
  • int로 형변환
 
#[In] 오늘잡은_물고기_수 = '371' print(type(오늘잡은_물고기_수)) print(type(int(오늘잡은_물고기_수)) print(int(오늘잡은_물고기_수)
 
#[Out] <class 'str'> <class 'int'> 371
  • string으로 형변환
 
#[In] 오늘잡은_물고기_수 = 371 print(type(오늘잡은_물고기_수)) print(type(str(오늘잡은_물고기_수))) print(str(오늘잡은_물고기_수))
 
#[Out] <class 'int'> <class 'str'> '371'
  • bool형으로 형변환
 
#[In] print("bool('test') : ", bool('test!!')) print("bool(1) : ", bool(1)) print("bool(0) : ", bool(0)) print("bool(-1) : ", bool(-1)) print("bool(' ') : ", bool(' ')) print("bool('') : ", bool('')) print("bool(None) : ", bool(None))
 
#[Out] bool('test') : True bool(1) : True bool(0) : False bool(-1) : True bool(' ') : True bool('') : False bool(None) : False
 
bool()함수는 인자값(아규먼트, argument, parameter와는 차이가 있으니 함수에서 정리해드리도록 하겠습니다.)을 Boolean 자료형으로 형변환하게 됩니다. 부울 값은 True와 False로 나뉩니다.
부울 값은 직접 입력된 값일 수도 있고 부울 연산에 의해 나온 결과값일 수도 있습니다. 예를 들어 x = 10 일 때 x > 100False이죠. 또한 이미 Python 내에서 규정한 부울 값일 수도 있습니다. 예를 들어 0은 False, 0을 제외한 다른 숫자는 True입니다.
 
💡
list, tuple, dict, set은 형변환을 어떻게 할까요? 옆 노트에 정리해보세요.
 
 

 

6. 출력을 하는 여러가지 용법

 
print 내장함수(built-in functions, 빌트인펑션)를 사용하여 출력하는 방법에는 여러가지 방법이 있습니다. 물론 우리가 사용하는 colab이나 jupyter notebook은 마지막 라인에 한하여 print를 쓰지 않아도 출력합니다.
 
print('1. 제 이름은 ', 이름, '입니다. 제 나이는 ', 나이, '입니다') print(f'2. 제 이름은 {이름}입니다. 제 나이는 {나이}입니다.') print('3. 제 이름은 {}입니다. 제 나이는 {}입니다.'.format(이름, 나이)) print('4. 제 이름은 %s입니다. 제 나이는 %d입니다.'%(이름, 나이))
 
여기서 비교적 최근에 나온 2번 문법이 자주 사용됩니다. 4번은 잘 사용되지 않으니 참고바랍니다.
  1. ,(콤마) 로 연결하는 방법입니다. 콤마의 단위는 오브젝트입니다. 이름, 나이 모두 오브젝트의 한 단위이고 '1. 제 이름은', '입니다. 제 나이는' 등의 문자열도 모두 오브젝트입니다. 앞에서는 변수라고 배웠죠? 변수에 넣을 수 있는 모든 값 또는 변수도 오브젝트입니다. 예를 들어 아래와 같이 변수나 그 값을 직접 넣는 것은 같은 값을 출력합니다.
    1. 힘 = 12 print('제 힘은 ', 힘, '입니다.') print('제 힘은 ', 12, '입니다.')
       
  1. python 3.6 version 이상에서는 f-string 용법을 지원합니다. 사용하는 방식은 {}(중괄호)에 변수 이름을 넣으시면 됩니다.
  1. format을 이용한 문자열 포매팅 방식입니다. 앞서 dir('문자열')에서 던더함수 뒤에 있는 메서드를 확인해보시면 format메서드가 있습니다. {}(중괄호)로 변수의 자리를 비워놓고 '문자열'.format() 괄호 안에 넣고 싶은 오브젝트를 넣어주는 방법입니다. 역시 변수는 콤마로 구별해 넣습니다.
  1. 잘 사용하지 않는 방법입니다. 포맷코드를 이용한 문자열 포매팅입니다. 넣고 싶은 오브젝트는 %뒤에 넣습니다. 넣을 값에 맞춰서 알맞은 자료형에 대한 포맷코드를 선택해야 합니다. 아래 코드표는 참고삼아 훑고 넘어가세요.
    1. 포멧 코드의 종류
      문자
      문자열
      정수
      실수
      2진수
      8진수
      16진수