본문 바로가기
코딩(개발)/파이썬

파이썬 반복문(for / while)

by 플랜데버 2020. 12. 18.

for : 처음요소부터 마지막 요소까지 변수에 대입되며 같은 행동을 반복 해서 결과값을 얻을 수 있다.

코드
for waiting_no in [1,5,3,4] :
     print("대기번호 : {0}".format(waiting_no)) 
결과값
대기번호 : 1
대기번호 : 5
대기번호 : 3
대기번호 : 4

print("대기번호 : "+ str(waiting_no))  → 위 print 문과 결과 값이 같다.

 

 

순차적인 숫자를 뽑고싶다면 range 를 쓴다. 

코드
for waiting_no in range(1,6) :
     print("대기번호 : {0}".format(waiting_no))
결과값
대기번호 : 1
대기번호 : 2
대기번호 : 3
대기번호 : 4
대기번호 : 5

 range : 시작값 ,끝값 + 1 :  순차적으로 증가하는 수의 범위를 지정해 주는 예약어

    range를 쓸때는 괄호()를 쓴다... 헷갈령 ㅠㅠ

 

 

in 뒤에 문자열을 넣을 수도 있다. 아래 두개 코드의 결과 값은 같다.

코드
for customer in ["아이언맨" , "토르" , "아이엠 그루트"]:    
     print("{0}님 커피가 준비되었습니다".format(customer))

앞에서 배운 변수를 이용하면 추후 수정 할때 편할 듯 하다.

starbucks = ["아이언맨" , "토르" , "아이엠 그루트"]
for customer in starbucks:     
     print("{0}님 커피가 준비되었습니다".format(customer))

 

in 뒤에 사전을 넣을수도 있다. key 값을 뽑는다.

코드
starbucks = {3:"유재석" , 100:"김태호"}
for customer in starbucks:          
     print("{0}님 커피가 준비되었습니다".format(customer))
print(cabinet[3])
결과값
3님 커피가 준비되었습니다
100님 커피가 준비되었습니다

 

 enumerate : 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능을 가진다. 몇번째 값이 어떻게 들어오는지 봐야 할때 유용할듯 하다

코드
names = ["유재석","조세호","김종민"]
for i, name in enumerate(names):    
     print('{0}번:{1}'.format(i+1,name))
결과값
1번:유재석
2번:조세호
3번:김종민

 

for가 in 뒤에 쓰는 값(interable)을 다 쓸때까지 반복한다면 while은 조건이 만족할때까지 반복한다.

for는 처음부터 끝까지 하나씩 값을 뽑아 임시변수에 저장한 다음 코드 실행을 반복적으로 시행한다.
모든 값을 뽑기 때문에 총 실행횟수는 interable의 길이가 된다.

※ interable: member를 하나씩 차례로 반환 가능한 object(list,str,tuple등)를 말한다. 

 

 

while : 어떤 조건이 만족할때까지 반복해라.

코드customer = "1"   person = "Unknown"
while person != customer:  
    print("{0}번 고객님, 커피가 준비 되었습니다.".format(customer))  
    person = input("몇번이세요?")  

안내방송을 하고

앞에 온 고객의 이름을 묻고 1번이 안오면 다시 반복,오면 반복해서 묻는내용이 종료되면서 while 문을 빠져나온다.

 

결과

 

for문은 도는 횟수가 정해져 있지만 while은 조건이 만족할때 까지 돈다!

 

  응용  

customer = "1"
person = "0" 
while person != customer:   ①
    person = input("몇번이세요?")    ②
    if person == customer:  ③ 
        print("안녕히 가세요")
    else:
        if person == '':    ④
            print("주문하시겠어요?") 
        else:    ⑤
            print("음료가 준비중 입니다.") 

① customer이 1일 아니라면 계속 루프 돈다

② 값을 받는다 

③ 받은 값이 1이라면 음료를 주고 인사한다

④ 공백을 받았다면 주문할건지 물어본다.

⑤ 1도 아니고 0도 아닌 값을 받았다면 음료가 준비중이라고 안내한다.

 

실행결과

 

파이썬  while문과 if문

 

구문이 좀 더 부드러워졌다.

들여쓰기때문에 엄청 헷갈린다... 파이썬....ㅠㅠ

 

 

 

더보기

블로그에는 우클릭 방지가 걸려있어요. 코드복사는 카페에서 가능 합니다.

투딩카페의 이 컨텐츠보기

 

 

 

 

파이썬 기초는 나도코딩님이 인프런사이트에서 강의한 내용을 바탕으로 공부한 내용을 정리한 것 입니다.

'코딩(개발) > 파이썬' 카테고리의 다른 글

파이썬 가변 인자 / 글로벌 변수  (0) 2020.12.19
파이썬 함수 기초  (0) 2020.12.19
파이썬 if문  (0) 2020.12.18
파이썬 주석 파이썬 변수  (0) 2020.12.17
파이썬 기초  (0) 2020.12.17

댓글