-
이뮤터블 자료형과 뮤터블 자료형Programming/Python 2020. 9. 9. 19:30
#파이썬 공식홈페이지 : www.python.org
파이썬은 1991년 프로그래머인 귀도 반 로섬(Guido van Rossum)이 발표한 고급 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다.
파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 C파이썬 구현이 사실상의 표준이다.
해석 프로그램의 종류
C파이썬 : C로 작성된 인터프리터.
스택리스 파이썬 : C 스택을 사용하지 않는 인터프리터.
자이썬 : 자바 가상 머신 용 인터프리터. 과거에는 제이파이썬(JPython)이라고 불렸다.
IronPython : .NET 플랫폼 용 인터프리터.
PyPy : 파이썬으로 작성된 파이썬 인터프리터.
문법
들여쓰기를 이용한 블록 구조.
기본 자료형:
정수형
긴 정수형(long integer) - 메모리가 허락하는 한 무제한의 자릿수로 정수를 계산할 수 있다. 파이썬 3 버전에서는 사라지고, 대신 정수형의 범위가 무제한으로 늘어났다.
부동 소수점수형
복소수형
문자형
유니코드 문자형
함수형
집합적 자료형:
리스트형 - 내부의 값을 나중에 바꿀 수 있다.
튜플(tuple)형 - 한 번 값을 정하면 내부의 값을 바꿀 수 없다.
사전형 - 내부의 값을 나중에 바꿀 수 있다.
집합형 - 중복을 허락하지 않는다. 변경 가능하게도, 변경 불가능하게도 만들 수 있다.
파이썬 3의 내장 자료형 요약종류설명문법 예
str 문자열: 이뮤터블 방식의 일련의 유니코드 코드포인트. 'Wikipedia'
"Wikipedia"
"""Spanning
multiple
lines"""bytearray 뮤터블(mutable) 방식의 일련의 바이트. bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])bytes 이뮤터블(immutable) 방식의 일련의 바이트. b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])list 뮤터블(mutable) 방식의 리스트. 혼합 형태를 포함할 수 있다. [4.0, 'string', True] tuple 이뮤터블(immutable) 방식. 혼합 형태를 포함할 수 있다. (4.0, 'string', True) set, frozenset 순서가 정해지지 않은 집합. 중복 허용 안 함. frozenset은 이뮤터블(immutable)이다. {4.0, 'string', True}
frozenset([4.0, 'string', True])dict 뮤터블(mutable) 방식의 연관 배열의 키와 값 쌍. {'key1': 1.0, 3: False} int 이뮤터블(immutable) 방식의 정수로서 크기는 무제한. 42 float 이뮤터블(immutable) 방식의 부동소수점 수 (시스템 정의 정밀도). 3.1415927 complex 이뮤터블(immutable) 방식의 복소수. (실수와 허수) 3+2.7j bool 이뮤터블(immutable) 방식의 진리값. True
False라이브러리
파이썬에는 「건전지 포함("Battery Included")」이란 기본 개념이 있어, 프로그래머가 바로 사용할 수 있는 라이브러리와 통합 환경이 이미 배포판과 함께 제공된다. 이로써 파이썬의 표준 라이브러리는 매우 충실하다. 여기에는 정규 표현식을 비롯해 운영 체제의 시스템 호출이나 XML 처리, 직렬화, HTTP ,FTP 등의 각종 통신 프로토콜, 전자 메일이나 CSV 파일의 처리, 데이터베이스 접속, 그래픽 사용자 인터페이스, HTML, 파이썬 코드 구문 분석 도구 등을 포함한다.
서드파티 라이브러리도 풍부하며, 행렬 연산 패키지 뉴메릭 파이썬(Numeric Python)이나 이미지 처리를 위한 파이썬 이미징 라이브러리(Python Imaging Library), SDL 래퍼인 파이게임(PyGame) 등은 잘 알려져 있다. 다만, 가장 낮은 수준의 라이브러리까지 포함하면 너무 많아서 감당하기 쉽지 않으므로, 최근 파이썬 패키지 인덱스, 곧 PyPI (Python Packages Index)로 불리는 라이브러리의 저장소(repository)를 관리하는 기구를 새롭게 도입하게 되었다.
출처 : https://ko.wikipedia.org/
파이썬 버전 : 2.X 와 3.X
1. 사전형과 문자열형과 같은 내장자료형의 내부적인 변화 및 일부 구형의 구성 요소 제거
2. 표준 라이브러리 재배치.
예)
print - 파이썬 3 버전은 출력할 문자열에 괄호를 필요로 한다.
파이썬 3 버전의 예
print ("Hello Python")
파이썬 2.7 버전의 예
print "Hello Python"
줄바꿈 방지
print 문 실행 시 항상 문자열 마지막에 \n 문자가 출력되어 줄바꿈이 일어나게 된다.
이렇게 마지막 문자인 \n을 생략할 수 있는 방법이 있는데 이것또한 파이썬 3 버전과 파이썬 2.7 버전이 서로 다르다.
파이썬 3 버전의 예
print ("No new line", end=" ");print ("ok?")
파이썬 3 버전의 경우 줄바꿈 문자를 제거하기 위해서 위와 같이 끝 문자를 지정할 수 있는 end 파라미터를 설정하면 된다.
지정하지 않으면 디폴트로 \n 문자가 세팅된다.
파이썬 2.7 버전의 예
print "No new line",;print "ok?" - 줄바꿈 문자를 제거하기 위해서 문자열의 끝에 콤마(,)를 덧불이면 된다.
자동 형 변환
파이썬 3의 경우 숫자연산 시 자동으로 형 변환이 된다.
파이썬 3 버전의 예
>>> 3 / 4
0.75
파이썬 2.7 버전의 예
>>> 3 / 4
0
>>> 3 / 4.0
0.75
input
파이썬 3 버전의 input 내장함수와 파이썬 2.7버전의 raw_input 내장함수는 동일하다.
기존 파이썬 2.7의 input 내장함수는 파이썬 3부터는 더이상 지원되지 않는다.
파이썬 3 버전의 예
>>> name = input("이름을 입력하세요:")
파이썬 2.7 버전의 예
>>> name = raw_input("이름을 입력하세요:")
소스코드 인코딩
파이썬 3 버전부터는 utf-8이 기본 소스코드 인코딩이므로 다음과 같은 문자열을 소스코드 첫줄에서 생략할 수 있다.
# -*- coding: utf-8 -*-
하지만 utf-8 이 아닌 다른 형태의 소스코드 인코딩을 사용해야 할 경우에는 해당 인코딩을 명시해야 한다.
하지만 파이썬 2.7 버전은 무조건 위와 같은 문자열을 소스코드 첫 줄에 명시해야만 인코딩 오류가 발생하지 않는다.
에러처리
try ... except... 에러 처리 시 에러 변수명을 표기하는 방식이 파이썬 버전 3과 버전 2.7이 서로 다르다.
파이썬 3 버전의 예
try:
4 / 0
except ZeroDivisionError as e:
print(e)
파이썬 2.7 버전의 예
try:
4 / 0
except ZeroDivisionError, e:
print e
에러변수 설정 시 파이썬 3 버전은 as를 2.7 버전은 콤마(,)를 사용한다.
출처: https://mtgl.tistory.com/1 [사는이야기]mtgl.tistory.com/1