반복문다 거기서 거기일줄 알았다.
그렇지만 파이썬은 조금 달랐다. Araboja
1. 기본 사용법
for i in range(10):
print(i)
별거 없다. 이렇게 쓴다.
다른 언어는 for( i = 0; i < 10; i++)
이런 느낌이고 java나 javascript 에서는 배열에서 사용할 때 for i in arr 이런느낌이 섞인(?) 것 같다.
range() 구조는
range( [start] : [last] : [step] ) 으로 이루어져 있다. 자세한 사용법은 밑으로.
2. 옆으로 나오게 출력
위의 코드를 실행시키면 0~9가 \n이 들어간 상태로 출력이 된다. 이를 1 2 3 4 5... 9 로 나오게 할 수 있다.
#0~9가 0 1 2 3 4 5 6 7 8 9 (옆으로 나오게) 출력
for i in range(10):
print(i, end=' ')
print(i, end=' ') 로 end=' '을 추가해주면 된다.
응용으로는
#0, 1, 2..., 8, 9 (마지막 , 안나오게)
for i in range(10):
if i<9:
print(i, end=', ')
else:
print(i)
이런 방법이 있다.
실행 시키면
1, 2, 3, ... , 8, 9 가 출력된다.
3. 홀수 / 짝수만 출력
다른 언어를 공부했다면 혹은 앞의
2022.01.10 - [개발/Python] - [Python] 연산자, in(멤버쉽) 연산자, bool
위 글을 봤다면 응용 가능하다.
# 4~21 홀수 합
sum = 0
for i in range(4, 22):
if i%2 == 1:
sum += i
print(sum)
4~21 까지 홀수의 합을 구하는 반복문이다.
if i%2 == 1 의 으로 홀수만 구하는 방법이 있지만,
range() 안에는 마지막에 [step] 기능이 있다는걸 봤다.
#1~100 짝수만 출력
for i in range(2, 101, 2):
print(i, end=' ')
위와 같이 range(2, 101, 2) 로 step 을 지정해주면 원하는 값을 출력할 수 있다.
range(2, 101, 2) 를 풀어 설명하자면
2부터 101까지 2단계씩 올려서 반복 하라. 라는 뜻이다
출력하면 2 4 6 ... 100 이 나온다.
3. 중첩 반복문
다른 언어를 배웠다면 쉽게 응용 가능하다.
가장 기초적인 구구단을 출력해보자면
#2단~9단 구구단 출력
for i in range(2, 10):
for j in range(1, 10):
print(i, ' x ', j, ' = ', i*j)
이렇게 하면
2 x 1 = 2
2 x 2 = 4
...
9 x 9 = 81
로 밑으로 쭉나오게 된다.
만약
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5 ...
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 ...
...
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45...
식으로 옆으로 나오는 구구단은
# (옆으로)
for i in range(1, 10):
for j in range(2, 10):
print(j, ' x ', i, ' = ', j*i, end=' ')
print()
반복문 위치만 살짝 수정해주면 된다.
4. 리스트 요소 출력
[ ] 로 묶인 리스트를 반복문을 이용해서 출력하는 방법이다.
#리스트 요소 출력, 가로로
lst = ['dog', 'hippo', 'elephant', 'lion', 'tiger', 'alligator']
for i in range(len(lst)):
print(lst[i], end=' ')
간단하다.
len( )으로 리스트의 갯수를 구하고 출력할 때 lst[i] 를 사용하여 출력하면 된다.
결과는
dog hippo elephant lion tiger alligator
이를 역으로 출력할 수도 있다.
#리스트 거꾸로 출력
lst = ['dog', 'hippo', 'elephant', 'lion', 'tiger', 'alligator']
for i in lst[ : : -1]: #[ start : last : step]
#print(lst[i], end=' ') <- range() 를 쓴게 아닌 lst를 직접 사용했기 때문에 i에 배열 값이 직접 들어간다.
print(i, end=' ')
리스트도 range처럼 [ start : last : step] 이 구성되어 있다.
lst[::-1] 을 쓰면 처음부터 끝까지 역순으로 출력하라. 라는 의미가 된다
결과는
alligator tiger lion elephant hippo dog
저기서 주의 할 점은
위에 썻듯이 print(lst[i], end=' ') 로 쓰면 안된다.
range를 사용하여 배열에 정수 정수값이 들어가는게 아닌, 배열 리스트를 직접 사용했기 때문에
i 에 0, 1, .. 이 들어가는게 아닌 리스트의 lst[0], lst[1] .. 이 i에 저장되어 진다.
그러므로 print(lst[i]) 로 출력 시도시 에러가 발생하게 된다.
끝.
'Language > Python' 카테고리의 다른 글
[Python] 리스트 (2) / 추가, 수정, 삭제, 병합, 인덱스, 중복 제거/ 예제로 공부하는 Python 100 문제풀이 (0) | 2022.02.09 |
---|---|
[Python] 리스트 (1) / 예제로 공부하는 Python 100 문제풀이 (0) | 2022.01.21 |
[Python] 연산자, in(멤버쉽) 연산자, bool / 예제로 공부하는 Python 100 문제풀이 (0) | 2022.01.10 |
[Python] 아스키 코드, Ascii Code / 예제로 공부하는 Python 100 문제풀이 (0) | 2022.01.10 |
[Python] 자료형, list, tuple, set, dict / 예제로 공부하는 Python 100 문제풀이 (0) | 2022.01.04 |
댓글