for문
- while문과 같이 반복문의 종류중 하나이다.
- for 문은 리스트(list)와 같은 순서가 있는 자료를 사용해서 명령을 반복할 때 while문보다 for 문을 쓰는게 더 깔끔하고 직관적이게 코드를 짤수 있다. 이렇게 프로그래밍 언어에서 동일한 기능을 깔끔하게 만들어 놓는 것을 'syntactic sugar'(꿀)라고 부른다.
- for문의 기본구조는 아래와 같다.
for 변수 in 리스트/range/문자열:
<수행부분>
- for문에서 for 과 in 사이에 있는 변수는 for문의 수행부분에서만 쓰이고 사라지는 local변수이다.
예시
💻 파이썬
number = [1, 2, 3, 4, 5, 6]
i = 0
while i < len(number):
print(number[i])
i += 1
print ()
for num in number:
print(num)
👉 결과
1
2
3
4
5
6
1
2
3
4
5
6
range 함수
- 파라미터가 1개 있는 range함수는 0부터 m-1 까지의 수를 의미한다.
for 변수 in range(m):
print(변수)
- 파라미터가 2개 있는 range함수는 n부터 m-1 까지의 수를 의미한다.
for 변수 in range(n, m):
print(변수)
- 파라미터가 3개 있는 range함수는 간격이 s인 n부터 m-1 까지의 수를 의미한다.
for 변수 in range(n, m, s):
print(변수)
예시
💻 파이썬
for num in range(5):
print(num)
print()
for 변수 in range(1, 6):
print(변수)
print()
for num in range(0, 10, 2):
print(num)
👉 결과
0
1
2
3
4
1
2
3
4
5
0
2
4
6
8
엘리어싱(Aliasing)
- 파이썬에서 한 변수는 하나의 형태의 값만 저장할 수 있다
- 서로 다른 변수가 하나의 형태의 값을 공유하는 개념을 엘리어싱(Aliasing)이라고 한다.
- 원래 있던 a라는 변수의 값을 b라는 변수가 공유하면 b는 a Alias(가명)이다.
- 리스트를 공유할때 엘리어싱이 되고 싶지 않을 때에는 list함수를 써서 list를 복제하면 된다.
예시
💻 파이썬
x = 2
y = x
y = 3
print(y)
print(x)
print()
x = [1, 2, 3, 4, 5]
y = x
y[1] = 8
print(y)
print(x)
print()
x = [1, 2, 3, 4, 5]
y = list(x)
y[1] = 8
print(y)
print(x)
👉 결과
3
2
[1, 8, 3, 4, 5]
[1, 8, 3, 4, 5]
[1, 8, 3, 4, 5]
[1, 2, 3, 4, 5]
리스트와 문자열의 공통점과 차이점
- 리스트와 문자열은 컴퓨터에서 저장하는 방식 매우 비슷하다.
- 공통점
- 인덱싱을 할수 있다
- 슬라이싱을 할 수 있다.
- for반복문에서 쓸 수 있다.
- len함수를 쓸 수 있다.
- 덧셈으로 연결할 수 있다.
- 차이점
- 리스트는 수정가능(Mutable)하지만 문자열은 수정 불가능(Immutable)하다.
예시
💻 파이썬
list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
word = "abcdefg"
print(list[0])
print(word[0])
print()
print(list[3:])
print(word[3:])
print()
for alphabet in list:
print(alphabet)
print()
for alphabet in word:
print(alphabet)
print()
print(len(list))
print(len(word))
print()
list_a = ['a', 'b', 'c']
list_b = ['d', 'e', 'f', 'g']
print(list_a + list_b)
word_a = "abc"
word_b = "defg"
print(word_a + word_b)
print()
list[2] = 'Z'
print(list)
word[2] = 'Z'
print(word)
👉 결과
a
a
['d', 'e', 'f', 'g']
defg
a
b
c
d
e
f
g
a
b
c
d
e
f
g
7
7
['a', 'b', 'c', 'd', 'e', 'f', 'g']
abcdefg
['a', 'b', 'Z', 'd', 'e', 'f', 'g']
TypeError: 'str' object does not support item assignment