AI실무 기본과정 - 핵심 파이썬 기초 프로그래밍 step 2
3. 반복문
sum = 0
for i in [1, 2, 3]:
sum = sum+i
print(sum)
해당 for 문의 결과값은 1,3,6이 된다.
* for문과 if문 안의 실행문에는 꼭 동일한 들여쓰기가 들어가야 한다.(Python이 실행문인지 구분하는 규칙)
[1]원소 부분의 문자열
ex) *CodeEditor
length = 0
for x in 'abcdefg':
length = length + 1
print("x :",x)
print(length)
*Console
x : a
x : b
x : c
x : d
x : e
x : f
x : g
7
코드 실행이 완료되었습니다.
꼭 리스트 원소가 아니라 문자열이 들어가도 안의 알파벳을 꺼내오고
위의 방식으로 해당 문자열의 길이를 알 수 있다.
* for문은 언제 사용하는 것이 좋을까?
= 원소에 대한 반복이 필요할때 하면 유용하다. 원소에 대한 반복이라 함은 각각의 원소들을 참조하면서 원소끝까지 반복을 해야하는 것을 원소에 대한 반복이라고 한다.
[2] for문 if ~ elif 응용
ex) * CodeEditor
## 변수 mix에 있는 "쌀"과 "씰"의 개수를 세봅시다.
mix = "쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰쌀씰쌀쌀씰쌀씰"
count_ssal=0
count_ssil=0
for i in mix:
if i == '쌀':
count_ssal+=1
elif i == '씰':
count_ssil+=1
print(count_ssal)
print(count_ssil)
*Console
300
225
코드 실행이 완료되었습니다.
[3] 반복문2 for range문 예제
ex) *CodeEditor 정수를 담은 시퀀스가 필요한 경우 예제
for i in range(1,11):
print(i)
*Console
1
2
3
4
5
6
7
8
9
10
숫자가 짧으니까 직접 리스트형식으로 뽑아내도 상관없는데 100~1000이면 유용하게 시퀀스 자료형을 만들수있다.
ex2) *CodeEditor 상단 코드 외의 응용
for i in range(5):
print("I Love Python!")
*Console
I Love Python!
I Love Python!
I Love Python!
I Love Python!
I Love Python!
코드 실행이 완료되었습니다.
ex3) *CodeEditor
#for-range()를 이용해서 19단을 전부 출력해봅시다!
for i in range(1, 20):
print("19 *", i, "=", 19*i)
*Console
너무 길어서 굳이 콘솔은 안뽑겠음
4.자료형 활용
[1] list.append, sort() 활용 - sort() function model = same
ex) *CodeEditor
my_list = []
my_list.append(5)
my_list.append(4)
my_list.append(2)
my_list.append(1)
print(my_list)
my_list.sort()
print(my_list)
*Console
[5, 4, 2, 1]
[2, 3, 4, 5]
코드 실행이 완료되었습니다.
[2] 시퀀스 자료형의 인덱싱/슬라이싱 예제(시퀀스 자료형의 정의는 상단 pdf자료 참조)
- 문자열 "Impossible"이 담긴 변수 my_str을 만들어봅시다.
- 리스트 ["Apple", "Banana", "Chamwae", "Durian"]이 차례대로 담긴 변수 my_list를 만들어봅시다.
- 리스트 my_list에서 인덱싱을 이용해 변수 var1에 "Chamwae"를 넣어봅시다.
- 문자열 my_str에서 슬라이싱을 이용해 변수 var2에 "possible"을 넣어봅시다.
ex) *CodeEditor
my_str = 'Impossible'
my_list = ['Apple', 'Banana', 'Chamwae', 'Durian']
var1 = my_list[2]
var2 = my_str[2:]
[3] 시퀀스 자료형의 길이와 멤버 조사 예제
ex) *CodeEditor
my_str = "Impossible"
my_list = ["Apple", "Banana", "Chamwae", "Durian"]
var1 = len(my_str)
var2 = "Egg" in my_list
print(var1, var2)
*Console
10 False
코드 실행이 완료되었습니다.
[4] Dictionary 자료형 (자바의 Json형태의 데이터 타입과 동일) 데이터 핸들링 예제
- 다음 대응관계가 담긴 Dictionary를 하나 만들고, 이를 변수 my_dict에 넣어봅시다.
- “사과” → “apple”
- “바나나” → “banana”
- “당근” → “carrot”
- 사과를 영어로 뭐라고 할까요? my_dict에서 “사과”를 Key로 넣어 나온 Value를 변수 var1에 넣어봅시다.
- 당근은 싫어요! my_dict에서 당근-carrot을 제거해봅시다.
- 체리는 좋아요! my_dict에서 체리-cherry를 추가해봅시다.
ex) *CodeEditor
my_dict = {"사과":"apple", "바나나":"banana", "당근":"carrot"}
var1 = my_dict["사과"]
del my_dict["당근"]
my_dict["체리"] = "cherry"
[5] Dictionary 자료형의 키값 예제
ex) *CodeEditor
my_dict = {}
my_dict[1] = "Integer"
my_dict['a'] = "String"
my_dict[(1, 2, 3)] = "Tuple"
try:
#여기에 [1, 2, 3] → "List"의 대응관계를 만들어봅시다.
my_dict[[1, 2, 3]] = "List"
except TypeError:
print("List는 Dictionary의 Key가 될 수 없습니다.")
*Console