본문 바로가기
Python

9. 파이썬 - 반복문 for, while

by 새싹_v 2022. 9. 8.
728x90


 

 

반복문 for

 for 문은 튜플이나 리스트를 사용할 때 while 문보다 더욱 간결하게 코드를 작성할 수 있어 많이 사용됩니다.

for문의 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
              수행문장1
              수행문장2
#전형적인 for 문
n = [1, 2, 3, 4, 5]

for i in n:
    print(i)
#1 
#2
#3
#4
#5


#다양한 for 문
n = [('a','b'),(1,2),('c','d')]

for (first,last) in n:
    print(first + last)
    
#ab
#3
#cd

 

문제 만들어서 풀어보기

for + 함수

#for문 + 함수
#60점이 넘으면 합격이고 그렇지 않으면 불합격

marks = [90, 25, 67, 45, 80]

def funtion():
    student = 0     #학생수 카운트하기위해 0으로 둠
    for mark in marks:
        student += 1    #한번돌때마다 +1
        if mark > 60:   
            print(f"{student}번 학생 합격") #fstring 사용
        else:
            print(f"{student}번 학생 불합격")
        

funtion()		
#1번 학생 불합격
#2번 학생 불합격
#3번 학생 불합격
#4번 학생 불합격
#5번 학생 불합격
#for문 + 함수
#60점 이상인 사람에게는 메시지를 보내고 나머지는 보내지 않는다.

marks = [90, 25, 67, 45, 80]

def myfunction():
    student = 0     #학생수 카운트하기위해 0으로 둠
    for mark in marks:
        student += 1    #한번돌때마다 +1
        if mark < 60:  
            continue    #60점아래인 사람은 continue로 지나감
        print(f"{student}번 학생 합격") #fstring 사용
        
myfunction()
#1번 학생 합격
#3번 학생 합격
#5번 학생 합격

 

- for + range

#1부터 10까지의 합

def mysum(a,b):
    sum = 0
    for i in range(a,b):
        sum += i
    return sum

result = mysum(1, 11)
print(result)
#55

 

- 리스트 내포

#구구단 리스트 내포사용

result = []
for x in range(2,10):
    for y in range(1,10):
       result.append(x*y)
print(result)
#[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 
#8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45,
#6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 5
#6, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

# 위에 코드를 리스트 내포를 사용하면
result = [x*y for x in range(2,10) for y in range(1,10)]
print(result)

#두개의 코드는 같은 결괏값을 나타냄

 

 

 

반복문 while

반복문은 프로그램에서 반복적으로 수행해야 할 경우 사용한다.

while문의 기본 구조
while<조건문>:
         수행할문장1
         수행할문장2
# 미니언을 5번 때리면 죽는다.

minion_hit = 0
while minion_hit <5:
    minion_hit += 1
    print(f"미니언을{minion_hit}번 쳤습니다.")
    if minion_hit == 5:
        print("미니언이 죽었습니다.")
#미니언을1번 쳤습니다.
#미니언을2번 쳤습니다.
#미니언을3번 쳤습니다.
#미니언을4번 쳤습니다.
#미니언을5번 쳤습니다.
#미니언이 죽었습니다.

 

- break

#break

milk = 5
money = 300
while money:
    print("우유를 판매합니다.")
    milk -= 1
    print(f"남은 우유는 {milk}개 입니다.")
    if not milk:
        print('유유가 떨어졌습니다! 판매를 중단합니다!')
        break
        
#우유를 판매합니다.
#남은 우유는 4개 입니다.
#우유를 판매합니다.
#남은 우유는 3개 입니다.
#우유를 판매합니다.
#남은 우유는 2개 입니다.
#우유를 판매합니다.
#남은 우유는 1개 입니다.
#우유를 판매합니다.
#남은 우유는 0개 입니다.
#유유가 떨어졌습니다! 판매를 중단합니다!

 

- 무한루프

#무한루프
while True:
	print("Hello")

 

 

 

 

 

위에 글 내용은 오류 사항이 존재할 수 있습니다!

수정 사항이 있을 시 알려주시면 감사하겠습니다.

 

 

728x90

댓글