PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

3. 제어문 (조건문, 반복문)

페이지 정보

작성자 관리자 댓글 0건 조회 3,919회 작성일 18-09-12 21:08

본문

3. 제어문 (조건문, 반복문)

 

제어문 (조건문, 반복문)


''' 제어문 (조건문, 반복문) : 프로그램의 흐름을  제어를 해서 효율적으로 이용하기 위한 명령문
  조건문 : if문
  반복문 : while, for문
  

  if 문 기본 구조

  if <조건문>:
      <실행할 명령문 1>
      <실행할 명령문 2>
   .......
  else :
      <실행할 명령문 1>
      <실행할 명령문 2>
   .......
 

 [indentation(들여쓰기)]

 if문을 작성할 때는 조건문 다음에 들여쓰기를 해줘야 한다.
 
 다른 언어에서는
  if <조건문>
  {  <---- 파이썬에서는 들여쓰기로 대체
  <실행할 명령문1>
  <실행할 명령문2>
  <실행할 명령문3>
  }else{
  <실행할 명령문1>
  <실행할 명령문2>
  <실행할 명령문3>
  }
  **
  if <조건문> 다음에 반드시 ':' 와야 한다. ':' 다음에는 들여쓰기를 한다.
 
'''
number = 1; # 일반적으로 파이썬에서는 문장 끝에 ';' 생략하고 사용한다.
print (number);
if number:
    print("0이 아니다")
else:
    print("0이다")



그림입니다.
원본 그림의 이름: mem000037c86161.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel



비교 연산자


'''
< : x <y --- x는 y보다 작다
> : x> y --- x는  y보다 크다
== : x==y --- x와 y는 같다
!= : x!=y ---x와 y는 서로 다르다
>= : x>=y ---x는 y보다 크거나 같다
<= : x<=y ---x는 y보다 작거나 같다
'''
x =100
y = 1000
print(x>y)
print(x!=y)



그림입니다.
원본 그림의 이름: mem000037c80001.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel


논리 연산자 (and , or , not),in 연산자


''' 논리 연산자 (and , or , not)
x and y : x와  y가 모두 참일 때 참
x or y : x와 y 둘중에 하나만 참일때 참
not x : x가 참이면 거짓
** in 연산자
x in 리스트, x not in 리스트, x in 튜플, x not in 튜플, x in 문자열, x not in 문자열
'''
print("a" in ["a", "b", "c"])
print("a" not in ["a", "b", "c"])
"a" in ("a", "b", "c")
print("a" in "abcd")



이중 if문


aa = ["a", "b"]
flag = 1
if 'c' in aa:
    print("a를 가지고 있습니다")
else:
    if flag:
        print("a를 가지고 있습니다")
    else:
        print("a를 가지고 있지 않습니다")
#elif (다른 언어에서의 else if 와 같다)
if 'c' in aa:
    print("c를 가지고 있습니다")
elif 'a' in aa:
    print("a는 가지고 있고, c는 가지고 있지 않습니다")
else:
    print("a와 c가 aa에 없습니다")


그림입니다.
원본 그림의 이름: mem000037c80003.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel


다중 if문의 구조


''' 다중 if문의 구조 (다른언어의 switch case문과 비슷한 구조)
if <조건문>:
 <실행할 명령문 1>
 <실행할 명령문 2>
 .....
elif <조건문>:
 <실행할 명령문 1>
 <실행할 명령문 2>
 ....
elif <조건문>:
 <실행할 명령문 1>
 <실행할 명령문 2>
 ....
...
else:
 <실행할 명령문 1>
 <실행할 명령문 2>
 ...
** pass
'''

aa = ["a", "b"]
dd = "d"
if dd in aa:
    pass
else:
    print(dd+"는 없습니다")



그림입니다.
원본 그림의 이름: mem000037c80004.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel


dd = "d"
pp = ["a", "b", "c"]
# if문을 단일 문으로 처리하는 예
if dd in pp: pass
else: print("없습니다")



그림입니다.
원본 그림의 이름: mem000037c80005.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel



for문의 기본구조


''' for문
 for문의 기본구조
 for 변수 in 리스트(튜플, 문자열):
  <실행할 문장1>
  <실행할 문장2>
  ...
'''
list1 = ['a', 'b', 'c']
for i in list1:
    print(i)



그림입니다.
원본 그림의 이름: mem000037c80006.tmp
원본 그림의 크기: 가로 538pixel, 세로 187pixel



jumsu = [90, 50, 60, 45, 80] #1번부터 5번까지의 학생의 시험점수
number = 0
for i in jumsu:
    number = number +1
    if i >= 60: print("%d번 학생의 점수는 %d 점으로 합격되었습니다...!!" %(number, i))
    else: print("%d번 학생의 점수는 %d 점으로 불합격되었습니다...!!!" %(number, i))



그림입니다.
원본 그림의 이름: mem000037c80007.tmp
원본 그림의 크기: 가로 538pixel, 세로 253pixel



continue


# continue
jumsu = [90, 50, 60, 45, 80] #1번부터 5번까지의 학생의 시험점수
number = 0 # number 값을 0으로 초기화한다.
for i in jumsu:
    number = number +1
    if i <60: continue
    print ("%d 번 학생 합격입니다" % number)



그림입니다.
원본 그림의 이름: mem000037c80008.tmp
원본 그림의 크기: 가로 538pixel, 세로 213pixel



aa = [('a', 'b'), ('c', 'd'), ('e', 'f')]
for (i, j) in aa:
    print(i+j)



그림입니다.
원본 그림의 이름: mem000037c80009.tmp
원본 그림의 크기: 가로 538pixel, 세로 213pixel




for i in range(2,10):
    for j in range(1, 10):
        print(i*j, end=" ") 
    print(' ')



그림입니다.
원본 그림의 이름: mem000037c8000a.tmp
원본 그림의 크기: 가로 538pixel, 세로 321pixel


for문과 range 함수


''' for문과 range 함수
 - range 함수는 두개, 세개의 숫자를 이용하는 함수이다.
   숫자가 두개인 경우 1씩 증가하는 숫자의 리스트를 반환한다.
   숫자가 세개인 경우 세번 째 숫자는 증가치를 의미한다.
  
   사용예> range(1,5) ---> 리스트 [1,2,3,4] 반환한다.
              range(1,5,2) ---> [1,3] //2씩 증가 시킨다.
     ** 주의: 두번째 숫자 이하가 아니라 미만 까지만 반환을 한다.
''’


for i in range(1,10):
    print (i)
else: 
    print("반복문 종료")
# 반복문에서 else절은 루프를 다돌고 난뒤에 항상 수행한다. break문을 사용했을 경우에는 수행되지않는다.


그림입니다.
원본 그림의 이름: mem000037c8000b.tmp
원본 그림의 크기: 가로 538pixel, 세로 374pixel



c언어에 for문과 파이썬의 for문의 차이


''' c언어에 for문과 파이썬의 for문은 근본적으로 다르다.
   파이썬의 for문은 C# foreach루프 비슷하고, java의 for(int i : IntArray) 비슷하다.
   c언어에서 for(int i = 0; i< 5: i++) 과
   같이 파이썬에서 표현을 한다면
   for i in range(0,5)와 같이 표기할 수 있다.
'''

[range 함수를 이용해서 구구단 출력하기 ]

for i in range(2,10):
    for j in range(1,10):
        print("%d*%d=%d" %(i,j,i*j), end=" ")
    print(" ")



그림입니다.
원본 그림의 이름: mem000037c8000c.tmp
원본 그림의 크기: 가로 538pixel, 세로 323pixel



# 리스트안에 for문을 이용하여 프로그램 해보기
aa = [1,2,3,4,5,6,7,8,9]
gugudan_2 = []
for i in aa:
    gugudan_2.append(i*2)
 print(gugudan_2)



그림입니다.
원본 그림의 이름: mem000037c8000d.tmp
원본 그림의 크기: 가로 538pixel, 세로 163pixel


aa = [1,2,3,4,5,6,7,8,9]
gugudan_2 = [i*2 for i in aa]
print(gugudan_2)



그림입니다.
원본 그림의 이름: mem000037c8000e.tmp
원본 그림의 크기: 가로 538pixel, 세로 163pixel


# 5단의 결과값 중에서 짝수만 리스트에 추가하는 예
aa = [1,2,3,4,5,6,7,8,9]
gugudan_5 = [i*5 for i in aa if i %2 == 0]
print (gugudan_5)



그림입니다.
원본 그림의 이름: mem000037c8000f.tmp
원본 그림의 크기: 가로 538pixel, 세로 163pixel



리스트 내포(List comprehension)의 기본적인 구조


''' 리스트 내포(List comprehension)의 기본적인 구조
  1) [ 표현식 for 항목 in 반복가능한 객체 if 조건 ]
      위에서 if조건은 생략이 가능하다.
  2) [표현식 for 항목1 in 반복가능한객체1 if 조건1
                for 항목2 in 반복가능한객체2 if 조건2
    .....
    for 항목n in 반복가능한객체n if 조거n ]
''’


#구구단의 결과를 저장하는 리스트 구현


gugudan = [i*j for i in range(2,10)
       for j in range(1,10) ]
print(gugudan)



 

그림입니다.
원본 그림의 이름: mem000037c80010.tmp
원본 그림의 크기: 가로 538pixel, 세로 163pixel

    
      

while문의 구조



'''
** while문의 구조
while <조건문>:
 <실행할  명령문 1>
 <실행할 명령문 2>
 <실행할 명령문 3>
 .....
'''

# -*- coding: utf-8 -*-
aa = 0
while aa <10:
    aa = aa +1
    print ("aa 값은 %d 입니다" %aa)
    if aa == 10:
        print("종료합니다")

그림입니다.
원본 그림의 이름: mem000037c80011.tmp
원본 그림의 크기: 가로 571pixel, 세로 340pixel


무한루프


''' 무한루프 예
while 1:
 <실행할 명령문 1>
 <실행할 명령문2>
 ....

 while 1:
    print("무한반복 됩니다")


보조제어문(break, continue)


'''
# -*- coding: utf-8 -*-
m = 100
n = 10
while m:
    n = n -1
    print("현재 %d 입니다" %n)
    if not n:
        print("n의 값은 0 입니다")
        break #while문을 빠져나간다.



그림입니다.
원본 그림의 이름: mem000037c80012.tmp
원본 그림의 크기: 가로 571pixel, 세로 340pixel



# 1에서 부터 10까지의 정수중 홀수를 출력하는 코드
# -*- coding: utf-8 -*-
i = 0
while i <10:
    i = i+1
    if i % 2 == 0 :
        continue #continue문은 while문의 맨처음 (i<10)으로 돌아가게하는 명령문
    print(i)



그림입니다.
원본 그림의 이름: mem000037c80013.tmp
원본 그림의 크기: 가로 571pixel, 세로 228pixel



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.