파이썬이란?
1991년 귀도 반 로섬이 만든 프로그램 언어이다. 파이썬은 쉽고 간결하고 강력한 기능 덕분에 2021년 11월 기준 가장 많이 사용되는 1위 프로그램 언어이다.
-
접착 언어 (Glue Lang.)
-
Library vs Framework
파이썬 언어의 특징 및 장점
- 인터프리터 언어이다.
- 간결한 코드와 쉬운 문법으로 배우기 쉽다.
- 무료로 사용 가능하다.
- 다른 언어와 쉽게 상호작용이 가능하다.
- 윈도우, 맥 OS, 리눅스 등에서도 동일한 코드로 실행 시킬 수 있다.
- 라이브러리가 많다.
파이썬 (명령어 해석기)
1. 파이썬
2. 아나콘다
통합개발환경 (IDE)
1. vkdlcka
2. VS Code
3. 서브라임 텍스트
4. 노트패드 ++
Escape Sequence : 백슬래시 + 문자
-
\', \", \t (tab), \n (new line), \ (백슬래시)
-
comment (주석)은 #으로 표현
-
주석은 파이썬 인터프리터가 무시한다.
-
이후 줄 끝까지 주석
-
print 함수는 가변인자를 정의하고 있음
파이썬은 강타입 언어입니다. (Strong Type Language)
문자열 포매팅
- 문자열의 format 메서드 사용하는 방법
- f-string
- 문자열의 format 메서드 사용하는 방법
- f-string
- format 메서드 사용 x
- 문자열 앞에 f를 붙인다.
- 출력할 내용을 미리 변수에 바인딩해야함
입력 받은 숫자를 문자가 아닌 숫자로 처리하고 싶을 때 데이터 변환 함수 (클래스의 생성자) 사용하여 문자열을 정수로 변환 : int() -- 겉보기에는 함수지만 실제로는 클래스 (생성자)
type() : 함수처럼 보이지만 실제로는 클래스
type을 이용하면 객체의 클래스를 알 수 있음
변수란?
- 값(데이터)를 담는 그릇
- 종류와 크기
- 데이터의 종류와 크기에 따라 데이터 타입이 결정
- 이 데이터를 담는 변수의 데이터 타입도 결정
정적 타입 언어 VS 동적 타입 언어
동적 타입 언어
- 변수가 프로그램 실행 중에 어떤 타입이든 저장 가능
- 변수가 특정 데이터 타입으로 결정되지 않음
정적 타입 언어
- 변수에 데이터 타입을 미리 선언
- 그 변수는 해당 데이터 타입만 저장 가능
파이썬: 강타입 언어 & 동적 타입 언어
- 올바른 데이터를 사용하지 않으면 TypeError, ValueError
- 변수는 선언없이 바로 생성, 대신 초기화 필요
- 즉, 파이썬에서 변수를 사용하려면 변수를 초기화 해야한다. (선언이 없으므로)
id() : 객체의 ID(주소) 반환
boolean type
- 파이썬 불 리터럴 : True, False (첫 글자 대문자에 유의 )
자료형
Scalar 형
- 단일값 : 숫자형(int, float, complex), 불형(bool), None 등
Collection 형
- 다중값 : 원소(element)들로 구성됨
- 시퀸스 : 데이터가 순서대로 저장 (0번부터 시작)
- immutable (불변) : 값 변경 불가 - 문자열, 튜플
- mutable (가변) : 변경 가능 - 리스트
- 매핑
- 사전 : 순서가 없음
원소가 (키, 값) 쌍으로 구성, 아이템이라고도 함
키는 해시가능한 데이터 타입이어야 함(보통 immutable)
- 집합(set)
순서 없음, 중복 불허
집합 연산자
리스트
배열(array):시퀸스, 모든 원소가 같은 타입
리스트 리터럴 : 대괄호 사용 []
리스트 함수(클래스) : list()
시퀸스 형은 반드시 0부터 시작, 정수형
사전은 키로 접근
리스트 리터럴 -> 리스트 객체 생성 -> 변수에 바인딩
인덱싱 : 색인
슬라이싱
- 시퀸스 형의 원소를 토막을 반환
- 슬라이싱의 결과는 해당 시퀸스 형
- 인덱싱의 결과의 타입은 원소의 데이터 타입
- 콜론을 사용하여 시작위치, 종료위치 구분, 필요하다면 스텝 간격도 지정 가능
시작위치 생략 -> 처음부터
종료위치 생략 -> 마지막 원소까지
- 종료위치는 포함되지 않음
튜플(tuple)
- 튜플 리터럴 : 소괄호() 사용
- 튜플 함수(클래스) : tuple()
- 리스트와 다른 점 하나 : 원소 변경 불가능 즉, immutable 시퀸스
사전(dictionary, dict)
- 사전 리터럴 : 중괄호 {} 사용
- 아이템 키, 값 쌍은 콜론으로 구분
- 순서 없는 자료형
논리 연산
- Truth Value Testing
- 데이터를 논리값으로 판단해야 한다면
1) 값 자체가 False:None, False
2) 숫자 데이터는 0으로 판명되는 것 0, 0.0
논리 리터럴 True, False 가 산술연산에 사용되면
True -> 1, False -> 0으로 간주
short cut evalutation
and 로만 또는 or 로만 연결된 논리식에서
앞부분에서 이미 전체 결과가 결정되면 뒷부분은 evalutate 하지 않음
비교연산의 결과는 논리값
멤버십 연산자 : in, not in
for 문에 사용된 변수는 반복문이 끝난 이후에서 접근 가능하다.
enumerate()
열거하다.
리스트 내포 (List Comprehension)
for 문을 이용하여 리스트 생성하는 방법
사전 내포
반복문 내에서 리스트에 원소를 추가하는 방법보다 훨씬 빠름
if문은 지원하짐나 else 구문은 지원하지 않음
values 안에 있는 값을 2배 하시오.
result라는 빈 리스트 생성 후 값을 2배한 것을 temp에 저장하고 result 리스트 안에 temp값을 추가한다.
위 문제를 리스트 내포를 사용하면 한 줄로 끝나고 속도도 엄청 빠르다.
- for, if문 사용
- 리스트 내포
함수란?
- 코드 블록에 이름 붙인 것
=> 서브루틴 --> 함수, 프로시저
이름을 붙인다는 것의 의미?
- 호출하겠다, 써먹겠다, 사용하겠다.
- 재사용 (reuse)
변수
파이썬 함수의 특징
- 1st-class citizen (1급 시민), 1st-class object (1급 객체)
- 1급 객체: 1) 변수에 저장되고 2) 함수의 인자로 사용되고 3) 함수로부터 반환 가능한 객체