[6주차] Chapter 7.2 ~ 8

 

[기본 미션] p.342 [직접 해보는 손코딩:BeautifulSoup 스크레이핑 실행하기] 예제 실행 후 결과 화면 인증샷

 

내가 뭘 잘못했는지 엄청 오류 나고 실행 안되어서 구글링 해서 찾아본 방법

 

성공!

 

 

[선택 미션] 혼공 용어 노트에 나만의 언어로 객체, 클래스, 인스턴스, 생성자, 메소드 보충 설명쓰고 인증샷

 

 

[5주차] Chapter 6~7.1

 

[기본 미션] 구문 오류와 예외의 차이 설명하기

 

오류의 종류

  • 프로그램 실행 전에 발생하는 오류 - 구문 오류(Syntax Error)
  • 프로그램 실행 중에 발생하는 오류 - 예외(Exception) 또는 런타임 오류(Runtime Error)

구문 오류

괄호의 개수, 들여쓰기 문제 등으로 인해 프로그램이 실행되기도 전에 발생하는 오류

해결하지 않으면 프로그램 자체가 실행되지 않는다.

 

예외 또는 런타임 오류

실행 중에 발생하는 오류

 

기본 예외 처리

예외 처리 : 예외를 해결하는 모든 것

구문오류는 프로그램이 실행조차 되지 않기 때문에 예외 처리 방법으로 처리할 수 없다. 문법적인 문제가 발생한 코드를 수정해 줘야 한다.

  • 기본 예외 처리 : 조건문을 사용하는 방법
  • try 구문을 사용

try except 구문

예외가 발생할 상황을 예측하고 모두 조건문으로 처리하는 것은 어렵다.

프로그래밍 언어의 구조적인 문제로 인해 조건문만으로 예외를 처리할 수 없는 경우도 있다.

 

try:
    예외가 발생할 가능성이 있는 코드
except:
    예외가 발생했을 때 실행할 코드
    pass // 예외 발생만 일단 처리하고 강제 종료되는 것부터 막기위한 목적

 

 

try except else 구문

try except 구문 뒤에 else 구문을 붙여서 사용하면 '예외가 발생하지 않았을 때 실행할 코드'를 지정할 수 있다.

예외가 발생할 가능성이 있는 코드만 try 구문 내부에 넣고 나머지를 모두 else 구문으로 뺀다

try:
    예외가 발생할 가능성이 있는 코드
except:
    예외가 발생했을 때 실행할 코드
else:
    예외가 발생하지 않았을 때 실행할 코드

 

 

finally 구문

예외처리 구문에서 가장 마지막에 사용할 수 있는 구문

예외가 발생하든 발생하지 않든 무조건 실행할 때 사용하는 코드

 

try:
    예외가 발생할 가능성이 있는 코드
except:
    예외가 발생했을 때 실행할 코드
else:
    예외가 발생하지 않았을 때 실행할 코드
finally:
    무조건 실행할 코드

 

 

[선택 미션] p.293 3번 문제 풀고 인증샷

 

 

[4주차] Chapter 5

 

[기본 미션] p.223 [직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행결과 화면 인증샷

 

 

 

[선택 미션] 매개변수, 기본 매개변수, 가변 매개변수에 대해 간략하게 정리한 내용 포스팅하기

 

함수의 기본

def 함수 이름():
       문장

 

매개변수

 

매개변수 : 괄호 안에 것들. 함수를 생성할 때 괄호 내부에 식별자를 입력해서 만든다
매개변수를 만들면 함수를 호출할 때 값을 입력해서 함수 쪽으로 전달할 수 있다

def 함수 이름(매개변수매개변수, … ) :
       문장

 

매개변수와 관련된 TypeError

함수를 생성할 때 매개변수를 만들었는데, 함수를 호출할 때 매ㅐ개변수를 넣지 않거나 더 많이 넣으면 오류 발생
함수를 호출할 때는 함수를 선언할 때와 같은 개수의 매개변수를 입력해야 한다

 

가변 매개변수

함수를 선언할 때의 매개변수와 함수를 호출할 때의 매개변수가 같아야 한다
print()함수는 매개변수를 원하는 만큼 입력할 수 있다
이처럼 매개변수를 원하는 만큼 받을 수 있는 함수를 가변 매개변수라고 한다. (매개변수가 변할 수 있다)

def 함수이름(매개변수매개변수, … , *가변 매개변수):
        문장

 

 

가변 매개변수 사용시 제약사항

가변 매개변수 뒤에는 일반 매개변수가 올 수 없다
어디까지가 가변 매개변수고 어디가 매개변수인지 구분하기 어렵기 때문
가변 매개변수는 하나만 사용할 수 있다

 

 

기본 매개변수

매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본 값(‘매개변수 = 값’ 형태)

print(value, … , sep=‘ ‘, end=‘\n’, file=sys.stdout, flush=False)

 

 


기본 매개변수 사용시 제약사항

기본 매개변수 뒤에는 일반 매개변수가 올 수 없다

 


키워드 매개변수

가변 매개변수와 기본 매개변수 둘을 같이 쓸 수 있을까?

 

  • 기본 매개변수가 가변 매개변수보다 앞에 올 때는 의미가 없다(오류)
  • 가변 매개변수가 기본 매개변수보다 앞에 올 때는 가변 매개변수가 우선이 됨

키워드 매개변수: 매개변수 이름을 지정해서 입력하는 매개변수
ex) print(“문장”, end=“ ”)


리턴

•자료없이 리턴하기

      함수 내부에서는 return이라는 키워드를 사용할 수 있다

        이 키워드는 함수를 실행했던 위치로 돌아가라는 뜻으로 함수가 끝나는 위치를 의미한다

 

자료와 함께 리턴하기

       리턴 뒤에 자료를 입력하면 자료를 가지고 리턴한다

 

아무것도 리턴하지 않기

       None 출력한다

 

 

global 키워드

함수 내부에서 함수 외부에 있는 변수를 참조하지 못한다

참조 : 변수에 접근하는 것

함수 내부에서 함수 외부에 있는 변수라는 것을 설명하기 위해 사용

global 변수이름

 

튜플 

함수와 함께 많이 사용되는 리스트와 비슷한 자료형. 리스트와 다른 점은 한번 결정된 요소는 바꿀 수 없다

(데이터, 데이터, 데이터, … )

 

튜플은 함수의 리턴에 많이 사용한다. 함수의 리턴에 튜플을 사용하면 여러개의 값을 리턴하고 할당할 수 있다

def test():
      return (10, 20)
a, b= test() //a = 10, b=20 값이 할당된다

 

 

람다  

매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭고, 코드 공간 낭비라는 생각이 들 때 함수를 간단하고 쉽게 선언하는 방법

‘간단한 함수를 쉽게 선언하는 방법’

lambda 매개변수 : 리턴 값

 

ex) power = lambda x: x*x

      under_3 = lambda x: x<3

 

filter(), map()

map() 함수는 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성

map(함수, 리스트)

 

filter() 함수는 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것으로, 새로운 리스트를 구성해주는 함수

filter(함수, 리스트)

 

[3주차] Chapter 4

 

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

 

리스트

 

리스트

  • 여러가지 자료를 저장할 수 있는 자료
  • 숫자, 문자, 수식 등의 자료들을 모아서 사용할 수 있게 해주는 특별한 형태의 자료

리스트 선언하고 요소에 접근하기

  • 대괄호([ ])에 자료를 쉼표로 구분해서 입력
  • 대괄호 내부에 넣는 자료를 '요소(element)'라고 부른다
[요소, 요소, 요소, ... ]

 

  • 리스트 기호인 대괄호 안에 들어간 숫자를 '인덱스'라고 부른다
  • 인덱스는 리스트 내부에서 값의 위치를 의미
  • 인덱스는 0부터 센다

대괄호 안에 음수를 넣으면 뒤에서부터 요소를 선택할 수 있다

 

리스트 접근 연산자를 이중으로 사용 가능

 

리스트 안에 리스트를 사용 가능

 

리스트에서의 IndexError 예외

  • 리스트의 길이를 넘는 인덱스로 요소에 접근하려고 할 때 발생하는 예외

리스트 연산자 : 연결(+), 반복(*), len()

  • '+': 문자열 연결 연산자
  • '*': 문자열 반복 연산자 
  • len()함수: 문자열의 글자수(길이)

 

 

리스트에 요소 추가하기 : append, insert, extend

  • 리스트명.append(요소) : 리스트 뒤에 요소를 추가
  • 리스트명.insert(위치, 요소) : 리스트 해당 위치에 요소를 추가
  • 리스트명.extend([리스트]) : 한번에 여러 요소 추가

 

 

리스트에 요소 제거하기

  • 인덱스로 제거하기 : del, pop
    • del 리스트명[인덱스] : 특정 인덱스에 있는 요소를 제거. 범위 지정해 리스트 요소를 한꺼번에 제거 가능
    • 리스트명.pop(인덱스) : 제거할 위치에 있는 요소 제거. 매개변수 입력하지 않으면 마지막 요소를 제거

 

 

  • 값으로 제거하기 : remove
    • 리스트.remove() : 리스트 내부에 있는 값으로 제거
  • 모두 제거하기 : clear
    • 리스트.clear() : 리스트 내부의 요소를 모두 제거

 

리스트 내부에 있는지 확인하기 : in/not in 연산자

  • 값 in 리스트 >> True, False로 출력

 

for 반복문 : 리스트와 함께 사용하기

for 반복자 in 반복할 수 있는 것:
     코드

 

 

 

 

 

딕셔너리

 

딕셔너리

  • 키를 기반으로 값을 저장

딕셔너리 선언하고 요소에 접근하기

  • 중괄호({ })로 선언하며, '키 : 값' 형태를 쉼표( , )로 연결해서 만든다
  • 키는 문자열, 숫자, 불등으로 선언할 수 있다

변수 = {

    키 : 값,

    키 : 값,
    ...
    키 : 값

}

 

  • 요소에 접근할 때는 리스트처럼 딕셔너리 뒤에 대괄호({ })를 입력하고 내부에 인덱스처럼 키를 입력
  • 선언할 때는 중괄호({ })를 사용하지만 요소에 접근할 때는 대괄호([ ])를 입력하고 내부에 키를 입력

 

 

 

딕셔너리의 키가 여러개의 자료를 가지고 있는 리스트일 때는 인덱스를 지정하여 리스트 안의 특정 값을 출력할 수도 있다

 

 

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

  • 딕셔너리의 키에 단순한 식별자를 입력하면 이를 변수로 인식한다
  • 키를 문자열로 사용할 때는 반드시 따옴표를 붙여줘야 한다

딕셔너리에 값 추가하기/제거하기

  • 딕셔너리[새로운 키] = 새로운 값 : 값 추가
  • del 딕셔너리["특정 키"] : 해당 요소 제거

del 키워드 사용

 

 

 

KeyError 예외

  • 딕셔너리에 존재하지 않는 키에 접근하면 KeyError 발생한다

딕셔너리 내부에 키가 있는지 확인하기 : in, get()

  • key in dictionary >> True, False로 출력
  • dictionary.get("key") >> 존재하지 않는 키에 접근할 경우 None 출력

for 반복문 : 딕셔너리와 함께 사용하기

for 키 변수 in 딕셔너리 :
    코드

 

 

 

범위 자료형

 

범위

  • 리스트, 딕셔너리 외에 for 반복문과 함께 많이 사용되는 범위 자료형
  • 매개변수에 숫자를 한 개 넣는 방법 
# 0 ~ A-1 까지의 정수로 범위를 만든다
range(A) // A는 숫자

 

  • 매개변수에 숫자를 두 개 넣는 방법
# A ~ B-1 까지의 정수로 범위를 만든다
range(A, B) // A와 B는 숫자

 

  • 매개변수에 숫자를 세 개 넣는 방법
# A ~ B-1 까지의 정수로 범위를 만드는데 앞뒤의 숫자가 C만큼의 차이를 가진다
range(A, B, C) // A, B, C는 숫자

 

 

[선택 미션] p.157쪽의 1번 문제의 답 쓰고 인증샷

 

 

[2주차] Chapter 2.3 ~ 3

 

[기본 미션] p.137 3번 문제 풀고 본인이 태어난 해와 띠를 출력하는 결과값 화면 인증샷

 

확인문제 3번

 

 

 

본인이 태어난 해와 띠 출력

 

 

 

 

[선택 미션] else 구문과 elif 구문 정리한 내용 포스팅하기

 

else 구문

 

  •   if 조건문 뒤에 사용
  •   if 조건문의 조건이 거짓일 때 실행
if 조건:
           조건이 참일 때 실행할 문장
else:
           조건이 거짓일 때 실행할 문장

 

 

elif 구문

 

  •    if 조건문과 else 구문 사이에 입력
  •    세개 이상의 조건을 연결해서 사용할 때 적절
  •    앞 단계 조건문에서 비교했던 것을 다음 단계에서 한 번 더 하고 있지는 않은지 확인하기
if 조건A:
           조건A가 참일 때 실행할 문장
elif 조건B:
           조건B가 참일 때 실행할 문장
elif 조건C:
           조건C가 참일 때 실행할 문장

else:
           모든 조건이 거짓일 때 문장

 

 

pass 키워드

 

  •    프로그래밍의 전체 골격을 잡아 놓고 내부에서 처리할 내용은 나중에 만들고자할 때 ‘곧 개발하겠다’는 의미

 

raise NotImplementedError

 

  •    ‘아직 구현하지 않은 부분’이라는 오류 강제로 발생

 

 

[1주차] Chapter 1 ~ 2.2

 

[기본 미션] p.63 3~5번 실행결과 쓰고 인증샷

 

확인문제 3번

 

 

 

확인문제 4번

 

 

“안녕하세요” 문자열의 인덱스 범위는 0~4인데 5는 인덱스 범위 초과한다.

 

확인문제 5번

 

 

 

 

[선택 미션] 모르는 용어(3~5개) 찾아 혼공 용어 노트에 정리하고 인증샷

 

+ Recent posts