[Python 제어문] 조건문 IF / 반복문 While, For / if~elif~else, while~break, for 예제
본문 바로가기
Python/기초 다지기

[Python 제어문] 조건문 IF / 반복문 While, For / if~elif~else, while~break, for 예제

by 쏠수있어ㅤ 2021. 5. 31.
반응형

PYTHON 파이썬의 제어문, 조건문, 반복문 

                         IF elif else  & While & For                        

 

조건문 IF 

조건을 판단하여 해당 조건에 맞는 명령을 수행 한다. 

프로그램의 흐름을 제어하는 문법 / 조건문을 이용해 조건에 따라 프로그램 로직을 수행 

파이썬에서는 들여쓰기 (4 spaces 칸 띄우기) 가 중요하다. - 언제나 같은 너비로 ! 

 

파이썬에서 코드의 블록(Block)은 들여쓰기(Indent)로 지정한다. 

* 블록 block : 특정한 기능을 수행하기위한 한 단위의 코드 블록 

if 문 안의 수행할 문장들 모두 들여쓰기가 잘 되어 있어야 한다.  아래 예시 有

if 조건문 다음 바로 오는 : 콜론을 잊지 않기 ! JS if문에는 : 을 쓰지않아서 이 점이 아직 안익숙하다. 

 

 

money = True

if money:
    print('택시타자')
else:
    print('걷자')

    
# 들여쓰기 오류 
if money:
    print('택시타자')
  print('얏호')
else:
    print('걷자')

 

 

 

 

 

 

아래 예제 내용 

x or y = 둘 중 하나라도 조건에 맞으면 실행 

x and y = 둘 다 조건에 맞으면 실행

not x = x가 아니면 실행

 

x in 리스트 / x in 튜플 / x in 문자열 

x not in 리스트 / x not in 튜플 / x not in 문자열  / 딕셔너리 too!

 

PASS 기능

조건문 안 실행될 내용이 없다면 pass를 꼭 써야한다. 

 

/ Elif - 다중 조건 판단 조건문  / 조건부 표현식 

Elif 는 이전 조건문이 거짓일 때 수행된다. 

 

* 파이썬만의 특징 부등호가 대수학 부등식을 그대로 사용한다. 

money=2000

if money>=3000:
  print('택시타자')
else:
  print('걷쟈')   # 걷쟈 출력됨 


# or
card = True
if money>=3000 or card:
  print('택시타쟈~')   # 택시타쟈~ 출력
else:
  print('걸어가쟈~')   

# x in / not in 리스트, 튜플, 문자열
print(1 in [1,2,3])       #True
print(1 not in [1,2,3])   #False
print(1 in (2,3))         #False
print(1 not in (2,3))     #True
#print(1 in '123') 오류남 

#문자열 하나의 요소 하나까지도 비교가능하다ㄴ ㅣ..
print('1' in '123')       #True
print('a' in 'sdfad')     #Ture 신기하다... 

a = [1,2,'aa','bb','abc','money']
if 'money' in a:
  print('돈 있다 ! ')  #돈 있다! 
if 'card' not in a:
  print('카드 없다 !')  # 카드 없다 ! 
else:
  print('돈도 카드도 없다!')


# PASS
if 'money' in a :  # a에 money가 있으므로 출력 아무것도 안됨 
  pass
else:
  print('걸어가쟈~')


#elif = else if (in JS)
if 'money' not in a:
  print('돈 없지롱')
elif 'card' in a:
  print('카드는 있지롱')
elif 'abc' in a :
  print('abc 잇지롱')    #abc잇지롱 출력 
else:
  print("I'm broke!")


#if문 한 줄로 작성하기 
score=100
if score >=80 : message = 'GREAT!'
else : message ='GOOD JOB!'
print(message)  # GREAT!

# 조건부 표현식 -  여기서는 : 콜론이 필요 없군!!
message ='GREAT!' if score>=80 else "GOOD JOB!"
print(message)  # GREAT!

 

-

 

score = 85

if score >= 90:
    print('A')
elif score >=80:
    print('B')    # B 출럭 
elif score >=70:
    print('C')
elif score >=60:
    print('D')
else:
    print('F')

# or and 연습 
if True or False:
    print('WOW')    # WOW 출력 
elif True and False:
    print('Ooppss')    # 출력 X 
 
# 조건부 표현식 연습
# if는 중간에 들어간다 ! 참값=LEFT 거짓값=RIGHT
score = 99
result ="success" if score>=95 else "not bad"
print(result) #success


x = 15
if 0<= x <=15:
  print('x는 0 이상 15 이하입니다.')  #출력 

 

 

 


 

 

반복문 while 

while은 반복해서 문장을 수행해야 할 경우 사용한다. 

if 와 비슷한 형식 = while 조건 : 수행할 문장 1 /2 /3 ... 이다.

코딩 테스트에서 실제 사용 예시를 확인해보면 for 문이 더 간결한 경우가 많다. 

* 반복문을 사용할 때는 반복문을 탈출할 수 있는지 확인해야함 !!! 

 

while문 연습 / while문 강제로 빠져나가기 break문

index=0
#index가 10 이하일동안 
while index<10:
    index += 1  #index = index+1 과 같음
    print('나무를 %d번 찍었습니다.' %index)
    if index==10:
        print('나무 넘어갑니다~') 

    
#prompt,number 변수 설정 
prompt ="""
    1. A
    2. B
    3. C
    4. D

    Enter Number:"""

number =0
while number !=4:
    print(prompt)
    number = int(input())
    # 4를 입력하면 print가 멈춘다.

 

 

 

 

 

 

 

 

 

 

 

 

파이썬 while문 break + if문 예제 

#while 문 빠져나오기 break
coffee = 10
money = 300
while money:
    money -= 50
    print('커피 여기있습니다.')
    coffee -= 1
    print(f'남은 커피: {coffee} 남은 돈: {money}')
    if money == 0:
        print('NO MONEY LEFT')
        break
    elif coffee ==0:
        print('SOLE OUT')
        break


coffee = 10
while True:
    money = int(input("돈을 넣어 주세요: "))
    if money == 300:
        print("커피 여깄습니다")
        coffee -= 1
        print('현재 %d잔의 커피가 남았습니다.' %coffee)
    elif money > 300:
        print("잔돈 %d와 커피 여깄습니다." %(money-300))
        coffee -= 1
        print('현재 %d잔의 커피가 남았습니다.' %coffee)
    else:
        print('%d원 받았습니다. 금액이 부족합니다.' %money)
    if coffee ==0:
        print('오늘 장사 끗 얏호')
        break
        

 

 

 

 

 

 

 

 

 

 

 

 

 

while문 맨 처음으로 돌아가기 - continue 

# while문 맨 처음으로 돌아가기 
# continue -> 다시 돌아가! 라는 뜻 
idx = 0
while idx<10:
    idx += 1
    if idx%2==1:
        print(idx)

print('-----')

idx2 =0
while idx2<10:
    idx2 += 1
    if idx2%2==0: continue
    print(idx2)

print('------')
# 1~10까지 숫자 중 3의 배수를 뺀 나머지 값 출력해보기
index = 0
while index <10:
    index += 1
    if index%3==0: continue
    print(index)

print('-----')
#무한루프 

 

 

 

 

 

 

 

 

 

 

 

while 무한 루프 LOOP

while True:
	print('Ctrl + C 를 눌러야 이 무한 루프를 빠져나갈 수 있숩니다.')

 

 

while 문 연습

i = 1
result = 0

while i <=10:
    result += i
    print(i,result)
    i+=1

print(result)

print('-----')

#홀수만 더하기
idx = 0
results =0
while idx<10:
    idx += 1
    if idx%2==0: continue
    results += idx

print(results)

print('-----')
index = 1
rst = 0
while index<=10:
    if index%2==1: 
        rst += index
    index += 1 
print(rst)

print('-----')

 

 

 

 

 

 

 

 

 


 

 

 

 

반복문 for

파이썬의 직관적인 특징을 잘 표현해 주는 것이 for문 

while문과 비슷하지만 for문은 매유 유용하고 문장 구조가 한눈에 쏙 들어온다. 

 

for 기본 구조

for 변수 in 리스트/튜플/문자열:
	수행할 문장 1 
        수행할 문장 2...

 

 

예제 

LIST = ['one', 'two', 'three']
for i in LIST:
  print(i)

print('-----')

#튜플 변수 대입 이용
a = [(1,2),(3,4),(5,6)]
for (first, last) in a:
  print(first+last)

print('-----')

#for문의 응용
marks = [24,35,76,98,83]
number = 0
for mark in marks:
    number += 1
    if mark >=80:
        print(f'{number}번 학생은 합격입니다.')
    else:
        print(f'{number}번 학생은 힘을 내세요')

print('-----')

#for + continue 
index = 0
for i in marks:
    index += 1
    if i <80: continue
    else: print(f'{index}번 학생 합격입니다')

print('-----')

# for 과 함께 자주 쓰이는 range 함수 
add = 0
for A in range(1,11):
    add = add+A 
print(add)

print('-----')

score = [ 23, 66,55, 88, 99]
for number in range(len(score)):
    if score[number] <80:continue
    print(f'{number+1}번 학생 축하해요우')

 

 

 

 

 

 

for문과 range 를 사용한 구구단 만들기 

구구단 값만 나오게 만들기 

* end = " " 을 하게되면 출력하는 글자 뒤에 " " 안의 문자 / 빈칸을 add 해서 출력

 

 

 

 

 

 

리스트 안에 for 사용하기  /  리스트 내포   / if문도 함께 / 이중 리스트 내포 / 구구단 출력하기 

리스트 안 요소들 * 3 을 한 값을 넣은 리스트를 출력하기

 

{  } 안에 있는 요소 사용해서 if 문 추가 

 

 

참고 : Do it! 점프 투 파이썬 / 유튜브 동빈나님 영상 

반응형

댓글