'Hello World!'를 100번 출력한다고 하자.
print('Hello World!')
print('Hello World!')
print('Hello World!')
…(생략)
print('Hello World!')
print('Hello World!')
이런 식으로 100번 쓰고 앉아 있을 순 없잖아?
1. for와 range 사용하기
for 변수 in range(횟수):
반복할 코드
for반복문은 range에 반복할 횟수를 지정하고 앞에 in과 변수를 입력한다.
끝에 콜론(:)을 붙이고 반복할 코드를 넣는다.
for다음 줄에는 반드시 들여 쓰기를 해준다.
for i in range(100):
print('Hello World!')
<출력>
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
…(생략)
Hello World!
Hello World!
100번 출력된다. 일일이 치는 것보다 for를 이용하니 편리하다.
이렇게 for문은 반복 횟수가 정해져 있을 때 주로 사용한다.
2. 반복문에서 변수의 변화 알기
for i in range(100):
print('Hello World!',i)
<출력>
Hello World! 0
Hello World! 1
Hello World! 2
Hello World! 3
Hello World! 4
…(생략)
Hello World! 98
Hello World! 99
0부터 99까지 출력된다. range에서 꺼낸 숫자는 변수 i에 저장되며 반복할 코드에서 사용 가능하다.
*반복문의 변수 'i': '루프 인덱스'라고도 부르며 index의 첫머리글자 따서 i를 주로 사용
3. 시작하는 숫자와 끝나는 숫자 지정하기
- for 변수 in range(시작, 끝):
>>> for i in range(5,100):
print('Hello World!', i)
Hello World! 5
Hello World! 6
Hello World! 7
Hello World! 8
Hello World! 9
…(생략)
Hello World! 98
Hello World! 99
5부터 99까지 출력된다. 마지막 숫자는 range의 끝나는 숫자보다 1이 작다.
4. 숫자를 감소시키기
>>> for i in range(10,0):
print(i)
>>>
만약 range(10,0)이면, 알아서 감소할까? 아뇨, 아무 일도 일어나지 않는다.
range는 숫자가 증가하는 기본 값이 양수 1이기 때문
그래서 만약 감소시키려면 range(10,0,-1): 이런 식으로 써줘야 한다.
5 증가폭 사용하기
- for 변수 in range(시작, 끝, 증가폭):
>>>
for i in range(0, 10, 2): # 0부터 8까지 2씩 증가
print('Hello, world!', i)
...
Hello, world! 0
Hello, world! 2
Hello, world! 4
Hello, world! 6
Hello, world! 8
range에 0,10,2를 넣으면 0부터 8까지 2씩 증가한다. 10은 포함 안 하므로 8까지 출력됨.
6. 증가폭 반대로 뒤집기
- for 변수 in reversed(range(횟수))
- for 변수 in reversed(range(시작, 끝))
- for 변수 in reversed(range(시작, 끝, 증가폭))
reversed 사용하면 된다. 당연히 시작이 끝보다는 높은 수여야 한다.
range괄호 안에 숫자는 포함 x 10이면 9부터 0까지 RGRG?
>>> for i in reversed(range(10)):
print('Hello World!', i)
Hello World! 9
Hello World! 8
Hello World! 7
Hello World! 6
Hello World! 5
Hello World! 4
Hello World! 3
Hello World! 2
Hello World! 1
Hello World! 0
7. 반복문의 변수 i를 변경하기
i에 10을 넣으면 어떻게 될까? 9 8 7 6 ... 1 0 이런 식으로 될까?
>>>for i in range(10):
print(i, end=' ')
i = 10
0 1 2 3 4 5 6 7 8 9
아니다. i에 10이 할당되면 9부터 출력될 것 같지만 그렇지 않다. 왜냐하면 변수 i는 반복할 때마다 다음 값으로 덮어써 지기 때문에 print로 출력될 당시엔 i값이 들어오고 그다음에 10이 되기 때문에 다시 for문으로 올 땐 1이 된다. 0→10→1→10→2→10... 이런 식으로
8. 입력한 횟수대로 반복하기
n=int(input('반복할 횟수를 입력하세요.'))
for i in range(n):
print('안녕!', i)
반복할 횟수를 입력하세요.5
안녕! 0
안녕! 1
안녕! 2
안녕! 3
안녕! 4
입력값으로 5를 입력했으므로 5 값이 n에 들어간다. 그럼 range안에 5가 들어가고 그만큼 반복한다.
9. 시퀀스 객체로 반복하기
for에 range대신 리스트를 넣으면 리스트의 요소를 꺼내면서 반복한다.
>>> a=[10,20,30,40,50]
>>> for i in a:
print(i)
출력:
10
20
30
40
50
튜플도 마찬가지,
>>> fruits=('apple','banana','orage')
>>> for fruit in fruits:
print(fruit)
출력:
apple
banana
orage
튜플도 리스트처럼 똑같다. 추각로 for다음에 변수 i 대신에 fruit처럼 다른 변수를 사용해도 무방하다.
>>> for letter in 'feastforall':
print(letter,end=' ')
출력: f e a s t f o r a l l
문자열도 가능하다.
이 문자열을 뒤집고 싶다면? (5번에 가면 자세한 설명나와있음)
>>> for letter in reversed('feastforall'):
print(letter,end='.')
출력:
l.l.a.r.o.f.t.s.a.e.f.
'IT지식 > Python' 카테고리의 다른 글
파이썬 while의 모든것 (0) | 2021.10.23 |
---|---|
►파이썬 코딩 도장-16.6 심사문제: 구구단 출력하기 (0) | 2021.10.23 |
jupyter notebook 초기사용2(describe(), 사분위수, info(), \\N, sum(), std(), skew(), kurt(), 다양한 메소드들) (0) | 2021.10.19 |
jupyter notebook 에서 초기사용(패키지, import, os, getcwd,pandas, csv, encoding, isnull(), sum(), sep(), \t) (0) | 2021.10.19 |
파이썬 elif사용하기, if와 elif차이 (0) | 2021.10.14 |