안녕하세요.
오랜만에 파이썬 문법 포스팅이네요.
저는 이론 공부보다는 실제 예제를 풀거나 뭔가를 직접 만들어보면서 학습하는게 효과적이라고 생각하지만
그 과정에서 모르는 부분을 직접 검색하고 학습하면서 그 내용물들을 기록해두고자 합니다.
우선은 파이썬에서 정말 자주 쓰이는 for문으로 시작해보겠습니다.
1. for문이란?
파이썬에서 for문은 지정된 명령어를 반복 실행해주는 역할을 합니다.
while문도 반복문인데 둘이 비슷하죠?
하지만 그 둘은 구조가 다릅니다.
2. for 문의 기본 구조
for 변수 in 리스트:
명령문1
명령문2
...
for문은 위와 같은 구조로 되어있습니다.
이해가 필요하냐구요?
아뇨 파이썬을 만든 사람이 for문은 이렇게 쓰는거야~ 라며 만든거기 때문에
우리는 이해할 필요 없이 그냥 외워서 써야 합니다.
예제를 하나 살펴보죠
a = ['a','b','c']
for i in a:
print(i)
위 예제는
- a, b, c라는 텍스트가 들어있는 리스트인 a를 만들고,
- a에 들어있는 a, b, c를 순서대로 i라는 변수에 집어넣게 됩니다.
- 그럼 for문 안에 있는 print()함수가 i에 들어있는 변수를 순서대로 출력해주게 됩니다.
결과값은 아래와 같이 출력됩니다.
a
b
c
for문 안에서 print함수가 사용되면 한번 반복이 끝날때마다 줄바꿈을 해줍니다.
그래서 a b c가 아니라
a
b
c
가 되는 것이죠.
3. continue문
for문 안에서 continue 문을 만나면, for문의 처음으로 돌아갑니다.
이게 무슨 소리냐구요?
예제로 보도록 하죠.
picks = [1, 2, 3]
num = 0
for pick in picks:
num += 1
if pick == 2:
continue
print(num)
위 예제는
- picks 라는 리스트형 변수에 숫자 1, 2, 3을 넣어줍니다.
- 그리고 num라는 변수에 0을 대입합니다.
- 이제 for문을 만들고, picks에 저장된 숫자들을 순서대로 pick이라는 변수에 넣어줍니다.
- 그리고 for문이 돌아갈때마다 num에 1을 더해줍니다.
- if문을 실행시켜 만약 pick이라는 변수에 담긴 값이 2라면, for문의 처음으로 돌아가고, 아니라면 변수 num에 담긴 값을 출력합니다.
결과값은 아래와 같이 출력됩니다.
1
3
4. for문과 range 함수
range 함수는 특정 범위의 숫자를 자동으로 만들어줍니다.
range문을 하나 실행해 볼까요?
a = list(range(3))
print(a)
위 예제는
- range함수를 이용하여 0부터 2까지, 3개의 숫자를 생성합니다.
- 생성된 숫자를 리스트함수를 이용해 리스트 형태로 변환하고, a라는 변수에 대입합니다.
결과값은 아래와 같이 출력됩니다.
[0, 1, 2]
만약 원하는 구간의 숫자를 생성하고 싶다면 콤마를 이용하면 됩니다.
a = list(range(3, 5))
print(a)
range함수에서 첫번째 칸에는 '원하는 숫자 구간의 시작 값'을,
두번째 칸에는 '원하는 숫자 구간의 마지막 값+1인 값'을 넣어주면 됩니다.
결과값은 아래와 같이 출력됩니다.
[3, 4]
자 그럼 이제 range함수로 생성한 숫자를 for문에 넣어볼게요
for i in range(3):
print(i)
위 예제는
- range 함수에 의해 0부터 2까지의 숫자가 생성됩니다.
- 생성된 숫자를 i라는 변수에 순서대로 대입합니다.
- for문에 의해 print 함수가 변수 i에 담긴 값을 순서대로 출력합니다.
결과값은 아래와 같이 출력됩니다.
0
1
2
5. 구구단 만들기
for문 예제 중 가장 유명한 구구단 예제입니다.
구구단에서 2단은 2를 1~9범위의 숫자와 곱해주는 거죠?
이걸 for문으로 구현하면,
for i in range(1,10):
num=2*i
print(num)
위 예제는
- range 함수로 1부터 9까지의 숫자를 생성합니다.
- 생성된 숫자를 순서대로 변수 i에 넣어줍니다.
- for문을 이용해 변수 num에 2와 변수 i의 값을 곱한 값을 넣어줍니다.
- print함수를 이용해 변수 num의 값을 순서대로 출력합니다.
결과값은 아래와 같이 출력됩니다.
2
4
6
8
10
12
14
16
18
자 2단은 만들었고, 이제 이걸 9단까지 만들려면 어떻게 해야 할까요?
for 문을 두번 쓰면 됩니다.
for j in range(2, 10):
for i in range(1, 10):
num = j*i
print(num)
위 예제는
- 첫번째 for문에서 range 함수를 이용해 2부터 9까지의 숫자를 생성합니다.
- 생성된 숫자를 순서대로 변수 j에 대입합니다.
- 두번째 for문에서 range 함수를 이용해 1부터 9까지의 숫자를 생성합니다.
- 생성된 숫자를 순서대로 변수 i에 대입합니다.
- 변수 num에 j와 i를 곱한 값을 대입합니다.
- print함수를 이용해 변수 num의 값을 출력합니다.
- 이후 j의 값이 바뀔때마다 같은 과정을 반복합니다.
- 두번째 for문에서 range 함수를 이용해 1부터 9까지의 숫자를 생성합니다.
결과값은 아래와 같이 출력됩니다.
2
4
6
...
63
72
81
여기까지
for문을 간단하게 알아봤습니다.
'코딩 > 파이썬' 카테고리의 다른 글
파이썬으로 여러개의 한글 파일을 PDF 파일로 변환하기(hwp to pdf) (8) | 2022.07.06 |
---|---|
Do it! 파이썬 생활프로젝트 후기 (0) | 2022.05.25 |
파이썬으로 아이디 기반 추첨 프로그램 만들기 (0) | 2022.05.09 |
파이썬 - 구글에서 이미지 대량 다운로드 하기 (0) | 2022.04.02 |
파이썬 - 파일 확장자 한번에 변경하기 (0) | 2022.04.01 |