if문
if 조건식1:
<문들1>
elif 조건식2"
<문들2>
else :
<문들3>
score = 90
if score >= 90:
print "Congraulation!!!"
a=10
if a>5
print "Big"
else :
print "Small"
a=10
if a>5: print "Big"
else : print "Small"
n=-2
if n>0:
print "Positive"
elif n<0 :
print "Negative"
else :
print "Zero"
order ="spagetti"
if order =="spam":
print =500;
elif order == "ham":
print =700
elif order =="egg":
price =300
elsf order =="speagetti":
price=900
order="spagetti"
menu={"spam":500,"ham":700, "egg":300,"spagetti":900}
price=menu[order]
위 2개의 결과는 같다.
들여쓰기와 제어문
- 가장 바깥쪽에 있는 블록의 코드는 반드시 1열부터 시작해야한다.
a=1
a=1 #실패
- 내부블록은 같은 거리 만큼 들여쓰여져야한다.
if a>1
print 'big'
print 'really?'
- 블록의 끝은 들여쓰기가 끝나는 부분으로 간주된다.
{}나 begin나 end등으로 블록을 구분하지 않고 들여쓰기만으로 구분한다.
- 탭과 공백을 섞어서 쓰는 것은 좋지 않다.
보는것과 인식하는 것은 다르다.
- 들여쓰기 간격은 일정하기만 하면 된다. 2,3,4칸 일정하면 자동으로 감지한다. 일반적으로 사용되는 공백의 수는 4혹은 8이다.
10진법을 10진법 이하의 진법으로 바꾸는 소스 (들여쓰기 보자)
def int2digit(n,base):
return res=''
while n>0:
n,r=divmod(n,base)
res='r'+res
for문
for<타켓> in <객체>:
<문1>
else:
<문2>
- 루프문을 정상적으로 다 끝내고 else로 간다.
a=["cat","cow","tiger"]
for x in a:
print len(x), x
3 cat
3 cow
5 tiger
for x in [1,2,3]:
print x, # , 사용이유 - 줄넘기 방지
- 순차적으로 숫자를 반복할 경우에는 range함수를 이용한다.
range(10)
[0,1,2,3,4,5,6,7,8,9]
for x in range(10):
print x,
- 1부터 10까지의 합을 구하는 예
sum = 0
for x in range(1,11):
sum=sum+x
print sum
- 1부터 10까지 곱
prod=1
for x in range(1,11):
prod=prod*x
prod
- for 문을 이용할때, 요소의 값뿐만아니라 인덱스 값도 함께 필요하면 enumerate()내장함수 이용
- enumerate()내장함수는 인덱스.요소,값 튜플자료를 반복적으로 넘겨준다.
L=["cat","dog","bird","pig","spam"]
for k, animal in enumerate(L):
print k, animal
L=range(10)
L
for k , ele in enumerate(L):
L[k]=ele+1
L
- break 이용
for x in range(10):
is x>3: break
print x
print 'done'
for x in range(10):
if x<8 : continue # x<8이면 for문으로 다시 올라간다.
print x
print 'done'
for x in range(10):
print x,
else:
print 'else block'
print 'done'
for x in range(10):
break
print x,
else:
print "else block"
print "done"
for x in range(2,4):
for y in range(2,10):
print x, '*', y, '=',x*y
while문
while <조건식>:
<문1>
else:
<문2>
- 조건이 거짓이라면 else문 수행
count=1
while count <11:
print count
count=count+1
sum=0
a=0
while a<10:
a=a+1
sum=sum+a
print sum
a=0
while a<10:
a=a+1
if a<3:coutinue
if a>10 : break
else:
print 'else block'
print 'done'
a=1
a=2
a=3 -->coutinue
a=4 ...
a=8
a=9
a=10 --> while문 조건 반대 else 수행
- while문은 조건 안될때 수행된다!