IT/Python_학습

Python_7 _ 제어문(While)

다자녀 이프로 2021. 9. 14. 19:38
반응형

안녕하세요.

 

다자녀이프로 입니다.

 

 

이번에는 While문이 뭔지 알아보겠습니다.

 

 

 

 

 

 

자 그럼 While문이 무엇이냐?

 

자 이제 다 아시죠?! 모르면 한자나 영어 의미를 확인해보기?

 

구글 형님에게 검색하니 하는동안이라고 하네요.

 

 

 

 

 

 

 

이번에도 while  조건표가 있네요. 한번 볼까요?

 

while 조건이 만족하면 반복되고 만족하지 않으면 반복이 끝나게 됩니다.

[if 문의 반복이라고 볼 수도 있겠네요!]

 

 

 

 

 

자 그럼 while 문 왜 할까요?

 

저번 IF문때와 같이 이번에도 게임으로 예를 들어볼게요.

[게임 너무 좋아하나요!?^^;]

 

저번  IF 문에서 진행했던 코드로 다시 한번 볼게요. 코드 기억나시죠?

 

 

 

여러분이 몬스터를 잡는다고 쳤을때 몬스터의 체력을 다 깍으면

 

Y = 몬스터 죽음 & 경험치 획득 & 아이템 획득

N = 몬스터가 유저 공격

 

뭐 이런식으로 되겠죠!?

 

 

여기서 처음에 여러 변수를 만들어 준 후 IF문으로 조건을 지정했는데요.

 

코드가 한번 진행후에는 끝이나버립니다.

 

그럼 게임이 안되겠죠?

 

한번 공격하고 끝나는 게임이라면 아무도 하지 않을거예요.

 

그럼 계속해서 진행하도록 해줘야하는데요.

 

그때 while 문이 사용됩니다.

 

while문 안에 들어있는

'if monster <= userpow:' ~ 'count = count + 1 # 유저 도전 횟수'까지 모두 무한대로 반복이 되는데요.

[While 조건이 1 == True]

 

이때 while 반복을 멈추고 싶을때 사용하는 명령어가 break문 입니다.

 

아래 코드에서도 몬스터 처치후에 break문으로 종료가 되게 되는걸 확인하셨을거예요.

 

 

monster = 100 #몬스터 체력

userpow = 10 # 유저 공격력

userexp = 0 # 유저 경험치

count = 1 # 유저 도전 횟수

 

while 1:

    if monster <= userpow:

        userexp = userexp + 10 # 유저 경험치

        print(str(count) + '차 공격 \n 몬스터 처지!')

        print('몬스터 체력 : ' + str(monster)) 

        print('누적 데미지 : ' + str(userpow))

        print('획득 경험치 : ' + str(userexp))

        break

 

    else:

        print(str(count) + '차 공격')

        print('몬스터 체력 : ' + str(monster)) 

        print('누적 데미지 : ' + str(userpow))  

        print('')

        userpow = userpow + 10

        count = count + 1 # 유저 도전 횟수

 

 

 

 

 

그럼 결과는 아래와 같이 나오게 되는 거구요.

 

뭐 어렵지 않으실거예요. 

 

 

 

 

 

 

자 그럼 이제 새로운 조건으로 한번 만들어볼까요?

 

예를들어서 우리 학과 학생들이 모두 선물을 받으면 종료되는 코드를 한번 짜볼게요.

 

studnet = ('김','나','박','이','만세')

studnet_num = len(studnet)

check = 0

 

while check != studnet_num:

    print(studnet[check] + ' 학생이 선물 받았습니다.')

    check=check+1   

 

 

자 먼저 튜플로 학생들의 명단을 하나 만들어 줍니다.

 

그 후에 현재 튜플내에 몇명의 학생들이 있는지 len 으로 확인해서 새로운 변수안에 저장해주구요.

 

그 다음 선물 받은 명수를 확인하기 위해 체크 변수를 선언해줍니다.

 

 

그 이후 while문을 선언해줄텐데  while 조건이 뭐였는지 기억하시나요?

 

'조건이 만족하면 반복되는 명령어!!' 라고 한거 기억하시죠?

 

그럼 조건이 만족할 수 있게 받은 명수와 학생들의 숫자가 같지 않으면으로 조건을 지정해줬습니다.

 

당연히 처음에는 두 수가 같지 않을테니 참이 되겠죠?

 

거기서 이제 '~학생이 선물을 받았습니다' 라고 출력해준뒤 체크에 1을 더해서 받은 명수를 확인합니다.

 

그럼 이제 받은 명수와 총 학생수가 같아지는 순간 while 조건이 만족하지 않게 되고

 

그 순간이 while문의 반복이 끝나는 순간이 되는 겁니다.

 

만세 학생이 받고 종료됩니다  ~

 

 

 

 

 

뭐 말은 길지만 어렵지는 않으시죠?

 

하나만 기억하시면 됩니다.

 

 

※while문은 조건이 만족하는 동안 계속 반복한다!

 

이거 하나면 오늘 충분히 공부하신거라고 봅니다 ㅎㅎ

 

 

 

 

다 그럼 저번에도 붙여넣었지만 헷갈리는 비교/논리 연산자를 밑에 덧붙이며 마무리할게요.

 

다음은 for 문으로 돌아올게요 ~~

 

 

 

 

 

 

 

 

※비교연산자

 

 

 

※논리연산자

 

 

 

 

반응형

'IT > Python_학습' 카테고리의 다른 글

Python_6 _ 제어문(IF) _ 추가  (0) 2021.09.16
Python_8 _ 제어문(for)  (0) 2021.09.15
Python_6 _ 제어문(IF)  (0) 2021.09.09
Python_5 _ 변수  (0) 2021.09.09
Python_4 _ 자료형 [튜플]  (0) 2021.09.09