==================================
출처: jump to python
==================================
파이썬이란?
-
파이썬은?
-
인터프리터 언어(한 줄씩 소스코드를 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어)이다.
-
특징
-
쉬운 언어
-
무료
-
속도가 빠르다. C는 더 빠름.(그런 이유로Python 함수들 중 C로 작성된 것들도 많음)
-
‘life is too short, you need python’
-
파이썬으로 가능한 일
-
시스템 유틸리티 제작
-
GUI 프로그래밍
-
Tkinter를 주로 사용
-
C/C++과의 결합
-
웹 프로그래밍
-
수치 연산 프로그래밍
-
적합하지는 않지만 Numpy라는 모듈을 제공하여 빠르게 돌아감
-
데이터베이스 프로그래밍
-
Sybase, Infomix, Oracle, MySQL, PostgreSQL등 데이터베이스에 접근하기 용이한 도구를 제공
-
pickle은 자료 변형없이 그대로 파일을 저장하고 불러옴
-
데이터분석, 사물인터넷
-
pandas 모듈 이용
-
훑어보기
-
파이썬은 대화형 인터프리터이다.
-
파이썬은 대소문자를 구분한다.
-
‘…’은 아직 문장이 끝나지 않음을 의미한다.
데이터형
-
숫자형
-
종류
-
정수(integer): 0, 양수, 음수
-
실수형(floating-point): 소수점이 포함된 수
-
ex) 3.5e10, 3.412 등
-
8진수나 16진수도 사용가능
-
사칙연산
-
+,-,/,*
-
제곱: **
-
몫: //, 나머지: %
-
몫의 반환값은 정수값만 됨
-
ex) 7/4=1.75지만 7//4=1
-
문자열: 문자나 단어들의 집합
-
표현
-
문자열을 하나로 취급할 때: 작은따옴표로 감싸거나 큰따옴표로 감쌈
-
ex) “python’s availability”혹은 ‘python”s availability’
-
작은따옴표나 큰따옴표를 문자열안에 포함시키고 싶을 때
-
ex) \큰따옴표 or \작은따옴표 -> 컴퓨터는 문자열을 둘러싸는 기호가 아닌 문자 자체로 인식함
-
여러줄을 사용할 때: \n을 사용해 줄을 바꾸거나 세개의 큰따옴표 혹은 작은따옴표로 감쌈
-
ex) ‘life is too short, \n we should use python’
-
ex) ‘’’life is too short, … we should use python’’’
-
이스케이프코드: 문자열에서 미리 지정해둔 문자코드
-
\n: 줄바꿈, \t: 문자열 탭
-
tip: 이스케이프코드보다 따옴표 세개사용이 깔끔하여 권장
-
문자열사칙연산(다른 언어에서 찾기 힘든 부분)
-
합치기(concatenation): + 사용
-
ex) ‘abcd’ + ‘efg’ = ‘abcdefg’
-
곱하기: * 사용, 문자열을 두번 반복하라는 의미
-
ex) ‘abcd’*2 = ‘abcdabcd’
-
문자열길이구하기: len()함수
-
인덱싱과 슬레이싱
-
인덱싱 방법
-
파이썬은 0부터 인덱싱해서 마지막은 n-1까지 인덱싱
-
인덱싱 중 ‘-’기호는 문자열을 거꾸로 카운트한다는 의미
-
공백문자도 문자이므로 인덱싱가능
-
문자열은 immutable 자료형이어서 인덱싱으로 문자변경이 불가
-
슬레이싱방법
-
문자열변수[n,m]: n번째부터 m-1번째까지
-
문자열 포매팅(formatting): 문자열에 삽입하기, 포맷코드 사용
-
숫자, 변수: %d, 부동소수: &f
-
ex) ‘apple is %d’ %3
-
ex) %0.4f% 3.4553443 = ‘3.4553’
-
%10.4f% 3.4553443 = ‘ 3.4553’
-
문자: %s, 다른 숫자형을 입력해도 자동으로 문자열로 변환
-
ex) ‘apple is %s’ %’red’
-
두개 이상의 값
-
ex) ‘apple is %s and %d’ %(‘red’,3)
-
포맷코드에 %를 함께 쓰고 싶을 때: %%를 사용 -> %를 문자로 인식
-
ex) ‘error is %d%%’ %30 = ‘error is 30%’
-
정렬하기: 포맷코드 사이에 원하는 값을 입력하면 그만큼의 문자열을 생성하고 오른쪽 정렬을 함
-
음수: 왼쪽 정렬
-
ex) ’%10s’ %’hi’ = ‘ hi’
-
%와 %d를 함께 쓸 때는 %d%% 이렇게 사용
-
모든것을 통합하는 format함수
-
한개 값
-
ex) ‘apple is {0}’.format(3) -> 숫자, 문자, 변수도 대입 가능
-
두개 이상의 값
-
ex)’apple is {0} and {1}. format(‘red’,’10’)
-
index 숫자 자리에 문자사용 가능
-
ex) ‘apple is {0} and {color}’.format(‘1’,color=’red’)
-
정렬
-
왼쪽정렬: {0:<10}
-
오른쪽 정렬: {0:>10}
-
가운데 정렬: {0:^10}
-
공백에 원하는 문자를 넣고 싶을 때: {0:문자^10}
-
소수점 표현
-
‘{0:0.4f}’.format(3.234235) = ‘3.2342’
-
f 문자열 포맷팅
-
f ‘문자열’ 하면 외부 변수를 참조 가능
-
ex) name = ‘홍길동’, f’my name is {name}’ = ‘my name is 홍길동’
-
f’{‘hi’:<10}
-
f’{name:!<10}’
-
f’{value:0.4f<10}’
-
문자열 내장함수: 문자열이 자체적으로 가지고 있는 함수
-
사용법: 문자열 뒤에 점을 찍고 함수를 사용하면 됨
-
문자 수 세기: 문자.count(‘수를 셀 문자’)
-
문자 찾기
-
문자.find(‘찾을문자’): index를 반환, 없다면 -1을 반환
-
문자.index(‘찾을 문자’): 없으면 error 반환
-
문자 삽입: 삽입할문자.join(‘문자열’)
-
ex) ‘,’.join(‘abc’) = ‘a,b,c’
-
문자열 대문자,소문자화: 문자열.upper(): 대문자, 문자열.lower(): 소문자
-
공백지우기: 왼쪽지우기-> 문자열.lstrip(), 오른쪽 지우기 -> 문자열.rstrip, 둘다 지우기 -> 문자열.strip
-
문자 대체: 문자열.replace(‘대체당하는 문자’,’대체할문자’)
-
문자나누기: 문자열.split() -> 스페이스,엔터,줄바꿈을 기준으로 나눔, 원하는 문자에 따라 나누고 싶으면 함수에 문자를 입력하면 됨
-
리스트(list)
-
특징
-
list는 대괄호([]) 안에 쉼표(,)로 요소를 구분 지음
-
어떠한 자료형도 포함할 수 있음 -> list안에 list도 가능함
-
인덱싱과 슬라이싱
-
인덱싱 방법
-
문자열과 동일
-
list안에 list인덱싱: list[][]
-
삼중 list도 가능: list [][][]
-
슬라이싱방법
-
문자열과 동일
-
list안에 list 슬라이싱: list[][]
-
연산
-
list끼리 더하면 요소끼리가 아니라 전체를 더하는 것
-
len(list): list의 길이
-
문자형이 다른것은 연산하면 type error가 뜸
-
list 다루기
-
수정: list를 인덱싱하여 값을 교환
-
삭제: del a[]: 삭제할 값을 인덱싱하여 삭제
-
관련 함수들
-
list.append(값): list에 값 추가, 다른 자료형도 추가 가능
-
list.sort(): list 정렬
-
list.index(값): 값에 해당하는 index반환
-
값이 없으면 value error를 냄
-
list.insert(인덱스, 값): 원하는 인덱스 자리에 값을 넣음
-
list.remove(값): 첫번째로 나오는 값을 지움
-
list.pop(index): 인덱스 자리 값을 print하고 값을 지워서 반환
-
list.count(값):요소 세기
-
list.extend(list): list 확장하기
-
튜플(tuple)
-
특징: list와 비슷하지만 수정,삭제가 불가능
-
대괄호가 아닌 괄호를 사용해서 튜플생성
-
딕셔너리(dictionary): 연관배열 혹은 해시형
-
구성: {key:value, key:value, …}
-
key로 value를 찾아서 사용
-
요소삭제: del dic[1]
-
value에는 어떤 자료형이 들어가도 상관없음
-
ex) dic = {‘name’=’chaelin’,’hieght’=167,’score’= [1,2,3,4,5]}
-
주의사항: key는 동일한 것을 여러개 만들어 놓으면 하나만 인식
-
관련 함수
-
딕셔너리의 key를 list처럼 만들기: dictionary.keys()
-
하지만 이것은 list가 아닌 list형식의 객체 -> 해결법: list(dictionary.keys())
-
딕셔너리의 value를 list처럼 만들기: dictionary.values()
-
key와 value 모두 지우기: dictionary.clear()
-
key로 value 얻기: dictionary.get(‘key’)
-
key가 딕셔너리안에 있는지 확인: key in dictionary
-
집합 자료형(set)
-
사용법: 객체 = set() -> 비어있는 집합
-
안에 list를 넣으면 list숫자로 인식
-
안에 만약 list없이 문자열을 넣으면 문자 하나씩 인식
-
특징
-
중복을 허용하지 않음
-
순서가 없음
-
indexing 불가능 -> list나 tuple로 변환하여 indexing해야함
-
사용
-
교집합: 집합1 & 집합2
-
추가 사용법: 집합1.intersection(집합2)
-
합집합: 집합 | 집합2
-
추가 사용법: 집합1.union(집합2)
-
차집합: 집합1 - 집합2
-
추가 사용법: 집합1.difference(집합2)
-
값 추가: 집합1.add(값)
-
여러값 추가: 집합1.update(list)
-
특정 값 제거: 집합1.remove(값)
-
불 자료형(boolean)
-
참과 거짓자료형
-
자료형에도 참과 거짓인 존재
-
리스트,튜플,집합은 비어있으면 거짓
-
숫자는 0만 거짓
-
중요한 예제! -> 사용 예시
-
a = [1,2,3,4]
-
while a: print(a.pop())
-
while문은 참일동안 실행하는데 a가 빈 리스트가 되면 거짓이 되어서 종료
-
참/거짓 여부 확인 함수: bool(데이터)
-
변수
-
생성
-
변수이름 = 변수를 저장할 값 <- C나 JAVA처럼 변수형 설정이 필요없음
-
변수가 생성되면서 메모리에 자동으로 위치가 할당됨
-
이를 확인하는 함수: id(변수)
-
변수 법칙
-
변수 복사: 예를 들면, a =[1,2,3]으로 변수를 생성하고 b=a로 하였을 때, a와 b는 다른 것인가? 동일 한 것
-
id함수를 이용해 확인: id(a)=id(b) -> 의미: 같은 객체 [1,2,3]을 다른 이름 a,b가 다르게 가르키는 것
-
다른 것으로 인식시키고 싶을 때
-
[:] 이용
-
복사를 b=a[:] <= 이렇게 사용하면 값을 지정하는 것
-
copy 모듈
-
from copy import copy 후에 b= copy(a)
-
입력방법
-
다수도 가능
-
ex) a,b = b,a
'Python > 기초' 카테고리의 다른 글
Pandas 사용 함수 (0) | 2022.04.22 |
---|---|
각 type별 함수 사용 (0) | 2022.04.19 |
파이썬 나아가기 (0) | 2019.09.05 |
Python 프로그램 입출력하기 (0) | 2019.09.05 |
Python 제어문 (0) | 2019.09.05 |