5. 반복문 - while 과 for 그리고 응용(홀짝구분/구구단/리스트요소들 출력)
2018. 7. 2. 20:08
소개
while의 사용례
for의 사용례 2가지
while문 사용해보기
새로운 프로젝트를 만들고, py파일을 만든 다음, 아래 문장을 실행시켜보자.
print('study while')
condition = True
while condition:
print('wow')
조건이 계속 True이므로, wow가 계속해서 반복될 것이다. 이 때는, 좌측의 정지버튼을 눌러서 정지시킨다.
* 정지 단축키는 Ctrl+F2 이다.
while문의 기본 사용은 아래와 같다.
인자 i를 만들고, 0부터 시작시키도록해서, 특정 횟수를 반복하고, 그 속에서는 하나씩 +1 시켜준다.
i = 0
while i < 10:
print(i)
i = i + 1
이제, 가지고 있는 모든 돈을 계란사는데 모두 쓰는 프로그램을 만들어보자.
- 먼저, 변수로는 [ 내가 가진 돈 / 계란 1개 가격 / 보유 계란수 ] 를 변수로 둔다.
* i인자를 0으로 생성하는 대신, 가진돈 / 계란가격을 변수로 생성한 뒤 가진돈 > 계란가격 이기만 하면 [ 돈 마이너스 -> 계란 획득 ]의 과정
- while문의 조건에다가는, 내가 가진 돈이 계란가격보다 클 떄, (1) 돈을 내고, (2) 그만큼 계란 가지도록 반복되도록 한다.
- print문으로 먼저 보유계란수 와 남은 돈을 출력해준다. 보유계란 0개부터 찍히고, 남은돈 10,000원부터 찍힌다.
*상황 [ 출력 -> 연산 ] 을 반복하면, 아래그림과 같이 맨 마지막 연산이 계산은 되지만 출력되지 않는다.
* 만약 [ 연산 -> 출력 ] 을 반복하면, 맨 처음 상태는 찍히지 않고, 첫번 째 연산후에 출력이 될 것이다.
그러므로, [ 출력 -> 연산 ] 으로 while을 반복하고, while문 끝나고 마지막 연산된 것을 따로 출력해주는 형태로 해보자.
반대로, 먼저 [상활출력 ] 후에 while에서 [ 연산 -> 출력] 의 형태를 가져도 된다.
for문 사용해보기
for문은 리스트를 사용하거나 range를 사용하는 방법 2가지가 있다.
- 먼저 range를 이용한 for문의 기본적인 사용방법은 아래와 같다
- 0부터 10전까지, 즉, 0, 1, 2, ~ , 9까지 반복된다. 10번 반복된다.
만약 while을 사용한다면, 아래와 같다.
- while문은 먼저 변수 i = 0을 선언해주고, 어떤 반복행위를 작성한 뒤, i = i + 1으로 하나씩 수동으로 올려줬다.
- i = i +1 이 귀찮다면, i += 1 을 대신 쓸 수 있다.
응용 - 홀짝 구분해주는 프로그램 제작
0부터 9까지를 반복하는데, i가 짝수인지 홀수인지는
for문 안에서, if문을 통해 2로 나눈 나머지가 0라면 짝수, else 홀수로 구분하면된다.
- print ( i + '문자열')은 불가하다. -> i를 str()함수로 문자열로 바꿔준다.
- 정수나 실수를 문자열로 바꾸는 작업이 귀찮다면 -> 문자열이 아닌 변수는 {}로 비워놓고 .format을 쓰면 된다.
print(str(i) + ' : 홀수')
print('{} : 홀수'.format(i))
구구단 출력해보기
먼저, range를 0이 아닌 1부터 9까지의 범위인 (1, 9)로 지정해준다.
for문 안에서는 2단을 먼저 해본다.
for i in range(1,10):
print('2 * {} = {}'.format(i, 2*i))
- 이제 가정한 2단을 j로 바꿔주는 반복문을 작성해야한다.
i는 각 구구단에서, 1부터 9까지 곱해주는 놈이었다.
그러나 2는 또, 전체에서 2부터 9까지 크게 한바퀴 돌아야한다.
즉, for i ~ 안에 들어갈 것이 아니라, for i를 감싸주는 for j in range(2,10)이 되어야한다.
*기존에 있던 2문장을 전체선택 한 다음, [TAB]을 누르면 안드로이드스튜디오와 마찬가지로 4칸 들여써진다.
직원 정보를 출력해보자.
이름리스트, 생일리스트를 5개 (0,4)만들고,
for문 속에서 리스트 요소에 접근[i]하여 각각을 프린트해보자.
* print문은 ,(콤마)를 통해서 여러개 출력시킬 수 도 있다. ex> print( name_list[i], birth_list[i] )
그런데 만약에, 리스트에 하나가 추가된다면?
for i in range(0,5) 상태로는 자동으로 업데이트가 되지 않는다.
'빅데이터 관련 프로그래밍 > Python3 기초 및 업무자동화' 카테고리의 다른 글
7. 파일 쓰기( TXT /CSV ) (0) | 2018.07.04 |
---|---|
6 . 함수 - (기본사용법 /구구단출력 / for문 속 함수 / default인자 / 유의점, scope / 기본 제공함수) (0) | 2018.07.03 |
4. 파이참 프로젝트 생성 후 버전관리 + 조건문 학습 (0) | 2018.07.02 |
3. 파이썬 기초 문법 - 산술-비교연산자 / 변수와 숫자 / 문자열과 .format / Boolean, 리스트 (0) | 2018.06.30 |
2. Pycharm 설치하기(대학생 1년 무료 라이센스 이용하기) (0) | 2018.06.28 |