이번 챕터에서는 제어문을 알아보자.
제어문에는 크게 조건문 / 반복문 이 있음.
1. 조건문 IF
: 특정 조건을 만족할때 특정 코드를 실행함
if 특정조건 :
_ _ _ _ 수행코드
(if 뒤에 조건문을 쓰고 : 을 입력)
(임의로 공백을 _ 로 표시했다)
(수행코드앞에는 4칸 들여쓰기가 필요)
elif 특정조건 :
_ _ _ _ 수행코드
( if 조건문이 거짓인 경우
다른조건문을 삽입하려면 elif를 사용)
else :
_ _ _ _ 수행코드
(모든 조건문을 만족하지 않는
나머지에 코드를 수행하려면 else 사용)
예시)
#if : 조건을 만족할때 특정 코드를 실행
#: if 조건식 이후 ':(콜론)'을 입력
# 다음줄에서 들여쓰기(4칸) 후 참일시 수행코드를 입력
# jupyter notebook에서는 ':' 이후 enter키 실행시 자동 들여쓰기(4칸) 들어감
#else : if 조건문이 거짓일 경우 수행코드를 입력
# 다음줄에서 들여쓰기(4칸) 후 if 조건식이 거짓일시 수행코드를 입력
#elif : if조건문에서 거짓인 경우에서 또다른 조건을 추가 가능
#------------- 1 ---------------
x=int(input("x= "))
if x>10:
print("x는 10보다 큼")
elif x>5:
print("x는 5보다 크고 10보다 같거나 작음")
else:
print("x는 5보다 같거나 작음")
x=float(input("x (자연수만 입력)= "))
#------------- 2 ---------------
if (x%2) ==1:
print("x는 홀수")
else:
print("x는 짝수")
x=float(input("x (정수만 입력)= "))
#------------- 3 ---------------
if x==0:
print("x는 0")
elif x<0:
print("x는 음수")
else:
print("x는 양수")
x=int(input("나이 : "))
#------------- 4 ---------------
if (x<0) or (x>150):
print("잘못 입력하셨습니다.")
else:
x=int(x)
print(f"당신의 나이는 {x} 살 입니다.")
#------------- 5 ---------------
#comparision chaining (and 하지 않고 구간설정 가능)
x=int(input("나이 : "))
if 0<x<150 :
print(f"당신의 나이는 {x} 살 입니다.")
else:
print("잘못 입력 했습니다.")
결과값)
#------------- 1 ---------------
x= 7
x는 5보다 크고 10보다 같거나 작음
#------------- 2 ---------------
x (자연수만 입력)= 52
x는 짝수
#------------- 3 ---------------
x (정수만 입력)= 91
x는 양수
#------------- 4 ---------------
나이 : -30
잘못 입력하셨습니다.
#------------- 5 ---------------
나이 : 60
당신의 나이는 60 살 입니다.
2. 반복문 for
: 특정 코드를 변수값을 지정 하여 반복함
for 변수명 in 집합(반복 변수값) :
_ _ _ _ 반복코드
(for 뒤에 변수명,
in뒤에 반복할 변수값을 쓰고 : 을 입력)
(임의로 공백을 _ 로 표시했다)
(반복코드앞에는 4칸 들여쓰기가 필요)
(집합의 개념은 다음챕터에 설명..리스트,튜플등)
for 변수명 in range ( a,b,c ) :
_ _ _ _ 반복코드
( range() : 수의 집합을 생성하는 내장함수)
(range(a,b,c)는 a ~ b-1 까지의 숫자 리스트
c는 숫자 간격)
for 변수명 in 집합 :
_ _ _ _ for 변수명 in 집합 :
_ _ _ _ 반복코드
( for 반복문을 중첩해서 반복도 가능)
(상위 for 문 을 한 번 실행할때마다
하위 for문을 매 번 반복 수행한다)
예시)
#for Loop: 집합 기반의 반복
#집합 (리스트,튜플,세트.. 나중에 설명)
for x in["yaong","nyaong","kku"]:
print(f" hi~ {x} !")
for x in "abc":
print(x)
for x in [1,4,5,6]:
print(x," sec")
# range : 수의 집합을 생성하는 내장함수
# range(a,b,c) >> a<= , <b , [a,a+c,a+2c, ..... , b-c]
# c=1 일경우 생략가능
# a=0 일경우 생략가능
# 정수만 가능
for x in range(0,3):
print(x)
for x in range(0,5,2):
print(x)
for x in range(0,9,2):
print(x,end=" ")
x=int(input("2~9 정수입력 : "))
print(f"{x}단 구구단")
for y in range(1,9):
print(f"{x} x {y} = {x*y}")
# 중첨 for 문
print("xy")
for x in['a','b']:
for y in['c','d','f','g']:
print(x,y)
for a in range(3):
print(a, "->",end=" ")
for b in range(4):
print(b, end=" ")
print ( ) # 여기서 print( ) 는
# 상위 for문 수행후 줄바꿈을 위해
# 하위 for문 수행후 공백을 출력함
결과값)
hi~ yaong !
hi~ nyaong !
hi~ kku !
a
b
c
1 sec
4 sec
5 sec
6 sec
0
1
2
0
2
4
0 2 4 6 8
2~9 정수입력 : 3
3단 구구단
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
xy
a c
a d
a f
a g
b c
b d
b f
b g
0 -> 0 1 2 3
1 -> 0 1 2 3
2 -> 0 1 2 3
연습문제 ) 중첩 루프를 사용해서
아래와 같은 트리모양을 출력해 보세요.
_ _ _ _*
_ _ _ * * *
_ _ * * * * *
_ * * * * * * *
* * * * * * * * *
(임의로 공백을 _ 로 표시함)
풀이)
# 먼저 반복되는 규칙을 찾아보면
# 5번의 줄바꿈, 별표가 1,3,5,7,9개
# 띄어쓰기가 역순으로 4~0개
for x in range(5):
#줄바꿈 x = [0,1,2,3,4] 반복
for y in range(4-x):
#띄어쓰기 y , x=0 일때 4,
# x=1일때 3 ...
print (" ",end="")
for z in range(2*x+1):
#별표 z, x=0 일때 1,
# x=1 일때 3..
print("*",end="")
print( )
# 줄바꿈
3. 반복문 while
: 조건식이 참인 경우 무한 반복
while 조건식 :
_ _ _ _ 반복코드
(조건이 만족할 동안 무한반복)
(while True :조건없이 무한반복 실행)
※ break
: 반복을 즉시 중단하고 탈출하는 키워드
※ continue
: 반복을 즉시 중단하고 그 다음 반복을 수행
예시)
n=0
while n<3 :
n+=1
# n=n+1 과 같음 n이 1씩증가
print("jjang")
n=0
while True:
if n == 3:
break
print(n)
n += 1
n=0
while True:
n+= 1
if n>10:
break
if n%2 !=0:
print(n,"홀수")
continue
결과값)
jjang
jjang
jjang
0
1
2
1 홀수
3 홀수
5 홀수
7 홀수
9 홀수
'Python' 카테고리의 다른 글
8. Python - 튜플, 세트, 딕셔너리 (0) | 2021.09.17 |
---|---|
7. Python - 리스트 (0) | 2021.09.17 |
5. Python - 입출력 (0) | 2021.09.16 |
4. Python - 변수 (0) | 2021.09.15 |
3. Python - 연산자 (0) | 2021.09.14 |
댓글