이 글은 '열혈강의 Python 개정판ver.2'를 참고로 작성하였습니다.
'열혈강의 Python 개정판ver.2' 이강성저 프리렉
RaspberryPI에 Raspbian을 사용하였습니다.
파이썬 기본 문법
변수이름 규칙
파이썬의 변수명 규칙은 다른언어와 크게 다르지 않습니다.
또한 대소문자를 구분합니다.
[a-zA-Z_][a-zA-Z0-9]*
위의 정규식으로 표현될수 있습니다.
간단히 풀어보자면 아래와 같습니다.
1. 특수문자를 쓸수 없고
2. '_'로 시작할 수 있습니다.
3. 숫자로 시작 할 수 없습니다.
4. 길이 제한이 없습니다.
5. 대소문자 구별을 합니다.
6. 예약어는 변수명으로 사용할 수 없습니다.
가능한 변수명의 예(모두 다른 변수)
_hong
hong
Hong
hong1
불가능한 변수명
0hong
#hong <- 주석
else <- 예약어
예약어를 확인 하는 방법은 아래와 같습니다.
>>>import keyword
>>>keyword.kwlist
또한 변수명을 만들때 주의할 점이 있습니다.
내장함수의 이름과 같은 이름을 사용할때 입니다.
>>> str(1234) #정수를 문자열로 바꿔줍니다.
'1234'
>>> str = 'abc'
>>> str(1234)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
위의 상황처럼
변수가 함수이름을 덮어버려 함수를 사용할 수 없게 됩니다.
주석문
주석문은 '#'으로 시작됩니다.
#이후의 해당인에서 모든 문자는 주석문이 됩니다.
>>>#주석
>>>import sys #sys주석입니다.
같이 사용됩니다.
연속라인
>>> if(a==10) and\
... (b==3):
... print 'connected lines'
>>> aNum=1
>>> type(aNum)
<type 'int'>
>>> aNum='aNum'
>>> type(aNum)
<type 'str'>
C 언어에서보았던 연산자들도 사용가능합니다.
+=, -=, *=, /*, %=, &=, |=, ^=, <<=, >>=, **=
문자열로된 파이썬코드 실행
eval()
문자열로된 파이썬 식을 실행해줍니다.
>>> a = '1+2'
>>> type(a)
<type 'str'>
>>> a
'1+2'
>>> eval(a)
3
위에서 보신것 처럼 eval()은 함수나 식(expression)을 수행합니다.
문(statement)을 수행하기 위해서는 exec를 사용합니다.
식 -> a+1
문 -> a=a+1
eval('a=1+2')
위의 eval에 문을 넣으면 오류가 발생하지만
이를 수행하기 하려면 exec를 사용합니다.
exec('a=1+2')
>>> eval('a=1+2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
a=1+2
^
SyntaxError: invalid syntax
>>> exec('a=1+2')
>>>
exec는 여러 개의 문을 수행할 수도 있습니다.
>>> statement='''
... a=1
... if a>0:
... print 'Success'
... '''
>>> exec(statement)
Success
>>>
콘솔 입출력
raw_input을 사용해 문자열을 입력 받을 수 있습니다.
>>> name = raw_input('name?')
name?홍
>>> print name
홍
>>>
식을 처리하여 넘겨 줄 수 있습니다.
>>> result=input('expr:')
expr:10+aNum
>>> result
21
>>>
대화식 출력에서는 변수명만 입력하면 print방식으로 출력이 됩니다.
이를 pprint방식으로 출력하려면 displayhook를 설정하면 됩니다.
>>> import sys, pprint
>>> complicated
['iphone', (1, 2, 3), ('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv'))), 'iphone', (1, 2, 3), ('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv'))), 'iphone', (1, 2, 3), ('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv')))]
>>> sys.displayhook=pprint.pprint
>>> complicated
['iphone',
(1, 2, 3),
('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv'))),
'iphone',
(1, 2, 3),
('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv'))),
'iphone',
(1, 2, 3),
('galaxy', 'smart', ('a', 'b', ('asdf', 'zxcv')))]
>>>
'Python' 카테고리의 다른 글
파이썬 수치자료형 (0) | 2014.12.25 |
---|---|
파이썬 제어문 (0) | 2014.12.23 |
파이썬 메모리 관리 (0) | 2014.12.23 |
파이썬 기본 자료형 (0) | 2014.12.22 |
파이썬 시작하기! (0) | 2014.12.22 |
댓글