문자열 출력
print 함수 사용
파이썬 스크립트 실행
파이썬 코드를 저장한 .py 파일을 파이썬 스크립트 또는 스크립트 파일이라고 부르며 콘솔(터미널, 명령 프롬프트)에서 python 스크립트파일.py 형식으로 실행할 수 있습니다
주석
소스 코드에 대한 설명을 작성하거나 코드를 임시로 사용하지 않도록 만들 때 사용
#사용
unit 5 숫자 계산하기
파이썬의 숫자 자료형은 정수(int), 실수(float), 복소수(complex)로 구성
정수의 계산
사칙연산 (+,-,/,*) 사용
// : 사용 시 나눗셈 후 소숫점 이하를 버리는 연산자
% : 나눗셈 이후 나머지를 구하는 연산자
** : 거듭제곱을 구하는 연산자
type(값) : 객체의 자료형을 알아내는 함수
>>> type(10)
<class 'int'>
divmod(숫자,숫자) : 몫과 나머지를 함께 구하는 함수
>>> divmod(5, 2)
(2, 1)
실수의 계산
실수와 정수를 함께 계산하면 표현 범위가 넓은 실수로 계산됨
값을 실수로 만들기
float(숫자)
float(계산식)
float('문자열')
괄호 사용하기
파이썬에서도 평소 혼합연산 시 곱셈과 나눗셈을 먼저 계산한 것 처럼 계산함따라서 곱셈보다 덧셈을 먼저 계산하고 싶다면 덧셈 부분을 괄호로 묶어줌
Unit 6 변수와 입력 사용하기
ex) x = 10 이라고 입력하면 10이 들어있는 변수 x가 만들어짐즉, '변수이름 = 값' 형식, 변수가 생성되는 동시에 값이 할당됨
변수 이름은 원하는 대로 지으면 되지만 다음과 같은 규칙을 지켜야 함
- 영문 문자와 숫자를 사용할 수 있습니다.
- 대소문자를 구분합니다.
- 문자부터 시작해야 하며 숫자부터 시작하면 안 됩니다.
- _(밑줄 문자)로 시작할 수 있습니다.
- 특수 문자(+, -, *, /, $, @, &, % 등)는 사용할 수 없습니다.
- 파이썬의 키워드(if, for, while, and, or 등)는 사용할 수 없습니다.
문자열도 넣을 수 있음
자료형 알아내기
type(변수)
>>> type(x)
<class 'int'>
>>> type(y)
<class 'str'>
변수 여러개를 한번에 만들기
변수이름1, 변수이름2, 변수이름3 = 값1, 값2, 값3 형식으로 변수를 ,(콤마)로 구분한 뒤
각 변수에 할당될 값을 지정
변수와 값의 개수는 동일하게 맞춰주어야 하며 나열된 순서대로 값이 할당됨
변수 삭제하기
del 사용
>>> x = 10
>>> del x
>>> x
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
x
NameError: name 'x' is not defined
>>>
산술 연산 후 할당 연산자 사용하기
a + 20은 a에 20을 더하기만 할 뿐 계산 결과를 유지하지 않음
변수 한 개에서 값의 변화를 계속 유지하려면 계산 결과를 다시 변수에 저장해야 함
>>> a = 10
>>> a = a + 20 # a와 20을 더한 후 결과를 다시 a에 저장
>>> a
30
input 함수
매번 다른 값을 변수에 할당할 때 사용
input 함수의 결과를 변수에 할당하는 법
변수 = input()
input 함수가 실행된 다음에는 아무 내용이 없어서 입력을 받는 상태인지 출력이 없는 상태인지 알 수가 없음
따라서 input의 괄호 안에 문자열을 지정해주면 됩니다.
>>> x = input('문자열을 입력하세요: ')
문자열을 입력하세요: Hello, world! (입력)
>>> x
'Hello, world!'
두 숫자의 합 구하기
a = input('첫 번째 숫자를 입력하세요: ')
b = input('두 번째 숫자를 입력하세요: ')
print(a + b)
입력 값을 정수로 변환하기
변수 = int(input())
변수 = int(input('문자열'))
input 한번에 값을 여러개 입력받으려면
split 사용한 변수 여러 개에 저장해주면 됨
- 변수1, 변수2 = input().split()
- 변수1, 변수2 = input().split('기준문자열')
- 변수1, 변수2 = input('문자열').split()
- 변수1, 변수2 = input('문자열').split('기준문자열')
ex
a, b = input('숫자 두 개를 입력하세요: ').split() # 입력받은 값을 공백을 기준으로 분리
print(a + b)
-입력 값을 정수로 변환하기
a, b = input('숫자 두 개를 입력하세요: ').split() # 입력받은 값을 공백을 기준으로 분리
a = int(a) # 변수를 정수로 변환한 뒤 다시 저장
b = int(b) # 변수를 정수로 변환한 뒤 다시 저장
print(a + b)
map을 사용하여 정수로 변환하기
split의 결과를 매번 int로 변환해주는 과정 -> 귀찮음
따라서 map 사용 map에 int와 input().split()을 넣으면 split의 결과를 모두 int로 변환해줌(실수로 변환할 때는 int 대신 float를 넣음
- 변수1, 변수2 = map(int, input().split())
- 변수1, 변수2 = map(int, input().split('기준문자열'))
- 변수1, 변수2 = map(int, input('문자열').split())
- 변수1, 변수2 = map(int, input('문자열').split('기준문자열'))
Unit 7 출력방법 알아보기
print에는 변수나 값 여러 개를 ,(콤마)로 구분하여 넣을 수 있음
- print(값1, 값2, 값3)
- print(변수1, 변수2, 변수3)
sep로 값 사이에 문자 넣기
값 사이에 공백이 아닌 다른 문자를 넣고 싶을 때는 print의 sep에 문자 또는 문자열을 지정해줌
- print(값1, 값2, sep='문자 또는 문자열')
- print(변수1, 변수2, sep='문자 또는 문자열')
>>> print(1, 2, 3, sep=', ') # sep에 콤마와 공백을 지정
1, 2, 3
>>> print(4, 5, 6, sep=',') # sep에 콤마만 지정
4,5,6
>>> print('Hello', 'Python', sep='') # sep에 빈 문자열을 지정
HelloPython
>>> print(1920, 1080, sep='x') # sep에 x를 지정
1920x1080
줄바꿈 활용하기
print의 sep에 개행 문자(\n)라는 특별한 문자를 지정하면 값을 한 줄에 하나씩 출력할 수 있음
>>> print(1, 2, 3, sep='\n')
1
2
3
end
print를 여러 번 사용해서 print(1, 2, 3)처럼 한 줄에 여러 개의 값을 출력하고 싶을 때는 print의 end에 빈 문자열을 지정해주면 됨
- print(값, end='문자 또는 문자열')
- print(변수, end='문자 또는 문자열')
print_multiple_end.py
print(1, end='') # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨
print(2, end='')
print(3)
불
불은 True, False로 표현합니다. 특히 비교 연산자, 논리 연산자의 판단 결과로 True, False를 사용
비교 연산자▼ 표 12-1 파이썬 비교 연산자
연산자 | 문법 | 설명 |
== | a == b | 같음 |
!= | a != b | 같지 않음, 다름 |
> | a > b | 큼, 초과 |
< | a < b | 작음, 미만 |
>= | a >= b | 크거나 같음, 이상 |
<= | a <= b | 작거나 같음, 이하 |
is | a is b | 같음(객체 비교) |
is not | a is not b | 같지 않음, 다름(객체 비교) |
논리 연산자
▼ 표 12-2 파이썬 논리 연산자
연산자 | 문법 | 설명 |
and | a and b | AND(논리곱), 양쪽 모두 참일 때 참 |
or | a or b | OR(논리합), 양쪽 중 한쪽만 참이라도 참 |
not | not x | NOT(논리 부정), 참과 거짓을 뒤집음 |
문자열
문자열은 ' '(작은따옴표) 또는 " "(큰따옴표)로 묶어서 표현
'Hello, world!'
"Hello, world!"
여러 줄로 된 문자열
여러 줄로 된 문자열은 '''(작은따옴표 3개)로 시작해서 '''로 닫거나 """(큰따옴표 3개)로 시작해서 """로 닫아서 표현
'''Hello, world!
안녕하세요.
Python입니다.'''
"""Hello, world!
안녕하세요.
Python입니다."""
리스트
리스트는 여러 개의 값(요소)을 일렬로 늘어놓은 형태
변수에 값을 저장할 때 [ ](대괄호)로 묶어주면 리스트가 되며 각 값은 ,(콤마)로 구분
리스트에 저장된 요소에 접근할 때는 [ ] 안에 인덱스를 지정해줌. 특히 리스트의 인덱스는 0부터 시작
리스트 = [값, 값, 값] # 리스트 만들기
리스트 = [] # 빈 리스트 만들기
리스트 = list() # 빈 리스트 만들기
리스트 = list(range(횟수)) # range로 리스트 만들기
리스트[인덱스] # 리스트의 요소에 접근
리스트[0] # 리스트의 인덱스는 0부터 시작하므로 첫 번째 요소
리스트[인덱스] = 값 # 리스트의 요소에 값 저장
range
range는 연속된 숫자를 생성
이때 지정한 횟수는 생성되는 숫자에 포함되지 X
시작하는 숫자와 끝나는 숫자를 지정했을 때 끝나는 숫자는 생성되는 숫자에 포함되지 X
range(횟수)
range(시작, 끝)
range(시작, 끝, 증가폭)
튜플
튜플은 여러 개의 값(요소)을 일렬로 늘어놓은 형태
단, 요소의 값을 변경하거나 추가할 수 X(읽기 전용).
변수에 값을 저장할 때 ( )(괄호)로 묶어주면 튜플이 되며 각 값은 콤마로 구분
괄호로 묶지 않고 값만 콤마로 구분해도 튜플이 됨
튜플에 저장된 요소에 접근할 때는 [ ]안에 인덱스를 지정해줌
리스트와 마찬가지로 튜플의 인덱스도 0부터 시작
튜플 = (값, 값, 값) # 튜플 만들기
튜플 = 값, 값, 값 # 괄호 없이 튜플 만들기
튜플 = () # 빈 튜플 만들기
튜플 = tuple() # 빈 튜플 만들기
튜플 = tuple(list()) # tuple에 list()를 넣어서 빈 튜플 만들기
튜플 = tuple(리스트) # tuple에 리스트를 넣어서 튜플 만들기
튜플 = tuple(range(횟수)) # range로 튜플 만들기
튜플[인덱스] # 튜플의 요소에 접근
튜플[0] # 튜플의 인덱스는 0부터 시작하므로 첫 번째 요소
튜플 = (값, ) # 요소가 한 개인 튜플 만들기
튜플 = 값, # 요소가 한 개인 튜플 만들기
시퀀스 자료형
파이썬에서 리스트(list), 튜플(tuple), range, 문자열(str)과 같이 값이 연속적으로 이어진 자료형을 시퀀스 자료형(sequence types)이라고 함
시퀀스 자료형으로 만든 객체를 시퀀스 객체라고 하며, 시퀀스 객체에 들어있는 각 값을 요소(element)라고 부름
시퀀스 자료형의 공통 기능
파이썬의 시퀀스 자료형은 공통된 동작과 기능을 제공
리스트, 튜플, range, 문자열 등의 시퀀스 자료형은 같은 문법을 사용
값 in 시퀀스객체 # 시퀀스 객체에 특정 값이 있는지 확인
값 not in 시퀀스객체 # 시퀀스 객체에 특정 값이 없는지 확인
시퀀스객체1 + 시퀀스객체2 # 시퀀스 객체를 서로 연결하여 새 시퀀스 객체를 만듦
시퀀스객체 * 정수 # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
정수 * 시퀀스객체 # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
len(시퀀스객체) # 시퀀스 객체의 요소 개수(길이) 구하기
시퀀스객체[인덱스] # 시퀀스 객체의 요소에 접근
시퀀스객체[0] # 시퀀스 객체의 인덱스는 0부터 시작하므로 첫 번째 요소
시퀀스객체[-음수] # 인덱스를 음수로 지정하면 뒤에서부터 요소에 접근, -1은 뒤에서 첫 번째
시퀀스객체[인덱스] = 값 # 시퀀스 객체의 요소에 값 저장
del 시퀀스객체[인덱스] # 시퀀스 객체의 요소를 삭제
시퀀스 자료형의 슬라이스
시퀀스 자료형은 시퀀스 객체의 일부를 잘라내서 가져오는 슬라이스(slice)를 사용할 수 있음
[ ](대괄호) 안에 시작 인덱스와 끝 인덱스를 지정하면 해당 범위의 요소를 잘라서 새 시퀀스 객체를 만듦
단, 끝 인덱스는 가져오려는 범위에 포함되지 X
시퀀스객체[시작인덱스:끝인덱스] # 지정된 범위의 요소를 잘라서 새 시퀀스 객체를 만듦
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭] # 인덱스 증가폭을 지정하면 해당 값만큼
# 인덱스를 증가시키면서 요소를 가져옴
시퀀스객체[:끝인덱스] # 시작 인덱스를 생략하여 객체의 처음부터 끝 인덱스 - 1까지 가져옴
시퀀스객체[시작인덱스:] # 끝 인덱스를 생략하여 시작 인덱스부터 마지막 요소까지 가져옴
시퀀스객체[:] # 시작 인덱스와 끝 인덱스를 생략하여 객체 전체를 가져옴
시퀀스객체[0:len(시퀀스객체)] # len을 응용하여 객체 전체를 가져옴
시퀀스객체[:len(시퀀스객체)] # 시작 인덱스 생략, len을 응용하여 객체 전체를 가져옴
시퀀스객체[:끝인덱스:증가폭] # 객체의 처음부터 증가폭만큼 인덱스를 증가시키면서
# 끝 인덱스 - 1까지 요소를 가져옴
시퀀스객체[시작인덱스::증가폭] # 시작 인덱스부터 증가폭만큼 인덱스를 증가시키면서
# 마지막 요소까지 가져옴
시퀀스객체[::증가폭] # 객체 전체에서 증가폭만큼 인덱스를 증가시키면서 요소를 가져옴
시퀀스객체[::] # 객체 전체를 가져옴, 시퀀스객체[:]와 같음
시퀀스객체[시작인덱스:끝인덱스] = 시퀀스객체 # 범위를 지정하여 여러 요소에 값 할당
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭] = 시퀀스객체 # 증가폭만큼 인덱스를 건너뛰면서 할당
del 시퀀스객체[시작인덱스:끝인덱스] # 특정 범위의 요소를 삭제(원본 객체가 변경됨)
딕셔너리
딕셔너리는 연관된 값을 묶어서 저장하는 자료형입니다. { }(중괄호) 안에 키: 값 형식으로 저장하며 각 키와 값은 ,(콤마)로 구분
딕셔너리에 저장된 값에 접근할 때는 [ ](대괄호) 안에 키를 지정해줌
딕셔너리 = {키1: 값1, 키2: 값2} # 딕셔너리 만들기
딕셔너리 = {} # 빈 딕셔너리 만들기
딕셔너리 = dict() # 빈 딕셔너리 만들기
딕셔너리[키] # 딕셔너리에서 키로 값에 접근
딕셔너리[키] = 값 # 딕셔너리에서 키에 값 할당
키 in 딕셔너리 # 딕셔너리에 특정 키가 있는지 확인
키 not in 딕셔너리 # 딕셔너리에 특정 키가 없는지 확인
len(딕셔너리) # 딕셔너리의 키 개수(길이) 구하기