이 글은 '열혈강의 Python 개정판ver.2'를 참고로 작성하였습니다.
'열혈강의 Python 개정판ver.2' 이강성저 프리렉
RaspberryPI에 Raspbian을 사용하였습니다.
파이썬 제어문
파이썬은 들여쓰기에 민감한 언어입니다.
엄격한 들여쓰기 규칙은 처음엔 적응하기 어렵지만
보기 쉽고 깔끔한 코드가 됩니다.
들여쓰기 규칙
1) 가장 밖에 있는 블록은 1열부터 시작해야한다.
>>> a=1
>>> a=1
File "<stdin>", line 1
a=1
^
IndentationError: unexpected indent
2) 내부블록은 같은거리만큼 들여써져야한다.
#file : test2.py def a(): a=1 b=2 def b(): c=1 d=2 |
>>>import test2 Traceback(most recenet call last): File "<stdin>", line 1, in <module> File "test2.ㅔㅛ", line 7 d=2 ^ IndentationError: unexpected indent |
d를 한칸 더 들여쓰니 오류가 납니다.
내부블록은 같은 거리만큼 들여써야합니다.
3) 블록의 끝은 들여쓰기가 끝나는 부분으로 간주된다.
#file : test2.py
def a():
a=1
b=2
def b():
c=1
d=2
a함수의 들여쓰기가 끝나는
def b()라인 이전까지가 a함수의 끝이됩니다.
4) 탭과 공백을 같이쓰는것은 좋지 않다.
에디터마다 탭의 길이가 차이가 있어혼동이 발생할 수 있습니다.
만약 코드에 문제가 없는데 에러가 난다면
들여쓰기의 문제 일 수 있습니다.
함수
함수는 여러 코드를 하나의 이름으로 묶은 단위입니다.
def 함수명(매개변수):
....
아래와 같이 사용할 수 있습니다.
def add(a, b=10):
print 'a='+str(a)+', b='+str(b)
return a+b
def sub(a, b=10):
print 'a='+str(a)+', b='+str(b)
return a-b
>>> add(11,12)
a=11, b=12
23
>>> add(a=10, b=20)
a=10, b=20
30
>>> add(b=10, a=20)
a=20, b=10
30
키워드인수를 지정하여 값을 전달해주면,
순서와 관계없이 전달 할 수 있습니다.
if문
if문은 다음과 같은 구조를 이룹니다.
if 조건식1:
...
elif 조건식2:
...
else:
...
아래 처럼 사용 할 수 있습니다.
order=raw_input("order? ")
if order == 'spam':
price = 500
elif order == 'ham':
price = 600
elif order == 'spagetti':
price = 1000
else:
print 'wrong input'
print order + ' is ' + str(price)
for문
for문의 구조는 다음과 같습니다.
for 타겟 in 객체:
...
else:
...
else 블럭은 for문의 모든 루프가 정상정으로 다 끝날경우 수행됩니다.
만약 break를 이용해 끝낼경우 else블럭은 수행되지 않습니다.
for x in range(1,5):
print x
else:
print 'else block'
print 'done \'for\''
위와 같은 코드가
아래와 같이 출력됩니다.
print 메서드는 자동 줄바꿈을 합니다.
이를 방지하려면 print라인끝에 콤마(,)를 사용해 주시면됩니다.
for x in range(1,5):
print x,
else:
print 'else block'
print 'done \'for\''
>>> import test4
1 2 3 4 else block
done 'for'
또한 다른 언어처럼 중첩사용이 가능합니다.
for x in range(2,3):
for y in range(2,10):
print x, '*', y, '=', x*y
else:
print 'Multiplication table:2 end'
>>> import test5
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
Multiplication table:2 end
for 문 안에서 continue와 break를 사용할 수 있습니다.
continue는 이후의 부분을 수행하지않고
시작으로 넘어갑니다.
break는 for문을 중단하는 역할을 합니다.
for x in range(10):
if x < 6:
print 'continue'
continue
elif x ==8:
print 'break'
break
print x,
print 'done'
>>> import test6
continue
continue
continue
continue
continue
continue
6 7 break
while문
while문의 구조는 다음과 같습니다.
while 조건식:
...
else:
...
while문도 for문처럼
continue와 break를 사용 할 수있습니다.
아래와 같이 사용합니다.
a=0
while a < 10:
a=a+1
if a < 3: continue
if a > 10: break
else:
print 'else block'
print 'done while'
>>> import test7
else block
done while
'Python' 카테고리의 다른 글
파이썬 연산자 (0) | 2014.12.29 |
---|---|
파이썬 수치자료형 (0) | 2014.12.25 |
파이썬 메모리 관리 (0) | 2014.12.23 |
파이썬 기본 자료형 (0) | 2014.12.22 |
파이썬 기본 문법 (0) | 2014.12.22 |
댓글