TIL 6 반복문 (for,while)

CastleQ·2021년 4월 25일
0

python에 진심인 편

목록 보기
6/8
post-thumbnail

반복문의 사전적 의미

반ː복1, 反復

명사 [어떤 일을]
1. 되풀이하는 것. 순화어는 `되풀이'.
2. 같은 것을 되풀이함을 의미한다.

어떠한 일을 할 때 똑같은 일을 계속해서 하는 것을 뜻한다.

고유명사로 반복문

파이썬에서 반복문이란?

반복문이란 단어 그 자체에서 느껴지듯 반복되어 수행해야 하는 실행문들을
프로그래밍적으로 한번만 작성하여 한정/무한정으로 반복되게 하는 것

for문과 while문의 차이?

for문은 일반적으로 횟수가 한정적일 때 사용을 많이 하고
while문은 조건이 충족되는 한 무한하게 실행을 해야 하는 상황에서 많이 사용한다.

반복문은 왜 사용 하는가?

  1. 흐름을 통제 제어 하기위해서
  2. 행위를 반복하기 위해서

이 글을 작성하기 전에 적었던 조건문과 반복문은 파이썬에서 제어문이라고도 불린다.
반복문도 조건문과 같이 어떠한 프로세스가 진행이 될 때 흐름을 제어하기 위해 사용이되고
똑같은 행위를 계속 반복해야하는 경우에도 사용이 된다.
예를 들어 1~10까지는 모든 수의 합을 구하고 싶다고하면 간단한 계산이 되겠지만
만약 1~10만, 1~1억 까지의 모든수의 합을 구하고 싶다고 하면 반복문 없이는 계산하기 힘들것이다.
컴퓨터는 놀랍다. 친해지자 맥북프로 아직은 전여친 같이 어색하다

반복문을 사용하는 방법

for문 예제

# 예제 1
print("대기번호 : 1")
print("대기번호 : 2")
print("대기번호 : 3")
print("대기번호 : 4")

# 위의 문장과 같은 문장을 아래와 같이 줄여준다.
# 대기번호를 1억번 적어야한다고 생각해보시라 !
for waiting_no in range(1,6): # 1, 2, 3, 4, 5
    print("대기번호 : {0}".format(waiting_no))

# 예제 2
starbucks =["아이언맨", "토르", "아이엠 그루트"]
for customer in starbucks:
    print("{0}, 커피가 준비되었습니다.".format(customer))
    
코드를 소설 읽듯이 읽어보자 
starbucks에 ["아이언맨", "토르", "아이엠 그루트"] 이친구들이 있다.
나는 반복을 할것인데 그 반복의 이름은 customer이다 이 친구는 starbucks에서 값을 가져온다.
이제부터 출력을 하는데 0번째부터 이름을 넣어서 이름이 더이상 없을 때까지 출력할 것이다 !

while문 예제

customer = "토르"
index = 5
while index >= 1:
    print("{0}, 커피가 준비 되었습니다. {1} 번 남았어요".format(customer, index))
    index -= 1 
    if index == 0:
        print("커피는 폐기처분 되었습니다.")
> 토르를 5번 부르고 커피를 폐기 시킨다 !


무한 루프 발생
customer = "아이언맨" 
index = 1
while True:
    print("{0}, 커피가 준비 되었습니다. 호출 {1} 회".format(customer,index))
    index += 1


# 입렵받는 값이 "토르"가 아니면 "토르, 커피가 준비 되었습니다."를 반환 한다.
customer ="토르"
person = "Unknown"

while person != customer :
    print("{0}, 커피가 준비 되었습니다.".format(customer))
    person = input("이름이 어떻게 되세요?")

continue와 break

학생이 책을 안가져온 상황 예제
이 선생님은 결석은 괜찮지만 책을 안가져오면 화낸다.

absent = [2, 5] # 2번 5번 학생을 결석함
no_book = [7] # 7번 학생은 책을 깜빡했음
for student in range(1,11): # 1,2,3,4,5,6,7,8,9,10
    if student in absent:
        continue # 2번 5번은 스킵한다.
    elif student in no_book:
        print("오늘 수업은 여기까지.{0}는 교무실로 따라와".format(student))
        break
    print("{0}, 책을 읽어봐".format(student))
    
>출력
1, 책을 읽어봐
3, 책을 읽어봐
4, 책을 읽어봐
6, 책을 읽어봐
오늘 수업은 여기까지.7는 교무실로 따라와

한줄 for문

# 출석번호가 1 2 3 4 5 앞에 100을 붙이기로 함 -> 101, 102, 103, 104.
students = [1,2,3,4,5]
students = [i+100 for i in students]
# for문을 돌려서 students안에 있는 값들에 i라는 이름을 붙이고 
# i에 100을 더한 값을 반환한다.


# 학생 이름을 길이로 변환
students = ["Iron man", "Thor", "I am groot"]
students = [len(i) for i in students]
# len은 문자의 수를 반환하는데 i를 for문으로 돌려서 문자수를 반환한다.
# 그 문자열의 리스트는 students 이다


# 학생 이름을 대문자로 변환
students = ["Iron man", "Thor", "I am groot"]
students = [i.upper() for i in students]
# i를 대문자로 반환하는데 for문을 돌린다.
# 그 문자열의 리스트는 students 이다

참조자료 : 파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
참조자료 : 파이썬 공식 사용서

profile
DONE IS BETTER THAN PERFECT

0개의 댓글