2018. 6. 2. 23:07ㆍ파이썬
''' 파이썬으로 할 수 있는 여러가지 일 '''
파이썬은 시스템 유틸리티를 만드는데 유리 (windows , linux 등의 시스템 명령어들을 이용할 수 있는 각종 도구를 갖추고 있다.)
파이썬을 다른 언어를 이요해 GUI 프로그램을 만드는 것보다 훨씬 더 쉽게 만들 수 있다.
Tkinter , wxPython, PyQT, PyGTK 와 같은 GUI 모듈 드이 존재한다.
파이썬은 접착성이 좋은 언어이다. C/C++ 언어와 결합해서 사용할 수 있다.
파이썬은 웹 응용 프로그램을 제작하기에 매우 탁월하다.
파이썬은 수치연산에는 적절하지 않다. 수치 연산에는 C언어가 좀 더 적합하나, Numpy 모듈을 이용하면 수치 연산 프로그래밍도 가능하다. ( Numpy 모듈이 C언어로 제작 되었기 때문)
여러 종류의 DB에 접근할 수 있도록 해준다. 피클(pickle) 모듈 : 파이썬에서 사용되는 자료 원형을 그대로 저장하고 불러오는 일
시스템과 밀접한 프로그래밍에는 부적절 ( 방대한 수치 연산, 반복에 취약 )
- 빠른 속도 / 직접적인 하드웨어 관련 프로그램 부적합.
모바일 프로그래밍
1. String
2. List
리스트명 = [ 요소1, 요소2, 요소3, 요소4, .... ]
리스트는 위와 같이 사용할 수 있다. 리스트의 요소로 정수, 실수, 문자열 모두 가능하며 , 빈 리스트도 생성가능하다.
비어있는 리스트는 list = [ ] or a = list() 두 가지 방법으로 생성가능하다.
(1) 리스트의 인덱싱
(2) 리스트의 슬라이싱
문자열에서 사용한 슬라이싱과 사용법이 같음.
>>> a = [1, 2, 3, 4, 5 ]
>>> a[0:2] // 첫 번째 요소부터 인덱스 2번 전까지 요소를 출력
[1, 2]
(3) 리스트 연산자
① 리스트 더하기 (+)
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, ,3 ,4, 5, 6]
② 리스트 반복하기 (*)
>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
(4) 리스트 요소 삭제
① [ ]로 삭제하기
>>> a[1:3] = [ ] // a[1] ~ a[2] 요소를 삭제함
② del 함수 이용하기
del 함수는 파이썬에서 기본적으로 제공하는 내장 함수이다. 사용법은 ' del 객체명 '이다.
>>> del a[1:3]
(5) 리스트 관련 함수
- append : 리스트 맨 뒤에 새로운 요소를 추가
>>> a = [1, 2, 3]
>>> a.append(4)
[1, 2, 3, 4]
- sort : 리스트 요소를 정렬 ( 숫자 크기 순으로 , 알파벳 순으로 )
>>> a = [1, 3, 5, 4]
>>> a.sort()
[1, 3, 4, 5]
- reverse : 리스트를 역순으로 정렬( 주의!! 리스트 순서그대로 뒤집어 질 뿐! 크기 순으로 정렬 되지는 않음. )
>>> a = [1, 3, 5, 4]
>>> a.reverse()
[4, 5, 3, 1]
- index : 리스트에 지정한 값이 있다면, 해당 값의 인덱스 번호를 리턴. 값이 없으면 오류 발생.
>>> a = [1, 2, 3, 4]
>>> a.inex(3)
2
- insert : a.insert(2, 4) // 리스트 a에 인덱스2번째 위치에 4를 삽입.
- remove : a.remove(3) // 리스트에서 첫 번재로 나온 3을 제거, 이후에 나오는 3은 제거 되지 않음.
- pop : 스택에서 처럼 pop() 은 리스트의 가장 마지막 요소값을 리턴해주고, 리스트에서 삭제한다.
- count : a.count(1) // 리스트 포함된 1의 개수를 리턴
- extend : a.extend(b) // 파라미터로 리스트만! 올 수 있고, 리스트 a 뒤에 리스트 b를 더한다.
3. Tuple
리스트와 대체로 비슷하다.
※ 리스트와 차이점
① 리스트는 대괄호로 감싸지는데, 튜플은 ( , ) 로 감싸진다.
② 리스트는 요소를 수정할 수 있지만, 튜플은 수정이 불가능하다.
t1 = () t2 = (1,) t3 = (1,2,3) t4 = 1,2,3,4 t5 = ('a', 'b', ('ab', 'cd'))
튜플은 요소가 하나 뿐이라면 반드시 뒤에 콤마(,)를 찍어주어야 한다.
또 요소들을 괄호로 감싸지 않아도 상관없다.
요소 값을 변경하거나 지우려고 시도할 시 오류 발생.
수시로 값을 변하는 요소의 집합 : LIST 사용 vs 변화없이 고정된 요소들의 집합: Tuple 사용
(1) 튜플의 인덱싱
>>>t1 = (1, 2, 'a', 'b') >>>t1[0] 1 >>>t1[3] 'b'
문자열이나 리스트와 사용법은 같다.
(2) 튜플의 슬라이싱
>>> t1 = (1, 2, 'a', 'b') >>> t1[1:] (2, 'a', 'b')
(3) 튜플 더하기
>>> t1 + t2
(4) 튜플 곱하기
>>> t2 * 3
4. Dictionary
이 딕셔너리 자료형은 전에 perl에서 공부했었던 Associative Array ( HASH ) 과 같이 대응 관계를 나타내는 자료형이다.
(관련 게시글 : http://200okdream.tistory.com/86 )
리스트, 튜플처럼 순차적으로 요소값을 구하지 않고, ( 인덱스 번호를 알 필요가 없다. ) 키값을 통해 요소 값에 접근한다.
>>> dic = {'name' : 'pey', 'phone' : '01012345678', 'birth':'1118'}
{키 값 : 요소 값} 과 같은 형태로 딕셔너리를 작성한다.
요소 값으로 리스트가 들어가 수도 있다.
(1) 딕셔너리 쌍 추가, 삭제
① 추가하기
dic[키값] = 요소값
② 삭제하기
del dic[키값]
③ 딕셔너리 요소값 사용하기
dic[키값]
- 딕셔너리는 요소에 접근하기 위해 키 값을 이요해 추가 및 삭제 작업을 수행한다.
- 딕셔너리에서 키값은 Unique해야 한다. 중복되는 키값이 존재할 경우 키 값중 어느 하나를 제외하고는 전부 무시되어 버리는 불상사가 발생한다.
(2) 딕셔너리 관련 함수
① Key List 생성하기
>>> dic = { 'name' :'pey', 'phone':'01012345678', 'birth':'1118' } >>> dic.keys() dict_keys(['name', 'phone', 'birth'])
keys() 함수를 사용하면 dict_keys 라는 객체를 반환해준다. 이 객체는 리스트를 사용하는 것과 같지만, 리스트 고유 함수는 사용할 수 없다.
② Value List 생성하기
>>> dic.values() dict_values(['pey', '01012345678', '1118'])
키를 생성하는 것과 같은 방식이다. dict_values 라는 객체 생성.
③ 쌍 얻기 ( items )
>>>dic.items() dict_items([('name', 'pey'), ('phone', '01012345678'), ('birth', '1118')])
키값과 벨류 값을 쌍으로 얻어와서 dict_items 객체 생성
④ 쌍 지우기 ( clear )
>>> dic.clear() >>> a {}
⑤ 키로 요소값 얻기
>>> dic.get('name') 'pey'
get('name')함수는 dic['name'] 과 같은 기능을 한다. 다만 전자의 경우 키 값이 없는 경우 오류를 발생시키지만, 후자는 오류 대신 None 을 반환한다. ( None 은 False )
>>> dic.get( 'test', 'default' ) 'default'
- get 함수 사용 시딕셔너리 내에 test 라는 키값이 없을 경우 None 대신 , 디폴트로 지정된 값을 반환해 주도록 한다.
⑥ 키 값 존재 유무 조사( in )
>>> dic = {'name':'pey', 'phone':'01012345678', 'birth':'1118' } >>> 'name' in dic True >>> 'email' in dic False
해당 키값이 딕셔너리에 있으면 True를 , 없으면 False를 반환 . ( Python 3 이전 버전에서는 True, False 대신 1,0 이 반환 )
5. Set
'파이썬' 카테고리의 다른 글
웹 환경에 대한 이해 (0) | 2018.07.19 |
---|---|
Python Network Programming- Socket Library (0) | 2018.07.11 |
Vim 으로 파이썬 개발 환경 만들기 (0) | 2018.06.13 |
Pymysql 모듈 사용하기 (0) | 2018.06.12 |
Python Package Management (0) | 2018.06.11 |