while
지정된 조건이나 작업을 반목해야하는 경우 매번 구문을 사용하기에는 꽤나 불편이 있다.
작업을 반복적으로 수행하는 구문을 반복문이라고 하고 파이썬에서는 for 문과 while문을 이용해 구현한다.
a=5
while a>0:
print(a)
a -=1
print('while밖')
out)
5
4
3
2
1
while밖
a = 1
while a <11:
print(a)
a += 1
out)
1
2
3
4
5
6
7
8
9
10
업카운팅과 다운카운팅
i=3
while i>0:
print('#', end='')
i -= 1 # 다운카운팅으로 # 3개 출력
i=1
while i<4:
print('#', end='')
i += 1 # 업카운팅으로 # 3개 출력
out) 두 코딩 모두 같은 결과를 출력
###
위 처럼 while문을 이용해 업,다운카운팅이 다 가능하다.
그렇다면
###
###
이렇게 샵 3개를 두줄로 쓰고 싶으면 어떻게 할까?
j=1
while j<3: # ### 두줄로 만들기
i=1
while i<4:
print('#', end='')
i += 1 # 업카운팅으로 # 3개 출력
print() # 다음 줄에 ### 찍어라
j += 1
out)
###
###
만약 점수(1~100점)를 입력받아야 하는 상황에서 입력자가 범위 외의 것을 입력한다면?
다시 재입력을 하라는 문구를 띄워야 할 것이다.
그럴 때는 while문을 사용할 수 있다.
score = -1
while score>100 or score<0:
score = int(input('score(0-100):'))
if score >= 60:
print('합격')
else:
print('불합격')
out)
score(0-100):230
score(0-100):56
불합격
for문
메모리에 데이터를 할당(저장)하는 방법은 2가지가 있다.
1. 변수
2. 리스트
변수는 지금 껏 직접 변수명과 값을 입력해주어야 했다. 하지만 입력해야할 변수들이 100개라면 변수명을 일일히 나열할 수는 없을 것이다. 그래서 사용하는 것이 리스트!
b=[1, 2, 3, 4, 5]
print(b[0])
print(b[1])
print(b[2])
print(b[3])
print(b[4])
out)
1
2
3
4
5
리스트는 위의 예제처럼 칸을 여러개로 나누어 여러개의 변수를 담는 호텔이라고 생각하면 된다.
리스트의 앞에서부터 우리는 0호, 1호, 2호, 3호 ... 이런 식으로 이름을 붙일 것이다.
즉, b= [1, 2, 3, 4, 5] 에서 0호의 값은 1, 1호의 값은 2, 4호의 값은 5가 된다.
리스트를 이용해 변수 값을 잡는 것이 훨씬 수훨해졌다.
그런데 b=[1,2,3,4, ......., 1000]이라면 모든 호수에 있는 값들을 쉽게 출력할 방법은 없을까?
그것이 바로, for문!!
#위에 있는 내용을 단 두줄로 표현 가능!
for i in b: #또는 for i in [1, 2, 3, 4, 5] 도 가능
print(i)
out)
1
2
3
4
5
참 쉽죠?
그럼 리스트를 좀 더 간략하게 해보자.
b=[0,1,2,3,4] 를 for i in range(0, 5) 로 나타낼 수 있다.
여기서 range는 수를 자동으로 나열 해주는 함수이다.
#range(시작, 끝값, 간격)
for i in range(0,5): # [0,1,2,3,4]
print(i)
for i in range(1,10,2): #1부터 9까지 2칸씩 건너띄면서 [1,3,5,7,9]
print(i)
out)
0
1
2
3
4
1
3
5
7
9
그렇다면 앞에서 했던 while문을 이용한 코딩들을 for문으로 바꿔보자!
'파이썬이 제일 쉽다면서요' 카테고리의 다른 글
python #피카츄게임? (0) | 2021.06.01 |
---|---|
python #연습문제 (0) | 2021.06.01 |
python #연습문제 (0) | 2021.06.01 |
python #제어문 (if, if-else, if - elif - elif - else) (0) | 2021.06.01 |
python #연습문제 (0) | 2021.06.01 |