본문 바로가기
Python

6. Python - 제어문 (조건문, 반복문)

by 짱냐옹이 2021. 9. 17.
반응형

이번 챕터에서는 제어문을 알아보자.

  제어문에는 크게 조건문 / 반복문 이 있음.

 

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

댓글