반복문 while 구문 실습예제 이해 중심

맨 처음에는 저번 시간에 배웠던 if문을 다시 복습해보았다

mind = input("마음에 드는 옷을 찾았나요? ") if mind == '예': print(mind, "축하합니다") price = int(input('가격이 얼마인가요?')) if 0 < price <= 100000: print("예산 내 입니다.") elif price > 100000: print("예산 초과입니다.") elif mind =='아니요': print( "아쉽군요") else: print("예 아니요 로 입력하세요")

while은 반복되는 일을 반복문을 만들어서 간단히 처리할 수 있다

while 문의 핵심은

시작점, 전환점, 목적점 을 파악하는 것이다

w = 1 while w < 11: print( w, 'hello world') w+=1

시작은 w =1

그리고 전환점은 w가 1씩 증가하는 것이다 그래서 최종 목적은 w가 10번 반복하는 것이다

결과값은 w가 10이 된다

총 10번 반복한다

1부터 10까지 더하는 while문

a = 1 total = 0 while a<=10: total = total+a a=a+1 print(total)

위의 식은 1~10까지 더해주는 함수이다

우선 변수명을 2개 지정해준다.

1개는 1부터 10까지 더하게 해줄 값이고

나머지 1개는 더해진 값이 저장하는 값이다

이렇게 각각 정해줘야 a는 1~10까지 반복해서 일을 수행하고

total은 1~10까지 값을 더해준다

위의식처럼 하면 while 루프를 돌 때 마지막 값인 55가 나온다

또한

a = 1 total = 0 while a<=10: total = total+a a=a+1 print(total)

이렇게 하면 1 3 6 이런식으로 1~10까지 더한 값이 계속 호출된다

while문에 걸쳐있느냐 밖에 있느냐 차이이다

# 숫자를 입력받아서 짝수의 합을 구하시오 a = int(input("숫자를 입력하세요 ")) b = 2 sumc = 0 while b <= a: sumc+=b b+=2 print('1부터 {}까지 짝수의 합:{}'.format(a,sumc))

while문을 볼 땐 항상 시작점

전환점. 목적점을 봐야 한다

숫자를 받아서 짝수의 합을 구하는 것이다

짝수 시작점은 무엇인가? 2 이다

그래서 시작점은 b = 2 가 된다

# 예 대답을 받아내시오 a = True while a: b = input("마음에 드나요?(예 아니요 로 대답)") if b == '예': print('감사합니다') a = False else: print('아쉽네요')

답정너 스타일로 할 때는 True False 를 사용해준다

Boolean 스타일로 참 거짓 만을 판단할 때 주로 사용한다

특정 값을 True 값으로 지정해주고

특정 값을 False 값으로 지정해주면 된다

while 안에 질문을 넣어놓고

그안에 if 문을 써서 True가 나올 때까지 돌린다

a = int(input("숫자를 입력하시오")) b = 1 total = 0 while b<=a: data = int(input("너의 숫자를 주어라")) total = data +total b=b+1 avg = total/a print("숫자의 평균은 {}이다.".format(avg))

이번건 약간 까다롭다

  1. 우선 특정 숫자를 받는다.

  2. 특정숫자만큼 또 숫자를 따로 받는다

  3. 2번째 받은 숫자들의 평균을 보여준다

얘를 들어서 숫자를 3을 입력하면 숫자를 입력할 기회가 3번 주어진다

그러면 숫자 3개를 입력할 수 있다

숫자 3개의 평균을 구해본다

max_data = data a = 0 while a<= 9: a+=1 data = int(input("enter number"+ str(a)+':')) if data > max_data: max_data = data print(max_data)

이번 문제는 어려운듯 싶으면서도 생각을 좀 해야하는 문제다

어떤 숫자를 입력한다. 그리고 10번 숫자를 입력받아서 가장 큰 숫자를 출력하는 거싱 문제이다

우선 시작점을 만들어준다 a

그리고 총 10번을 돌려야 한다

데이터 숫자가 크면, 그 숫자를 남겨준다.

데이터가 큰 것만 남겨놓고 계속 if 문으로 돌린다

그러면 결국 가장 큰 숫자만 남기고 다 사라진다 끝

a = input("단어를 입력해라") b = 0 c = 0 while b < len(a): if a[b] in 'aeuio': c=c+1 b=b+1 print(c)

이번에는 입력한 단어 안에 aeiou 모음이 들어가있으면 그 숫자를 세어서

출력해주는 것이다

a = input("단어를입력하세요") rev_a='' i = -1 while i > -len(a): rev_a += a[i] i -=1 print(rev_a)

이번에는 문자를 입력받아서 그걸 반대로 해주는 것이다

문자를 입력받지만, 빈 문자열을 만들어주고 그 안에 뒤에서부터 하나씩 채우는 것이다

a = ['qqq','bbb','ccc','ddd'] i = 0 while i < len(a): print(a[i]) i+=1

이 문제는 a 안에 리스트가 있는 것이다

그리고 첫번째 리스트 문자부터 출력해주는 것이다

friends=['Garen','Teemo','Alice','Rakan','Jinx','Alice','Teemo'] name = input('enter name: ') count = 0 if name not in friends: print('여기엔 당신의 친구 {} 이(가) 없습니다'.format(name)) else: i = 0 while i < len(friends): if friends[i] ==name: count+=1 i+=1 if count >0: print('여기엔 당신의 친구 {} 이(가) {}명 있습니다'.format(name,count))

마지막 예시는 while 과 if not 구문 그리고 if 문을 모두 써야 한다

리스트에 친구들의 이름을 저장 . 친구들 중에 동명이인이 있기에 같은 이름 여러 번 저장 .

친구 이름을 입력 받아 같은 이름의 친구가 몇 명인지 출력

맨처음에 친구 이름을 받아 입력하고

처음에 친구 이름이 없는지 확인한다

그 다음엔 만약 있으면 친구 리스트 숫자만큼 while 문을 돌려준다

그리고 그 숫자만큼 count 에 저장한다 숫자를

그러면 값이 나온다

네이버 블로그 원문 보기