파이썬의 기본문형
- 예약어
다른언어를 공부해 보신분들은 아시겠지만 프로그래밍 언어에는 예약어가 있습니다. 예약어는 키워드라고도 하며, 이미 문법적인 용도로 사용되고 있기때문에 변수등의 식별자로 사용하면 안되는 단어들을 뜻합니다.
파이썬의 버전에 따라 예약어의 종류와 수가 다릅니다. 저는 ipyton 2.7.11 버전을 사용하고있는데, 2.7.11 버전은 31개의 예약어가 있습니다.
아래 코드는 예약어를 출력하고, 예약어가 저장된 리스트 즉, 예약어의 수를 알아보는 코드입니다. #은 주석입니다.
import keyword # keyword 모듈을 불러옴
print keyword.kwlist # keyword모듈이 지원하는 kwlist를 출력
print len(keyword.kwlist) # 예약어가 저장된 리스트의 길이 출력
아래 그림을 보면 위에서 사용한 print함수, import 또한 예약어라는걸 확인 할 수 있습니다. 추가로 len함수는 특정 모듈을 import하지 않고도 사용할 수 있는 내장 함수입니다.
- 내장 함수
1) abs(x) : 수치형 자료 x의 절대값을 반환하는 함수
2) max(s) : sequence자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 값중 가장 큰 값을 반환하는 함수
- print max("pyton") -> 아스키 코드가 가장 큰 y 반환
- print max([1,2,3]) -> 리스트에서 가장 큰 3 반환
3) min(s) : max()의 반대로 가장 작은 값을 반환하는 함수
4) pow(x,y) : a의 b승을 반환하는 함수
- print pow(2,4) -> 16
- print pow(2,-1) -> 0.5
5) divmod(x,y) : x를 y로 나눈 몫과 나머지를 반환하는 함수
- print divmod(5,2) -> 2,1
5) chr(x) : 아스키 코드 값을 문자로 변환해주는 함수
- print chr(97) -> a
- print chr(65) -> A
- print chr(48) -> 0(숫자 0이아닌 문자0)
6) str(object) : 임의의 객체 object에 대해 해당 객체를 표현하는 문자열을 반환하는 함수
- print str(3) -> 3
- print str([1,2,3]) -> [1,2,3]
7) range([start],stop,[step]) : 수치형 자료형으로 start, stop, step등을 입력 받아 해당 범위에 해당하는 정수를 리스트로 반환하는 함수
- 인수가 하나인 경우(stop) : 0부터 stop-1까지의 정수 리스트 반환
print range(10) -> [0,1,2,3,4,5,6,7,8,9]
- 인수가 두개인 경우(start, stop) : 0부터 stop-1까지의 정수 리스트 반환
print range(3,10) -> [3,4,5,6,7,8,9]
- 인수가 하나인 경우(start, stop, step) : 0부터 stop-1까지의 정수리스트를 반환 하되, step인것들만 반환
print range(1,10,2) -> [1,3,5,7,9] # 각 원소가 step만큼 차이가 남
8) type(a) : a의 자료형을 반환하는 함수
- print type(1) -> int(정수형)
- print type(1.5) -> float(실수형)
- print type('abc') -> str(문자형)
- print type([1,2,3,4]) -> list(리스트)
- 식별자
- 변수
a=1
변수의 삭제는 del이라는 예약어를 사용합니다.
a=1
- 기초 문형
a=1
b=3
if(a==1) and \
b(==3) :
print 'connected lines'
반대로 한 라인에 두문장을 이어서 쓸때는 세미콜론(;)을 사용합니다. 코드의 가독성 때문에 잘 사용하지 않는다고 합니다.
a=1 # o
b=a # o
1+3=c # x
d=1+3 # o
그렇다면, a=(b=c+d)도 가능할까요?
위의 식은 불가능합니다. b=c+d는 식(Expression)이아니라 문(Statement)이기 때문입니다.
아래의 형태로도 할당이 가능합니다.
c,d = 3,4 처럼 한번에 할당도 가능 c->3, d->4
x=y=z=0 처럼 할당이 가능한데, 이때 오른쪽 항부터 연산이 진행됩니다.
z=0 -> y=z -> x=y
a=3
b=4
a,b=b,a
a=10 # a에 10을 할당하고
a *= 2+3 # 2+3를 먼저 연산해서 a에 5를 곱한 값인 50을 저장하고
print a # 50을 출력합니다.
a=[1,2,3]
b=[10,a,30]
c=['x',a,'z']
print a
print b
print c
결과는 아래 그림과 같습니다. 처럼 b,c리스트 안에 a리스트가 출력됩니다.
위 코드는 아래의 그림처럼 a가 [1,2,3]리스트를 가리키고, b,c에서도 a를 가리켜서 결국에는 [1,2,3]리스트를 가리킵니다.
콘솔 입·출력
name = raw_input('your name : ') # raw_input함수로 입력을받아 name변수에 저장
아래 그림과같이 your name : 이라는 문자열이 출력되고 뒤에 입력할 수 있는 부분에 이름을 입력하면 name이라는 변수에 저장해서 name을 출력한 결과입니다.
추가적으로 내장 함수중에 int()함수가 있습니다. int()함수는 문자열을 정수로 변환하는 함수입니다.
raw_input함수를 통해 정수를 입력받고 2를 더하는 코드를 작성했습니다. 정상적으로 실행이 될까요?
a = raw_input('input : ')
아래와 같이 문자형과 정수형 객체는 연결할 수 없다는 오류가 출력됩니다. raw_input 함수는 입력 값을 문자형으로 인식한다는 걸 알 수 있습니다.
이 때, 사용하는게 int()함수입니다. int함수를 사용해서 코드를 재구성 하고 실행하면 정상적으로 출력이됩니다.
a = int(raw_input('input : ')) #raw_input 함수를 int 함수의 인자로 사용
print a+2
a=input('input : ') # 따로 int함수를 사용하지 않아도 정수를 입력하면 정수형으로 인식합니다.
print a+10
문자열을 입력하는 경우, 입력할 때 따옴표를 써줘야 오류가 발생하지 않습니다.
a=input('input : ')
print a
print 1
(결과)
print 1, 2
(결과)
print 5+5, 4*9
10 36
print 2+'AM'
print '2'+'AM'
'언어 > Python' 카테고리의 다른 글
[파이썬] 각종 연산자 (0) | 2017.01.21 |
---|---|
[파이썬] 내장 자료형 - 리스트, 튜플, 사전 (0) | 2017.01.19 |
[파이썬] 수치형 자료형과 문자열 자료형 (0) | 2017.01.16 |
[파이썬] 개발환경 구축(설치) (0) | 2016.12.12 |
[파이썬] 스크립트언어와 파이썬 (0) | 2016.12.07 |