✏️

220811 | ② Python / 반복문(for) / 기타 제어문 / 문자열 본문

K-Digital Training

220811 | ② Python / 반복문(for) / 기타 제어문 / 문자열

콩세 2022. 9. 30. 20:57

 

3. 반복문

일정 횟수만큼, 또는 조건식을 만족하는 동안 블록을 반복 실행하는 문장.

 

220810 | ② 멤버십 연산자, 동일성 연산자 / 제어문: 조건문(if, else, elif), match-case, 반복문(while)

▷자료형 변환 문법 추가 설명 https://bean-three.tistory.com/manage/newpost/3?type=post&returnURL=https%3A%2F%2Fbean-three.tistory.com%2F3 위 링크 타고 들어가면 9일 수업 내용 있는데 자료형 변환에 대..

bean-three.tistory.com

 

220810 ②번 글에 반복문 while까지 작성했음.

이번 글은 for 반복문 부터 이어서 작성하겠음.


- for

 

for 변수 in 목록

 

- 목록을 이용해서 목록의 요소(정수 값)를 하나씩 꺼내오며 반복

for i in [1, 2, 3, 4, 5]:
    print(i, "번째 반복 중...")

 

1 번째 반복 중...
2 번째 반복 중...
3 번째 반복 중...
4 번째 반복 중...
5 번째 반복 중...

- 목록을 이용해서, 목록의 요소( 문자열 값)을 하나씩 꺼내오며 반복

for s in ["hello", "hi", "goodbye"]:
hello
hi
goodbye

- 문자열(string)을 이용해서, 문자(character)를 하나씩 꺼내오며 반복

for c in "hello, python!":
    print(c)
h
e
l
l
o
,

p
y
t
h
o
n
!

- range(n) 함수를 이용해서, 0부터 n-1까지 숫자를 생성해서 하나씩 꺼내오며 반복

for i in range(100):
    print(i)

0부터 99까지의 범위가 출력된다.


- range(a, b) 함수를 이용해서, a부터 b-1까지 숫자를 생성해서 하나씩 꺼내오며 반복

for i in range(10, 20):
    print(i)

10부터 19까지의 범위가 출력된다.


- range(a, b, c) 함수를 이용해서, a부터 b-1까지 c씩 증가하는 숫자를 생성해서 하나씩 꺼내오며 반복

for i in range(100, 1000, 200):
    print(i)
100
300
500
700
900

 


▶기타 제어문

 

- continue : 현재 반복을 건너뛰고 다음 반복으로 넘어간다.

i = 0
while i < 10:
    i += 1
    if i ==5:
        continue
    print(i)
1
2
3
4
6
7
8
9
10

1부터 10까지 5를 제외한 수만 출력된다.


- break : 진행 중인 반복을 중단한다.

i = 0
while i < 10:
    i += 1
    if i == 5:
        break
    print(i)
1
2
3
4

1부터 10까지 반복문을 실행하는데, 5가 되는 순간 반복을 중단.


- else : 처음 반복문의 표현식을 만족하지 못하면 실행한다.

i = 0
while i < 10:
    i += 1
    print(i)
else:
    print('else 실행?')
1
2
3
4
5
6
7
8
9
10
else 실행?

while 반복문의 실행이 모두 완료된 후 실행한다.

i = 100
while i < 10:
    i += 1
    print(i)
else:
    print('else 실행?')
else 실행?

i가 100으로 10보다 크기 때문에 while 반복문을 실행할 수 없다.

이럴 경우 else만 실행된다. ( 반복문이 실행되지 않아도 else는 실행됨.)


- pass : 아무런 동작도 하지 않는다. 빈 블록을 표현할 때 사용한다.


▶문자열

문자열 특징

- 불변 데이터(immutable)

- +연산자로 문자열 집합

- *연산자로 문자열 반복

- 아스키 코드(ASCII) 변환 가능

- 유니코드 지원


- 불변데이터 ( immutable)

a = 10
print(a, id(a))
10 2545617732112
a += 20
print(a, id(a))

 

30 2545617732752

a에 20을 더했더니 id값이 약간 바뀌었다.

a -= 20
print(a, id(a))
10 2545617732112

다시 20을 빼주니 값이 처음과 같이 10으로 바뀌고

id값도 최초의 값으로 돌아갔다.

이렇게 값을 재활용하고 다시 돌아가는 것을 불변이라고 한다..

 

문자열로 대입해보면⬇

b = "hello"
c = "hi"
d = "hellohi"
print(b, id(b))
print(c, id(c))
print(d, id(d))
hello 2557940090352
hi 2557940104752
hellohi 2557940090224

b, c, d 모두 다른 id값이 나온다.

e = "hello"
f = "hi"
g = "hello" + "hi"
print(e, id(e))
print(f, id(f))
print(g, id(g))
hello 2557940090352
hi 2557940104752
hellohi 2557940090224

e, f, g 를 새로 만들어서 id값을 출력해보면

b, c, d와 같은 값이 나오는 것을 알 수 있다.

동일한 문자열을 가지면 같은 id값을 가지게 되는 것,,


- 아스키 코드(ASCII) 지원

print(ord("A"))
65

문자 A에 해당하는 숫자열을 알려주라는 코드.

A는 65 / B는 66 / C는 67 / a는 97 / b는 98 ....

 

print(chr(97))
a

숫자 97에 해당하는 문자열이 a라는 것도 출력할 수 있다.