3장. 기본 작업 수행 자료형, 연산자
3.1. 수와 연산자
atom.io
3
https://youtu.be/XYvP4NeFo0Y
맥용 atom 설치
https://youtu.be/5RrDUH5Bnv8
5
https://youtu.be/8Z6_JSvKux0
윈도용 atom 설치
▪ 윈도 운영체제에서 python 설치 & atom 설치
▪ 우선 miniconda라는 파이썬 구동 소프트웨어를 다운받는다.
▪ https://conda.io/miniconda.html
▪ 미니콘다를 다운받아서 설치한다
▪ 아래 동영상을 참고한다
▪ https://youtu.be/5RrDUH5Bnv8
▪ 윈도용 atom 에디터를 다운받아 설치한다
▪ atom은 윈도 & 맥용 버전이 있다
▪ 프로그램을 작성하고 수행할 수 있는 통합 개발환경이다
▪ atom 을 실행시키고 python 프로그램을 작성한다
▪ ____.py 라는 이름으로 python 프로그램을 저장한다
▪ 맥에서는 comm-i 라는 단축 키로 컴파일하여 실행한다
7
9
https://tutorial.djangogirls.org/ko/intro_to_command_line/
키보드 기호의 이름 알아보기 1
`
역따옴표, grave, backquote등 ( 왼쪽 괄호, 여는 괄호~ 물결표, tilde, wiggle ) 오른쪽 괄호, 닫는 괄호
! 느낌표, exclamation mark, bang - 빼기표, 풑임표, 하이픈, minus, dash
@ 골뱅이, 앳 사인, snail(달팽이) _ 밑줄문자(표), 언더스코어, 언더바,
# 해시기호, 샾, pound, number + 더하기표, plus sign
$ 달러기호, cash, currency symbol = 등호, equal sign
% 퍼센트기호 {, } 왼쪽, 오른쪽 중괄호,
여는, 닫는 중괄호
^ 캐럿, 꺽쇠기호, circumflex, up arrow [, ] 왼쪽, 오른쪽 대괄호,
키보드 기호의 이름 알아보기 2
\ 역슬래시, 프로그래밍에서는 탈출문자라
고도 함, ₩로 표시되기도 함
⌘
커맨드키, 애플키 - macOS에서 다른 키 와 조합하여 특수한 기능을 수행: 콜론, 쌍점 Tab 탭키 - 커서를 여러칸 움직이는 키
; 세미콜론, 반쌍점 Esc 이스케이프키, 탈출키
“ 큰따옴표, 겹따옴표, quotation mark Enter 엔터키, macOS에서는 리턴키
‘ 작은따옴표, apostrophe shift 시프트키 - 대/소문자를 입력하거나 한글 두벌식 키의 된소리입력시 사용 . 마침표, dot, period, full stop Caps Lock 캡스록 - 로마자 대/소문자를 바꾸는 키
? 물음표, question mark Delete 삭제키, delete key
fn 기능키, 펑션키, 컴퓨터의 기능, 동작을
할당할 수 있음 Insert 삽입키, insert key
Ctrl 혹은 control 키 - 다른 키와 조합하여 특 수한 기능을 수행하는 키
PgUp,
PgDn 페이지업, 페이지 다운
Alt 혹은 option 키 - control 키와 마찬가지
로 다른 키와 조합하여 기능수행 Home 홈키
수 형식과 연산자
3.1. 수와 연산자
▪ 자료형에는 정수형, 실수형 등이 있다.
▪ int와 float 으로 표현되는 파이썬의 정수형과 실수형 숫자들은 다음 연산이 가능하다.
int 정수(integer)
float 실수
+, -, *, / 더하기,빼기, 곱하기, 나누기
% 나머지 (modulo)
// 몫
** 제곱
[예제 3-1] int형 기본 연산자 연습
13
3.1. 수와 연산자
[예제 3-2] float형 기본 연산자 연습
3.1. 수와 연산자
Int/float형을 사용한 연산자 연습
15
3.1. 수와 연산자
▪ 일반적으로 int형과 float형을 함께 사용하는 경우가 많다.
▪ int형과 float형이 함께 쓰이는 경우에 그 결과 값은 float형이다.
[예제 3-3] 정수만을 사용한 연산자 연습
[예제 3-4] 실수만을 사용한 연산자 연습
다음 수식을 직접 실행시켜보자.
1) 2 * 3 2) 2.0 * 3
>>> 2 * 3
6 >>> 2.0 * 3
6.0
다음 수식을 직접 실행시켜보자.
1) 7 // 3 * 1.2 + 3 // 2 >>> 7 // 3 * 1.2 + 3 // 2 3.4 >>>
‘//’ 연산자
3.1. 수와 연산자
▪ ‘//’ 연산자는 나눗셈 연산의 몫만을 결과로 나타낸다.
예를 들면, 7//3은 2 이다.
[예제 3-6] ‘//’연산자 연습
다음 수식을 직접 실행시켜보자.
1) 26 // 2 2) 31 // 4
>>> 26 // 2
13 >>> 31 // 4
7
‘%’ 연산자
17
3.1. 수와 연산자
▪ ‘%’ 연산자는 나눗셈 연산의 나머지를 계산한다- 모듈로 연산이라고도 한다.
[예제 3-7] ‘%’ 연산자 연습
다음 수식을 직접 실행시켜보자.
1) 26 % 2 2) 31 % 4
>>> 26 % 2
0 >>> 31 % 4
3
[퀴즈3-1]
3.1. 수와 연산자
▪ 다음 문장의 실행 결과를 예측하여 보자.
>>> 20 % 6
정답 :
>>> 21 / 5 정답 :
>>> 21 // 5
정답 :
‘**’ 연산자
19
3.1. 수와 연산자
▪
다음 수식을 직접 실행시켜보자.
1) 2 ** 4 2) 4 ** 6
>>> 2 ** 4 16 >>> 4 ** 6 4096
>>>
다음 수식을 직접 실행시켜보자.
1) 3.1 ** 4.2 2) 2.6 ** 5.4
>>> 3.1 ** 4.2 115.80281433592612
>>> 2.6 ** 5.4 174.12297512053922
>>>
연산자 결합 법칙 (Operator Associativity)
3.1. 수와 연산자
▪ 연산 식에서 같은 연산자가 연속해서 나올 경우에
연산 순서를 왼쪽부터 취할 것인지 아니면 오른쪽부터 취할 것인지 결정하는 것
▪ 파이선에서의 연산자 결합 법칙
연산자 결합 법칙
** 오른쪽 ! 왼쪽
- 왼쪽 ! 오른쪽
*, /, //, % 왼쪽 ! 오른쪽
+, - 왼쪽 ! 오른쪽
연산자 우선순위
21
3.1. 수와 연산자
▪ 하나 이상의 연산자가 수식에 나타날 때는 우선순위 규칙을 따름
• 괄호는 가장 높은 순위를 가짐(즉, 괄호 안의 수식이 먼저 계산됨) [예제 3-10] 연산자 우선순위 연습
[예제 3-11] 연산자 우선순위 연습
다음 수식을 직접 실행시켜보자.
1) ( 2 + 4 ) * 5 2) 4 * ( 26 9 )
3) ( 4 + 5 ) ** ( 9 6 )
>>> ( 2 + 4 ) * 5
30 >>> 4 * ( 26 – 9 )
68 >>> ( 4 + 5 ) ** ( 9 – 6 )
729 >>>
다음 수식을 직접 실행시켜보자.
1) 4 * 6 - 5 2) 9 + 54 / 6
>>> 4 * 6 - 5
19 >>> 9 + 54 / 6
18 >>>
연산자 우선순위
3.1. 수와 연산자
▪ 지수(**)는 다른 연산자들 보다 높은 우선 순위를 가짐
[예제 3-12] 연산자 우선순위 연습
다음 수식을 직접 실행시켜보자.
1) 2 ** 4 + 5 2) 6 * 5 ** 2
>>> 2 ** 4 + 5 21
>>> 6 * 5 ** 2 150
>>>
[실습3-1] 연산자들의 복합
23
3.1. 수와 연산자
[실습3-2] 실수가 포함된 수식 계산하기
3.1. 수와 연산자
[퀴즈 3-2]
25
3.1. 수와 연산자
▪ 다음 문장의 실행 결과를 예측하여 보자.
>>>
5 + 12 // 7 * 3
정답 :
>>>
15 / 2 + 21 % 4 - 2 ** 3
정답 :
3장. 기본 작업 수행 자료형, 연산자
3.2. 변수
할당문 (Assign Statement)
27
3.2. 변수
▪ 변수(문자 또는 문자들로 구성된 이름)에 값(Value)을 할당함
• 변수는 값(Value)을 참조하는 이름으로 문자라고 생각하면 됨
▪ 할당문은 변수에 값을 지정하기 위해 사용됨
• 할당문의 왼쪽 : 변수
• 할당문의 오른쪽 : 값
▪ 할당문의 예
• a = 20
– a라는 변수에 20 이라는 값을 할당함
• b = 30
– b라는 변수에 30 이라는 값을 할당함
• b = a
– 변수간의 할당문에서는 실제로 참조를 할당함
[예제 3-13] 할당문 사용 연습
3.2. 변수
[예제 3-14] 할당되지 않은 변수는 에러
29
3.2. 변수
▪ 변수는 사용되기 전에 반드시 할당 되어야 함
다음 명령문을 직접 실행시켜본 후 결과를 비교해보자.
1)number 2)number = 5
>>> number
Traceback(most recent call last):
File “<pyshell#0>”, line 1, in <module>
number
NameError: name ‘number’ is not defined
>>> number = 5
>>> number
5 >>>
변수명 (Naming) 규칙
3.2. 변수
▪ 변수 이름을 결정할 때에 고려해야 할 규칙
변수명 규칙
1
변수의 이름은 문자, 숫자 그리고 Underscore(_)로만 이루어진다.다른 기호를 사용하면 구문 에러(Syntax Error)이다.
(예) Money$ : 구문 에러, $는 사용할 수 없다.
2
변수명은 문자 또는 Underscore로만 시작해야 한다. 즉 숫자로 시작 하 면 안된다.(예) 7up, 5brothers : 숫자로 시작했기 때문에, 역시, 구문 에러이다.
3
파이썬 지정단어 (Keyword, Reserved word)들은 변수명으로 사용할 수 없다.(지정 단어 목록 참조)
4
파이썬에서는 대문자와 소문자를 구분한다.키보드 기호의 이름 알아보기 1
`
역따옴표, grave, backquote등 ( 왼쪽 괄호, 여는 괄호~ 물결표, tilde, wiggle ) 오른쪽 괄호, 닫는 괄호
! 느낌표, exclamation mark, bang - 빼기표, 풑임표, 하이픈, minus, dash
@ 골뱅이, 앳 사인, snail(달팽이) _ 밑줄문자(표), 언더스코어, 언더바,
# 해시기호, 샾, pound, number + 더하기표, plus sign
$ 달러기호, cash, currency symbol = 등호, equal sign
% 퍼센트기호 {, } 왼쪽, 오른쪽 중괄호,
여는, 닫는 중괄호
^ 캐럿, 꺽쇠기호, circumflex, up arrow [, ] 왼쪽, 오른쪽 대괄호, 여는, 닫는 대괄호
& 앰퍼샌드, and, amper | 수직선, pipe, verti-bar
* 별표, 스타, asterisk / 빗금, 슬래시, 나누기,
키보드 기호의 이름 알아보기 2
\ 역슬래시, 프로그래밍에서는 탈출문자라
고도 함, ₩로 표시되기도 함
⌘
커맨드키, 애플키 - macOS에서 다른 키 와 조합하여 특수한 기능을 수행: 콜론, 쌍점 Tab 탭키 - 커서를 여러칸 움직이는 키
; 세미콜론, 반쌍점 Esc 이스케이프키, 탈출키
“ 큰따옴표, 겹따옴표, quotation mark Enter 엔터키, macOS에서는 리턴키
‘ 작은따옴표, apostrophe shift 시프트키 - 대/소문자를 입력하거나 한글 두벌식 키의 된소리입력시 사용 . 마침표, dot, period, full stop Caps Lock 캡스록 - 로마자 대/소문자를 바꾸는 키
? 물음표, question mark Delete 삭제키, delete key
fn 기능키, 펑션키, 컴퓨터의 기능, 동작을
Insert 삽입키, insert key
[참고] 파이썬 지정 단어 (Keyword, Reserve Word)
33
3.2. 변수
>>> import keyword
>>> keyword.kwlist
[‘False’, ‘None’, ‘True’, ‘and’,
‘as’, ‘assert’,
‘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’]
>>> len(keyword.kwlist) 33
>>>
keyword를 import하여 파이썬 지정 단어를 확인해 보자.
1) keyword.kwlist 명령어는 파이썬 지정 단 어를 배열 형태로 나열해 준다.
2) len 함수를 사용해서 파이썬 지정 단어의 개 수도 확인해 보자.
▪ keyword를 import 하면 파이썬에서 지정한 단어들을 확인 할 수 있음
• 파이썬 지정 단어는 변수명으로 사용 할 수 없음에 유의하자.
[실습 3-3] 올바른 변수명이 아닌 이유
3.2. 변수
[퀴즈 3-3]
35
3.2. 변수
▪ 아래의 ‘변수명'이 올바른지 O/X로 표현해보자.
>>> True
>>> 3apples
>>> elif
>>> new_score
>>> Brother
( )
( )
( )
( )
( )
[참고] 의미 있는 변수명
3.2. 변수
a = 26
b = 54 math = 26
3개의 시험 성적이 주어졌을 때, 시험 성적의 총합과 평균을 구하여라.
• 수학: 26점
• 영어: 54점
• 역사: 96점
▪ 변수명은 의미 있게 만들어져야 함
• 그 변수의 역할에 맞게 이름이 지어져야, 프로그램을 검토할 때나 협업 시 공유할 때 도움이 됨
– 다음 예제를 통해, 실습 A와 실습 B의 차이를 보도록 하자.
예제 실습 A 예제 실습 B
예제
한번에 여러 변수 할당 (Multiple Assignments)
37
3.2. 변수
▪ 한번에 여러 변수에 할당 시 변수와 값의 개수가 일치해야 함 [예제 3-15] 한 번에 여러 변수 할당 연습
>>> number_1, number_2 = 511
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
number_1, number_2 = 511
TypeError: 'int' object is not iterable
>>> number_1, number_2 = 2, 4, 5 Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
number_1, number_2 = 2, 4, 5
ValueError: too many values to unpack (expected 2)
>>> number_1, number_2 = 6, 9
>>> number_1
6 >>> number_2
9 >>>
다음 명령문을 직접 실행시켜 본 후 결과를 비교해보자.
1) number_1, number_2 = 511 2) number_1, number_2 = 2, 4, 5 3) number_1, number_2 = 6, 9
변수에 변수 할당
3.2. 변수
▪ 할당문의 오른쪽에 문자가 올 때는 반드시 먼저 값을 할당 받은 후, 할당문의 오른쪽에 문자를 사용해야 한다.
[예제 3-16] 변수에 변수를 할당 1
>>> number_1 = number_2
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
number_1 = number_2
NameError: name 'number_2' is not defined
>>> number_2 = 511
>>> number_1 = number_2
>>> number_1
511 >>> number_2
511 >>>
다음 명령문을 직접 실행시켜본 후 결과를 비교해보자.
1) number_1 = number_2
2) number_2 = 511, number_1 = number_2
변수에 변수 할당
39
3.2. 변수
▪ 같은 경우로 문자를 사용할 때는 초기값을 할당해야 함
[예제 3-17] 변수에 변수 할당 2
[참고] 할당문의 실행과정
3.2. 변수
a 1
a 1 b a = 1
b = a
a = a + 1
(a+1) 수식에 의해서 a에 새로운 값이 할당됨 2
신규
Add operator(+)에 의해서 새로 생성된 객체
1
2
3
[퀴즈 3-4]
41
3.2. 변수
▪ 다음 코드의 괄호 안 결과를 예측하여 보자
>>> number1 = 5
>>> number2 = number1
>>> number1 = number1 + 2
>>> number1
( )
>>> number2
( )
복합 대입 연산자 : +=, -=, *=, /=, //= , %=
3.2. 변수
▪ 연산과 할당을 동시에 표현
복합 대입 연산자 의미
a += 1 a = a + 1
a -= 1 a = a 1
a *= 1 a = a * 1
a /= 1 a = a / 1
a //= 1 a = a // 1
a %= 1 a = a % 1
[실습 3-4] 복합 대입 연산자
43
3.2. 변수
[예제 3-18] 변수들의 연산식
3.2. 변수
[예제 3-19] 같은 변수에 대한 연산식
45
3.2. 변수
[예제 3-20] 같은 변수에 대한 복합 대입 연산자 연습
3.2. 변수
[연습문제]
47
3.2. 변수
1. int형인 수자들이 나눗셈 연산을 하면 결과의 자료형은 무엇인가?
예 :>>>96 / 4
2. ‘//’ 연산자는 나눗셈 연산의 ( ) 만을 결과로 나타내고,
‘%’ 연산자는 나눗셈 연산의 ( ) 만을 결과로 나타낸다.
3. 다음 실행문의 잘못 된 부분을 찾으시오.
4. 다음 실행문이 잘못된 이유를 기술하시오.