기본 미션 : p. 101 3~5번 실행 결과 쓰고 인증하기
선택 미션 : 모르는 용어(3~5개) 찾아 혼공 용어 노트에 정리하고 인증하기
혼공학습단 8기에서는 C언어를 공부했었는데 이제 2학년이 되는 겨울방학인 기념으로 파이썬을 공부해보려고 한다.
친구들과 주변 사람들 말로는 파이썬은 혼자 공부하기 비교적 쉬운 언어라고 한다.
지난 C언어에서는 어느정도의 기본적인 지식은 있는 상태에서 배열을 들어가고 함수를 거쳐 포인터까지 배웠는데 정말 완전 처음 배우는 건 파이썬이 처음이라 떨리기도 하지만 8기의 우수 혼공족으로서 이번에도 최선을 다해보겠다.
이번에는 페북 계정 정지가 되지 않았으면 좋겠다
저번처럼 미션은 조금 나중에 하고 배운 내용 정리부터 들어가도록 하겠다.
(programming)
: 프로그램을 만드는 것
(program)
: 미리 작성된 것
(computer program)
: 컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획
ex) 카카오톡의 친구를 지정하고, 메시지를 입력하고, 전송 버튼을 누르면 친구에게 글을 전송해야 해! 라는 프로그램
(binary digit)
: 0과 1로 이루어진 컴퓨터가 이해할 수 있는 값
(binary code)
: 이진 숫자로 이루어진 코드
(programming language)
: 사람이 이해하기 쉬운 언어로 프로그램을 만들고자 만들어진 사람을 위한 언어
(source code)
: 프로그래밍 언어로 작성한 프로그램
: 1991년 귀도 반 로섬이 발표한 프로그래밍 언어
단순한 문법 덕에 비전공자도 쉽게 배울 수 있음
대부분의 프로그래밍 언어는 운영체제가 제한적이거나 사용방법이 조금씩 다른 경우가 있다. 하지만 파이썬은 모든 운영체제에서 같은 방법으로 사용할 수 있다.
하지만 게임처럼 연산을 많이 하는 프로그램, 성능이 좋지 않은 컴퓨터를 사용할 수밖에 없는 프로그램(소형 장치)을 제외하면 파이썬으로 모든 것을 할 수 있다.
컴퓨터 프로그램
이란 컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획을 말한다.소스 코드
는 프로그래밍 언어로 사람이 쉽게 읽고 이해할 수 있도록 만든 코드이다.파이썬
은 배우기 쉽고, 다양한 분야에서 활용되고, 대부분의 운영체제에서 동일하게 사용된다.개발 환경
이란 프로그래밍을 할 수 있는 환경을 말한다.
텍스트 에디터
는 프로그래밍 언어로 이루어진 코드를 작성할 수 있고, 그 코드를 실행할 수 있는 것이 코드 실행기
이다.
이 장에서는 파이썬 코드를 입력할 수 있는 텍스트 에디터
와 파이썬 코드를 실행할 수 있는 도구인 파이썬 인터프리터
가 필요하다. 때문에 다운로드를 받을 것이다.
(interpreter)
: 프로그래밍 언어로 작성된 코드를 실행해주는 프로그램
: 파이썬 프로그램을 실행하면 실행되는 파이썬 코드를 한 줄 한 줄 입력하면서 실행 결과를 볼 수 있는 공간
자바의 cmd창과 비슷한 것 같다.
(prompt)
: 다음과 같이 코드를 입력하면 곧바로 실행 결과를 볼 수 있는 컴퓨터와 상호 작용하는 공간이다. 이러한 의미로 인터렉티브 셸
이라고 부르기도 하고, 한 마디씩 주고받는 것처럼 대화한다고 해서 대화형 셸
이라고도 한다.
대화형 셸은 간단한 실행 결과 등을 확인할 때 활용하면 편리하다.
그렇다면 긴 코드를 입력하거나 코드를 저장할 때는 어떻게 해야 할까?
(text editer)
: 프로그래밍 언어를 쉽게 작성할 수 있도록 도와준다.
ex) 메모장
파이썬은 기본적으로 간단한 통합 개발 환경으로 IDLE를 제공한다.
처음에는 글씨 폰트가 굴림체
로 지정되어 있지만 코딩을 할 때는 전용 폰트를 사용하는 것이 좋다.
을 위해서이다.
간단하게 혼자 개발한다면 파이썬 IDLE 에디터
를 사용해도 괜찮으나, 일반적으로 긴 코드를 작성하는 현업에서는 프로그래밍 언어를 쉽게 작성할 수 있도록 도와주는 텍스트 에디터
를 활용해서 개발하는 경우가 많다.
이번에는 비주얼 스튜디오 코드 Visual Studio Code
를 설치하겠다.
초보자에게는 한글 메뉴가 익숙하므로 한글 언어 팩을 설치하도록 하겠다.
이처럼 간단한 대화 형식으로 명령어를 입력해서 무언가를 실행하는 공간을 셸 shell
이라고 한다.
파이썬을 실행할 때 활용할 수 있는 두 가지 셸
윈도우 파워셸 Windows PowerShell
>
기호가 입력하는 곳파이썬 인터렉티브 셸
>>>
기호가 입력하는 곳. python 명령어
를 실행하면 진입할 수 있다.텍스트 에디터
와 파이썬 코드를 실행할 수 있는 도구인 파이썬 인터프리터
가 필요하다.>>>
에 코드를 입력하면 바로 실행 결과를 볼 수 있는데, 이는 한 마디씩 주고받는 것처럼 대화한다고 해서 인터렉티브 셸(대화형 셸)
이라고 한다.윈도우 파워셸
이나 명령 프롬프트에서 python 명령어
로 실행할 수 있다.프로그래밍 언어를 공부하다 보면 낯선 용어들이 많이 나오게 되는데, 이러한 용어들을 얼마나 잘 이해하고 있는지에 따라 습득속도가 달라질 수 있으니 꼭 정리하고 넘어가자.
(statement)
: 실행할 수 있는 최소 단위
실행되는 모든 한 줄 코드는 문장이고, 문장들이 모이면 프로그램이 된다.
(expression)
: 어떠한 값을 만들어 내는 간단한 코드
ex) 숫자, 수식, 문자열
Q. 그렇다면 +
-
와 같이 기호가 아무것도 없이 있을 때는 표현식일까?
A. 답은 아니다
이다. +
와 -
는 그 자체만으로는 어떠한 값도 만들어 낼 수 없기 때문에 표현식이라고 할 수 없다.
(keyword)
: 특별한 의미가 부여된 단어로 파이썬이 만들어질 때 이미 사용하겠다고 예약해 놓은 것
사용자는 이름을 정할 때 키워드를 사용하면 안 된다.
현재 파이썬은 다음과 같은 키워드를 사용한다.
파 | 이 | 썬 | 예 | 약 | 어 |
---|---|---|---|---|---|
False | None | True | and | as | assert |
async | await | break | class | continue | def |
del | elif | else | except | finally | for |
from | global | if | import | in | is |
lambda | nonlocal | not | or | pass | raise |
return | try | while | with | yield |
파이썬은 대소문자를 구분한다. 따라서 True
는 키워드지만 true
는 키워드가 아니다.
위의 예약어들은 자연히 외우게 되니 굳이 다 외우지 않아도 된다.
혹시 키워드인지 아닌지 확인하고 싶다면
>>> import keyword
>>> print(keyword.kwlist)
로 확인해보면 된다.
(identifier)
: 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어
주로 변수 또는 함수 이름으로 사용된다.
공백이 없어 식별자를 이해하기 힘들자 두 가지 방법을 사용해 식별자를 쉽게 이해할 수 있도록 한다.
스네이크 케이스 snake_case
캐멀 케이스 CamelCase
캐멀 케이스의 유형이 두 가지가 있지만 파이썬은 유형 1만 사용한다.
캐멀 케이스 유형1: PrintHello -> 파이썬에서 사용
캐멀 케이스 유형2: printHello -> 파이썬에서 사용하지 않음
클래스
- 캐멀 케이스
함수
- 스네이크 케이스
변수
- 스네이크 케이스
1. print() - 함수
2. list() - 함수
3. soup.select() - 함수
4. math.pi - 변수
5. math.e - 변수
6. class Animal: - 클래스
7. BeautifulSoup() - 클래스
(comment)
- #
: 프로그램의 진행에 전혀 영향을 주지 않는 코드로 프로그램을 설명하기 위해 사용
: 스스로 값이 되는 것은 아니고 값과 값 사이에 무언가 기능을 적용할 때 사용하는 것
ex) +
-
*
/
(literal)
: 숫자든 문자든 어떠한 값
자체를 의미
print()
: 파이썬의 가장 기본적인 출력 방법
print(출력1, 출력2, ...)// 출력 부분에는 출력하고픈 내용을 적으면 된다.
이러한 print()
함수를 이용하여 간단한 출력을 실행해보자
>>> print("Hello Python Programming...!")
Hello Python Programming...!
>>> print(52)
52
print()
함수 뒤에 출력하고픈 내용을 쉼표
로 연결해서 여러 개 적어도 된다.
>>> print(52, 273, "Hello"
52 273 Hello
>>> print("안녕하세요", "저의", "이름은", "아무개입니다!")
안녕하세요 저의 이름은 아무개입니다!
print()
함수 괄호 안에 아무것도 입력하지 않으면 정말 단순히 아무것도 출력하지 않게 되며 줄바꿈을 하게 된다.
>>> print()
# 비어있는 줄
>>>
소스코드 output.py
# 하나만 출력합니다.
print("# 하나만 출력합니다.")
print("Hello Python Programming...!")
print()
# 여러 개를 출력합니다
print("# 여러 개를 출력합니다.")
print(10,20,30,40,50)
print("안녕하세요", "저의", "이름은", "아무개입니다!")
print()
# 아무것도 입력하지 않으면 단순하게 줄바꿈합니다.
print("# 아무것도 출력하지 않습니다.")
print("---확인 전용 선---")
print()
print()
print("---확인 전용 선---")
이 프로그램을 실행하면 다음과 같은 결과가 출력된다.
이렇게 뒤에 괄호가 있는 것들은 함수
라고 부른다. 함수
의 괄호 내부에는 문자열 등의 자료를 입력하는데 자료
는 어떤 상태를 가지고 있는 것
, 함수
는 어떤 처리를 하는 것
이라고 말할 수 있겠다.
그렇다면 함수
의 괄호 내부에는 어떤 자료를 넣을 수 있을까?
다음 챕터에서 살펴보도록 하자.
인터랙티브 셸에 간단한 연산을 입력하면
>>> 1 + 10
11
위와 같이 값을 곧바로 출력한다. 하지만 파일로 실행할 때는 반드시 print()
함수를 사용해야 출력이 가능해진다. 인터랙티브 셸은 간단한 한 줄짜리 코드의 실행 결과를 보기 위한 용도로 간단하게 사용하는 것이니 프로그램을 만들 때, 출력할 때는 반드시 print()
함수를 사용해야 함을 명심하자.
표현식
이라고 부른다.키워드
는 의미가 부여된 특별한 단어로, 사용자가 지정하는 이름에 사용하면 안 된다.식별자
는 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어이다.주석
은 프로그램을 설명하는 데 사용하며, 프로그램에는 어떠한 영향도 주지 않는다.print()
함수는 파이썬의 가장 기본적인 출력 방법으로 괄호 안에 출력하고 싶은 것을 입력해서 사용한다.프로그래밍에서는 프로그램이 처리할 수 있는 모든 것을 자료 data
라고 부른다.
자료
이고, 이를 카메라에 저장하는 것이 처리
이다.자료
이고, 이를 친구에게 전송하는 것이 처리
이다.자료
이고, 경험치를 증가시키는 것이 처리
이다.이처럼 우리가 일상에서 만나는 모든 것들은 자료
가 될 수 있고, 프로그램
은 이러한 자료를 처리하기 위한 모든 행위라고 생각할 수 있다.
(data type)
: 개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라서 자료를 구분하였는데, 이렇게 구분된 종류
가장 기본적인 자료형으로는 문자열
숫자
불
이 있다.
문자열 string
: 메일 제목, 메시지 내용 등숫자 number
: 물건의 가격, 학생의 성적 등불 boolean
: 친구의 로그인 상태 등 ex) True, False사람의 몸을 구성하는 기본 단위는 세포이다. 그리고 이러한 세포가 종류에 맞게 모이고 모여 한 명의 사람을 만든다.
프로그래밍도 마찬가지이다. 세포가 모이고 모여 사람(객체)이 되는 것처럼 자료를 자료형에 맞게 모으고, 처리 과정을 거쳐 차근차근 더 큰 자료형을 만들어 나가다 보면 거대한 프로그램이 만들어지게 된다.
그렇기 때문에 가장 기본적인 단위인 자료의 의미를 아는 것은 물론, 그 쓰임새를 확실하게 아는 것은 매우 중요하다.
자료형 data type
: 자료의 형식
자료의 형식
을 확인할 때는 type()
함수를 사용한다. 함수의 괄호 내부에 자료를 넣으면 해당 자료의 자료형을 확인할 수 있게 된다.
>>> print(type("안녕하세요"))
<class 'str'>
>>> print("type(273))
<class 'int'>
위의 예제에서 str
은 string
, 즉 문자열
이고, int
는 integer
, 즉 정수
를 나타낸다.
(string)
: 글자들이 나열된 것
"Hello" 'String' '안녕하세요' "Hello Python Programming"
이같이 따옴표로 감싸 입력한 모든 것이 문자열
이다.
문자열은 문자들을 큰따옴표"
로 감싸 만든다.
>>> print("안녕하세요")
안녕하세요
작은따옴표'
로도 문자열을 만들 수 있다.
>>> print('안녕하세요')
안녕하세요
실행 결과를 보면 둘 중 무엇을 붙이나 마찬가지의 결과를 출력한다는 사실을 알 수 있다.
그렇다면 큰따옴표와 작은따옴표는 똑같은 방법인데 왜 두 가지 방법 다 지원을 하는 것일까? 과연 어떠한 것을 사용해야 할까?
"안녕하세요"라고 말했습니다
위와 같은 큰 따옴표를 포함한 문자열을 만든다고 가정해보자
앞서 배운 방법대로 큰따옴표
를 이용해 문자열을 만든다면 다음과 같이 만들 것이다.
>>> print(""안녕하세요"라고 말했습니다")
하지만 오류가 날 것이다.
파이썬 프로그래밍에서는 ""
로 문자열 하나, "라고 말했습니다"
로 문자열 둘로 인식하여 중간에 있는 안녕하세요
가 문자열로 인식이 되지 않아 구문 오류 Syntax Error
가 발생하게 된다.
이와 같은 오류를 막기 위해 파이썬은 큰따옴표
작은따옴표
모두를 지원하는 것이다.
앞서 봤던 예시와 같은 상황이면 출력할 때 작은따옴표
를 사용하면 구문에러
없이 문자열이 만들어질 것이다.
이스케이프 문자 escape character
: 어떤 방법으로 문자열을 만들더라도 원하는 때에 큰따옴표와 작은따옴표를 쉽게 넣을 수 있는 방법
역슬래시 \
기호와 함께 사용된다.
\"
: 큰따옴표를 의미\'
: 작은따옴표를 의미>>> print("\"안녕하세요\"라고 말했습니다")
"안녕하세요"라고 말했습니다
>>> print('\'안녕하세요\'라고 말했습니다')
'안녕하세요'라고 말했습니다
이처럼 이스케이프 문자
를 사용하면 큰따옴표 내부에 큰따옴표를 넣고, 작은따옴표 내부에 작은따옴표를 넣을 수 있게 된다.
이외에도 다양한 이스케이프 문자
가 있다.
\n
: 줄바꿈을 의미\t
: 탭 (Tap) 을 의미\\
: 역슬래시 \를 의미>>> print("안녕하세요\n안녕하세요")
안녕하세요
안녕하세요
>>> print("안녕하세요\t안녕하세요")
안녕하세요 안녕하세요
>>> print("\\ \\ \\ \\")
\ \ \ \
이스케이프 문자 중 \n
를 이용하면 줄바꿈을 할 수 있다.
>>> print("동해물과 백두산이 마르고 닳도록\n하느님이 보우하사 우리나라 만세\n
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
하지만 \n
은 가독성도 떨어지고 번거로운 단점이 있다.
그래서 파이썬은 여러 줄 문자열
이라는 기능을 지원한다. 큰따옴표 또는 작은따옴표를 세 번 반복한 기호를 사용한다.
>>> print("""동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세""")
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
Enter를 누르는 곳마다 자연히 줄바꿈이 되며 코드의 가독성이 높아졌다.
여러 줄 문자열을 입력한 후 코드의 가독성을 높이기 위해 다음과 같이 작성하는 경우도 있다.
>>> print("""
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
""")
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
하지만 이렇게 코드를 작성하면 첫 번째 줄과 마지막 줄에 의도하지 않은 줄바꿈이 들어가게 된다.
줄바꿈을 의도하지 않았다면 \
기호를 사용하면된다.
>>> print("""\
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세\
""")
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
프로그래밍 언어의 자료들에는 사용할 수 있는 연산자가 정해져 있다. 숫자에는 숫자에만, 문자열에는 문자열에만 적용할 수 있는 연산자가 있는데 그걸 알아보도록 하자.
+
은 문자열에서 두 문자열을 연결해서 새로운 문자열을 만들어 낸다.
>>> print("안녕"+"하세요")
안녕하세요
하지만 문자열은 같은 문자열끼리 연결해야 한다.
>>> print("안녕"+1)
이처럼 문자열+정수
를 연결하면
TypeError: can only concatenate str (not "int") to str
라는 오류가 난다.
문자열*숫자
또는 숫자*문자열
을 이용하면 문자열을 반복할 수 있다.
> print("안녕하세요"*3)
안녕하세요안녕하세요안녕하세요
(인덱싱)
: []
: 문자열 내부의 문자 하나를 선택하는 연산자
[]
안에 선택할 문자의 위치를 지정하며 이 숫자를 인덱스 index
라고 부른다. 인덱스 유형은
제로 인덱스 zero index
: 숫자를 0
부터 세는 인덱스 유형원 인덱스 one index
: 숫자를 1
부터 세는 인덱스 유형위와 같이 있는데 파이썬은 제로 인덱스
를 사용하는 언어이다.
직접 코드를 작성해보자
소스 코드 string_operator01.py
print("문자 선택 연산자에 대해 알아볼까요?")
print("안녕하세요"[0])
print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print("안녕하세요"[4])
실행
추가로 대괄호 안의 숫자를 음수로 입력하면 뒤에서부터 선택할 수 있다.
소스 코드 string_operator02.py
print("문자 선택 연산자에 대해 알아볼까요?")
print("안녕하세요"[-1])
print("안녕하세요"[-2])
print("안녕하세요"[-3])
print("안녕하세요"[-4])
print("안녕하세요"[-5])
실행
(슬라이싱)
: [:]
문자열의 특정 범위를 선택할 때 대괄호 안에 위치를 :
으로 구분하여 범위
를 지정한다.
>>> print("안녕하세요"[1:4])
녕하세
그런데 프로그래밍 언어에 따라서 범위 지정 시에
이 있는데 파이썬은 마지막 숫자를 포함하지 않음
으로 적용한다.
그래서 위와 같은 코드를 작성하면 1번째+2번째+3번째 글자
까지만 추출되어 녕하세
를 출력하는 것이다.
또한 문자열 범위 선택 연산자
는
할 수 있다.
>>> print("안녕하세요"[1:])
녕하세요
>>> print("안녕하세요"[:3])
안녕하
IndexError(index out of range) 예외
이 에러는 리스트/문자열의 수를 넘는 요소/글자를 선택
할 때 발생한다.
예를 들면
>>> print("안녕하세요"[10])
이와 같이 문자열은 5
글자인데 10
번째 문자에 접근하고 있어 인덱스가 문자열의 범위를 넘어 에러가 발생하게 된다.
문자열의 길이를 구할 때는 len()
함수를 사용한다.
괄호 안에 문자열을 넣으면 문자열에 들어있는 문자의 개수
를 세어준다.
>>> print(len("안녕하세요"))
5
자료형
이라고 한다.문자열
이라고 하는데, 문자열은 큰따옴표 혹은 작은따옴표로 입력한다.이스케이프 문자
는 문자열 내부에서 특수한 기능을 수행하는 문자열을 말한다.문자열 연산자
에는 문자열 연결 연산자`+
, 문자열 반복 연산자 *
, 문자열 선택 연산자 []
, 문자열 범위 선택 연산자 [:]
가 있다.type()
은 자료형을 확인하는 함수이며, len()
은 문자열의 길이를 구하는 함수이다.\\
을 출력하면 \
가 출력되기 때문에 \\
가 4
번 반복되니 \
가 4
개가 출력되었다.-
인 문자열에 문자열 반복 연산자
인 *
를 사용해 8
번 반복하여 출력하게 하였다.제로 인덱스
이기 때문에 0
이 1
번째이다. 따라서 [5]
은 6
번째 글자를 의미하는데 안녕하세요
는 5
글자이므로 IndexError
에러가 나는 것이다.정수형
: 소수점이 없는 숫자 ex) 0, 1, -25, 359실수형
: 소수점이 있는 숫자 ex) 0.0, 52.259, -1.2프로그래밍 언어를 하면서 반드시 알아두어야 할 영단어는 integer(정수)
와 floating point(실수 또는 부동 소수점)
이다.
부동소수점
은 실수에서는 소수점의 위치를 바꿔도 결국 같은 숫자이므로, 소수점이 움직이는 숫자
라는 의미를 가지고 있다. 쉽게 기억하기 위해 소수점이 동동 부유하며 움직인다
로 외워도 좋다.
숫자에는 두 가지 종류가 있다.
다음과 같이 소수점이 있는 숫자와 없는 숫자를 type()
함수로 출력해보자.
>>> print(type(52))
<class 'int'>
>>> print(type(52.0))
<class 'float'>
int
는 정수, float
는 소수, 즉 부동소수점
을 의미한다.
이 개념이 중요한 이유는 일반적으로 프로그래밍 언어에서는 두 자료형을 구분하기 때문이다. 대부분 자료형을 구분할 필요는 없지만 문자열 선택 연산자 [ ]
등을 사용할 때 괄호 안에 넣는 숫자가 정수
가 아니라 실수
이면 오류가 발생하는 등 미세한 차이가 있다.
파이썬에서는 부동 소수점을 지수승
으로 표현한다.
파이썬에서는 0.52273x10^2
를 0.52273e2
또는 0.52273E2
로 표현한다. 예시는 다음과 같다.
>>> 0.52273e2
52.273
>>> 0.52273e-2
0.0052273
문자열에 문자열 연결 연산자 또는 문자열 반복 연산자를 적용할 수 있던 것처럼 숫자에도 연산자를 적용할 수 있다.
+, -, *, /
가장 기본적인 사칙 연산자
이다.
연산자 | 설명 | 구문 |
---|---|---|
+ | 덧셈 연산자 | 숫자 + 숫자 |
- | 뺄셈 연산자 | 숫자 - 숫자 |
* | 곱셈 연산자 | 숫자 * 숫자 |
/ | 나눗셈 연산자 | 숫자 / 숫자 |
사칙연산자는 우리가 알고 있던 개념과 동일하므로 바로 예시를 쳐보도록 하자.
>>> print("5 + 7 =", 5+7)
5 + 7 = 12
>>> print("5 - 7 =", 5-7)
5 - 7 = -2
>>> print("5 * 7 =", 5*7)
5 * 7 = 35
>>> print("5 / 7 =", 5/7)
5 / 7 = 0.7142857142857143
//
이번에는 생소한 정수 나누기 연산자
를 알아보도록 하자.
//
형태의 연산자이며, 숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후 정수 부분만 남긴다. 예시를 살펴보자.
>>> print("3 / 2 =", 3/2)
3 / 2 = 1.5
>>> print("3 // 2 =", 3/2)
3 // 2 = 1
%
나머지 연산자
는 A
를 B
로 나누었을 때 남은 나머지를 구하는 연산자이다. 말 그대로 몫
을 뺀 나머지
를 구하는 연산자이다. 예시를 살펴보자.
>>> print("5 % 2 =", 5%2)
5 % 2 = 1
*
파이썬에는 숫자를 제곱하는 ** 연산자
가 있다. 수학에서의 2의 4승
은 파이썬에서 2**4
로 사용한다. 예시를 살펴보자.
>>> print("2 ** 1 =", 2**1)
2 ** 1 = 2
>>> print("2 ** 3 =", 2**3)
2 ** 3 = 8
연산자에는 우선순위
가 존재한다.
본디 숫자를 계산할 때는 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선이다. 파이썬도 마찬가지이다. 또한 곱셈/나눗셈과 덧셈/뺄셈처럼 같은 우선순위를 가지는 연산자
는 왼쪽에서 오른쪽
순서로 계산한다.
>>> print(2+2-2*2/2*2)
0.0
>>> print(2-2+2/2*2+2)
4.0
만약 덧셈/뺄셈을 먼저 계산하고 싶다면 수학처럼 ( )
로 묶어주면 된다. 이외에도 연산자의 우선순위가 헷갈림을 방지해 연산자 우선순위가 확실한 경우에도 괄호로 감싸주는 것이 좋다.
TypeError
예외서로 다른 자료를 연산하였을 때 발생하는 예외이다. 언제 발생하는 오류인지 살펴보자.
>>> string = "문자열"
>>> number = 273
>>> string + number
문자열과 숫자를 +
연산자로 연결한 경우이다. 문자열
은 +
를 문자열 연결 연산자
로 사용하려고 하고 숫자
는 +
연산자를 덧셈 연산자
로 사용하려다 보니 충돌이 발생하게 된 것이다.
숫자 자료형
에는 소수점이 없는 정수형과 소수점이 있는 실수형(부동 소수점)이 있다.숫자 연산자
에는 +
-
*
/
와 같은 사칙 연산자와 //(정수 나누기 연산자)
%(나머지 연산자)
**(제곱 연산자)
가 있다.연산자
에는 우선순위
가 존재한다. 곱하기와 나누기
> 더하기와 빼기
이다. 우선순위를 잘 모르겠을 경우에는 괄호
를 쳐서 나타낸다.interpreter
: 프로그래밍 소스 코드를 곧바로 실행해 주는 프로그램
interactive shell
: 컴퓨터와 상호 작용하는 공간이라는 의미에서 대화형 셸이라고 부른다.
>>>
에 코드를 한 줄 한 줄 입력하면 곧바로 실행 결과를 볼 수 있다.escape character
: \
기호가 붙은 특수한 문자 리터럴