Time for us to shine

[혼공학습단 10기] 혼자 공부하는 파이썬 (개정판) 3주차 본문

혼공학습단/혼자 공부하는 파이썬 (개정판)

[혼공학습단 10기] 혼자 공부하는 파이썬 (개정판) 3주차

SH Park 2023. 7. 23. 15:44

▶3주차 미션 (7/17 ~ 7/23)

진도 : Chapter 04

기본 미션 : 리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 포스팅하기 

선택 미션 : p.213쪽의 1번 문제의 답 쓰고 인증하기 


Chapter 04 반복문

 

04-1. 리스트와 반복문 

  • 기본개념
    • 문자열 : 문자들이 일렬로 나열된 것 
      ex) "가나다라"
    • 수열 : 숫자들이 일렬로 나열된 것 
      ex) 1 2 3 4 
    • 배열 : 숫자, 문자, 불 자료형 등이 일렬로 나열된 것 
      ex) [10, 10.0, "가나다", True]
      * 수열과는 다르게 숫자 0번째 부터 센다*
    • for 반복문의 기본적인 사용 형태 
      • 매개변수에 리스트를 넣는 경우
      • 매개변수에 딕셔너리를 넣는 경우
      • 매개변수에 range를 넣는 경우 
  • 리스트 [ ] : 여러 가지 자료를 저장할 수 있는 자료형
    • [요소, 요소, 요소...]
    • 요소 (=element) : 리스트 내부에 있는 각각의 내용
    • 인덱스 : 리스트 내부에서 값의 위치
  • 리스트 반대로 돌리기
    a = [1, 2, 3, 4, 5]
    print(a[ : : -1])  -->  [5, 4, 3, 2, 1]

  • 중첩 리스트
    a = [[1, 2, 3], [4, 5], [6, 7]]
    a[0]  -->  [1, 2, 3]
    a[0][0]  -->  1

  • 리스트 연산하기
    • 연결 (+) 
    • 반복 (*)
    • len()

연결 (+)

 

반복 (*)

 

len()

 


 

  • 리스트에 요소 추가
append() : 가장 마지막에 요소를 하나 추가 
리스트명.append(요소)
insert() : 원하는 위치에 요소를 하나 추가 
리스트명.insert(위치, 요소)
extend() : 가장 마지막에 요소를 여러 개 추가 
리스트명.extend([  ])

 

 

  • 리스트에 요소 제거 
    • 인덱스에 따라 제거 : del, pop()
    • 값에 따라 제거 : remove()
    • 전부 제거 : clear() 
del : 제거하고 싶은 인덱스 입력 
del 리스트명[인덱스]
pop() : 제거하고 싶은 인덱스 입력
리스트명.pop(인덱스)
remove() : 제거하고 싶은 요소(값)를 입력 
리스트명.remove()
clear() : 모든 요소를 제거 
리스트명.clear()

 

 

  • 리스트 정렬
sort() : 리스트 요소를 정렬하고 싶을 때 / 기본 오름차순 정렬임
리스트명.sort()

 

 

  • 리스트 내부에 있는지 요소 존재 확인 
in 연산자 : 특정 값이 리스트 내부에 있는지 확인 
in 리스트 
not in 연산자 : 특정 값이 리스트 내부에 없는지 확인 
not in 리스트 

 


 

  • for 반복문 

 

  • for 반복문 : 리스트와 함께 사용 
for 반복변수 in 리스트:
     코드

총합
총곱

 

  • 중첩 리스트 & 중첩 반복문
    • 1차원 리스트 : 리스트가 한 겹으로 감싸진 리스트 
      [1, 2, 3]
    • 2차원 리스트 : 리스트가 두 겹으로 감싸진 리스트 
      [[1, 2, 3], [4, 5, 6]]

2차원 리스트에 반복문 한번

 

2차원 리스트에 반복문 두번


 

04-2. 딕셔너리와 반복문 

  • 딕셔너리 { } : 키를 기반으로 여러 가지 자료를 저장할 수 있는 자료형 
    • {키 : 값, 키 : 값, 키 : 값....}
    • 키 (=key) : 딕셔너리 내부에서 값이 무엇인지를 나타내는 것 
      숫자, 문자열, 불, 튜플
    • 값 (=value) : 딕셔너리 내부에 있는 키의 내용
      모든 값 
자료형 의미 가리키는 위치 선언 형식
리스트 인덱스를 기반으로 값을 저장  인덱스 변수 = [ ]
딕셔너리 키를 기반으로 값을 저장 변수 = { }
구분 선언 형식 사용 예 틀린 예
리스트 list_a = [ ] list_a[1]  
딕셔너리 dict_a = { } dict_a["name"] dict_a{"name"}

 

# 주의할 점
딕셔너리를 선언할 때  -->  중괄호 { } 사용
딕셔너리의 요소에 접근할 때  -->  리스트처럼 딕셔너리 뒤에 대괄호 [ ] 입력하고 내부에 인덱스처럼 키를 입력 

딕셔너리의 요소에 접근할 때

 

 

  • NameError : 딕셔너리의 문자열 키와 관련된 실수 

잘못된 예시
올바른 예시

 

  • for 반복문 : 딕셔너리와 함께 사용 
for 반복변수 in 딕셔너리:
     코드

 

  • 중첩 반복문 

 


 

  • 딕셔너리에 요소 값을 변경  
딕셔너리명[교체할 키] = 새로운 값

 

 

  • 딕셔너리에 요소 추가
딕셔너리명[새로운 키] = 새로운 값

 

 

  • 딕셔너리에 요소 제거
del 딕셔너리명[제거할 키]

 

 

  • 딕셔너리 내부에 키가 있는지 확인 
in 키워드 : 특정 키가 딕셔너리 내부에 있는지 확인 
찾을 키 in 딕셔너리명
get() : 존재하지 않는 키에 접근할 경우 에러를 발생시키지 않고 None을 출력 
딕셔너리명.get(찾을 키)

 


 

04-3. 범위 자료형과 while 반복문  

  • range() : 정수로 이루어진 범위 만들 때 사용 
    • range(A) : 0부터 A-1까지의 정수 범위 
    • range(A, B) : A부터 B-1까지의 정수 범위 
    • range(A, B, C) : A부터 B-1까지의 정수 중, 앞뒤의 숫자가 C만큼 차이나는 범위 
    • range() 함수의 매개변수로는 반드시 '정수'를 입력해야 함 

5 또는 0을 반드시 포함해야 한다는 것을 강조하고 싶을 때

 

 

  • for 반복문 : range()와 함께 사용
for 숫자 변수 in range():
     코드

 

 

  • for 반복문 : 리스트와 range() 조합

 

 

  • for 반복문 : 반대로 반복 (=역반복문)
1. range() 함수의 매개변수 3개 사용하는 방법
2. reversed() 함수 사용

 


 

  • while 반복문 
    • 복합구문
    • 조건이 참이라면 반복 
    • True라면 항상 참이기 때문에 끝나지 않는(=무한 반복문)이 됨 
      • 프로그램에게 "죽기 전까지 계속 상태를 감시해라" 등을 명령할 때 많이 사용함
      • 강제 종료 : Ctrl + C
while 불 표현식:
    코드
끝나지 않는 ...............................

 

# C, C++, Java 등의 프로그래밍 언어는

for 반복문으로 할 수 있는 일을 while 반복문으로도 구현할 수 있고, 

while 반복문으로 할 수 있는 일을 for 반복문으로도 구현할 수 있음

 

# But 파이썬은 

for 반복문으로 할 수 있는 일을 while 반복문으로도 구현할 수 있지만,

while 반복문으로 할 수 있는 일을 for 반복문으로 구현은 불가능함  

 

 

  • while 반복문 : for 반복문처럼 사용 
    • for 반복문 설명할 때 언급했던 것 이외에는 모두 while 반복문 사용
    • 무한 반복  -->  only while 반복문 
    • 특정 횟수만큼 반복  -->  for 반복문
      ex) 빵 10개를 먹어라
    • 조건으로 반복  -->  while 반복문 
      ex) 내일 아침까지 계속 먹어라, 바게트빵만 다 먹어라 

 

 

  • while 반복문 : 상태를 기반으로 반복
    • 리스트의 remove() 함수는 리스트 내부에서 해당하는 값을 하나만 제거 할 수 있음 
    • But while 반복문을 활용하면 여러 개 제거 가능 

 

 

  • while 반복문 : break 키워드 & continue 키워드 
    • 반복문 내부에서만 사용 가능 
break 키워드 : 반복문 전체를 벗어날 때 사용

 

continue 키워드 : 현재 반복을 생략하고, 다음 반복으로 넘어갈 때 사용 

 


04-4. 문자열, 리스트, 딕셔너리와 관련된 기본 함수 

리스트에 적용할 수 있는 기본 함수 min(), max(), sum()
리스트 뒤집기 reversed()
현재 인덱스가 몇 번째인지 확인하기 enumerate()
딕셔너리로 쉽게 반복문 작성하기 items()
리스트 안에 for문 사용하기 리스트 내포
min() : 리스트 내부에서 최솟값을 찾음 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
max() : 리스트 내부에서 최댓값을 찾음 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sum() : 리스트 내부에서 값을 모두 더함 
reversed() : 리스트 뒤집기 
# for문에서 배운 역반복문과 동일 
enumerate() : 현재 인덱스가 몇 번째인지 확인 
for 인덱스, 값 in enumerate(리스트)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
for 인덱스, 값 in enumerate(리스트)
items() 
for 키, 값 in 딕셔너리.items()
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
for 키, 값 in 딕셔너리.items()
리스트 내포 : 반복 가능한 것을 기반으로 새로운 리스트를 만들어내는 문법
리스트 이름 = [표현식 
                        for 반복자 in 반복할 수 있는 것]
 리스트 이름 = [표현식
                        for 반복자 in 반복할 수 있는 것
                        if 조건문]

 

 


🎁기본미션 

리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 위와 같이 포스팅 함

 

🎁선택미션