본문 바로가기

코딩/파이썬 혼공단

혼공파 파이썬 5주차 기본미션과 선택미션 공부하기

벌써 5주차 공부라니~~!!!

5주차까지 공부하면서 느낀것이 있는데

혼공 족장님께서 간식을 주시는지 이유를 알것같았다~ㅎㅎㅎㅎㅎ

특히 4주차 5주차때는 지치기도 하고 그랬는데...

진짜 진짜!!! 간식의 힘이 엄청나다는 사실~ 지칠때쯤 간식있으니까 

"간식도 주셨는데 해보자!!!!"! 이런 마인드가 되서 다시 컴퓨터 앞에 앉게 된다.

사실 어느샌가 코딩을 위한 간식이 간식을 위한 코딩이 된것 같기도 하지만......ㅎㅎㅎㅎ

그래도 간식 덕분에 코딩공부에 더 열정이 생기고 더 열심히 코딩 공부하게 되고 열심히 하다보니

어렵게만 느껴졌던 코딩에 재미도 느끼게 되었으니까~~!!!

만족만족 대만족이다~~!!!

06-1 구문 오류와 예외

 

오류의 종류

프로그래밍의 언어의 오류(error)에는 크게 두 가지 종류가 있습니다.

  ● 프로그램 실행 전에 발생하는 오류

  ● 프로그램 실행 중에 발생하는 오류

두 가지 모두 '오류'라고 부릅니다.

 

구문 오류(syntax error) :

- 실행 전에 발생하는 오류

(괄호의 개수, 들여쓰기 문제 등으로 프로그램이 실행되기도 전에 발생하는 오류입니다.)

 

예외(exception) 또는 런타임 오류(runtime error) : 프로그램 실행 중에 발생하는 오류

 

 

구문오류

- 실행 전에 발생하는 오류

- 구문 오류는 해결하지 않으면 프로그램 자체가 실행되지 않습니다. 따라서 코드를 제대로 수정해야 합니다.

 

구문 오류가 발생하는 코드

#  프로그램 시작
print ("# 프로그램이 시작되었습니다.!")


# 구문 오류 발생 코드
print("# 예외를 강제로 발생시켜 볼게요!) -------> 닫는 따옴표로 문자열을 닫지 않았습니다.

 

코드를 실행하면 EOL(End Of Line)에 문제가 있다고 합니다. 중요한 것은 앞에 적혀있는 SyntaxError라는 단어입니다.

SyntaxError: 구문에 문제가 있어 프로그램이 실행조차 되지 않는 오류입니다.

 

오류

SyntaxError: EoL while scanning string literal

 

구문 오류 해결

# 프로그램 시작
print("# 프로그램이 시작되었습니다!")


# 구문 오류 발생 코드
print("# 예외를 강제로 발생시켜 볼게요!")

 

 

예외

예외 또는 런타임 오류는 실행 중에 발생하는 오류를 의미합니다.

(프로그램이 일단 실행된 다음, 실행 중에 발생하는 오류)

예외가 발생하는 코드

# 프로그램 시작
print("# 프로그램이 시작되었습니다!")


# 예외 발생 코드
list_a[1]

 

위의 코드를 실행하면

# 프로그램이 시작되었습니다!    ------> 여기까지는 프로그램이 정상으로 실행되었다는 것을 확인할 수 있습니다.
Traceback (most recent call last)
    File "test.py" , line 5, in <module>
       list_a[1]
NameError: name 'list_a' is not defined
손으로 해보는 코딩:

예외를 해결하는 방법도 구문 오류와 다르지 않습니다. 코드를 제대로 작성하면 됩니다.

-list_a 라는 이름을 가진것이 정의되지 않아서 list_a라는 이름을 가진 것을 만들어 주면 됩니다.

 

예외 해결

 

# 프로그램 시작
print( "# 프로그램이 시작되었습니다!")


# 예외 발생 코드 해결
list_a = [1, 2, 3, 4, 5]         -------->  list_a를정의합니다.
list_a[1]

 

 

기본 예외 처리

예외를 해결하는 모든 것을 예외 처리(exception handling)라고 합니다. 예외를 처리하는 방법은 다음 두가지로 나뉩니다.

    ● 조건문을 사용하는 방법

    ● try 구문을 사용하는 방법

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

 

조건문을 사용하는 하여 예외 처리 하는 방법

이와 같은 예외 처리 방법을 기본 예외 처리라고 부릅니다. 

예외 상황 확인하기

예외가 발생할 수 있는 코드

# 숫자를 입력받습니다.
number_input_a = int(input("정수 입력> "))


# 출력합니다.
print(" 원의 반지름:" ,  number_input_a)
print(" 원의 둘레:" , 2 * 3.14 * number_input_a)
print(" 원의 넓이:" , 3.14 * number_input_a number_input_a)

위와 같이 작성하면

 

하지만 이제부터는 예외적인 상황도 생각해야 합니다. 만약 정수를 입력하지 않으면 어떻게 될까요?

다음과 같이 예외가 발생할 것입니다.

정수 입력> 7센티미터   (Enter)             ------> 정수로 변환할 수 없는 문자열을 입력했습니다.
Traceback  (most recent call last):
   File   "test.py" , line 2, in <module>
      number_input_a = int(input("정수 입력> "))
ValueError: invalid literal for int() with base 10:  '7센티미터'

 

조건문으로 예외 처리하기

문자열의 isdigit() 함수를 사용해서 숫자로만 구성된 글자인지 확인합니다. 이렇게 하면 int()함수를 이용해 숫자로 변환할 수 없는 문자열을 변환하면서 발생하는 예외를 피할 수 있습니다.

 

직접 해보는 손코딩

조건문으로 예외 처리하기

 

코드를 실행 하면:



 

정수로 변환할 수 없는 문자열을 입력해 보겠습니다. isdigit() 함수를 사용해 숫자로 구성되어 있지 않다는 것을 확인하고, else 구문 쪽으로 들어가서 "정수를 입력하지 않았습니다."라는 문자열을 출력합니다.

정수 입력> yes!!           Enter
정수를 입력하지 않았습니다.

이렇게 하면 프로그램이 강제로 죽지 않고 정상 종료됩니다.

* 프로그램을 작성할 때는 항상 예외적인 상황까지 모두 생각하는 습관을 기르는 게 좋습니다. 그러한 상황이 언제 발생하는지와 관련된 조건을 스스로 구분할 수 있으면 쉽게 예외를 처리할 수 있습니다.

 

try except 구문

요즘 프로그래밍 언어는 예외를 처리할 수 있는 구문을 제공하는데 이것이 바로 try except 구문 입니다.

try except 구문의 기본적인 구조

try:
   예외가 발생할 가능성이 있는 코드

except:
   예외가 발생했을 때 실행할 코드

예외가 발생할 가능성이 있는 코드를 모두 try 구문 안에 넣고 예외가 발생했을 때 실행할 코드를 모두 exept 구문 안에 넣으면 됩니다.

 이 구문을 사용하면 어떤 상황에 예외가 발생하는지 완벽하게 이해하고 있지 않아도 프로그램이 강제로 죽어 버리는 상황을 막을 수 있습니다.

 

직접 해보는 손코딩

try except 구문

실행 결과:

 

 

try except 구문과 pass 키워드 조합하기

프로그래밍을 하다 보면 이유는 정확히 모르겠지만, 어떤 부분에서 예외가 발생하는지 정도는 파악할 수 있는 상황이 있습니다. 예외가 발생하면 일단 처리해야 하지만, 해당 코드가 딱히 중요한 부분이 아니라면 일단 프로그램이 강제 종료되는 것부터 막자는 목적으로 except구문에 아무 것도 넣지 않고 try구문을 사용하게 됩니다.

 

하지만 구문 내부에 아무것도 넣지 않으면 구문 오류가 발생하므로 다음과 같이 pass 키워드를 넣어 줍니다.

try:
   예외가 발생할 가능성이 있는 코드

except:
      pass

예외를 잘활용하면 간단한 코드로 필요한 기능을 구현할 수 있습니다.

 

직접 해보는 손코딩

숫자로 변환되는 것들만 리스트에 넣기

실행 결과:

  

- 숫자로 변환할 수 없는 문자열이라면 float(item)를 실행할 때 예외가 발생합니다. 따라서 이를 이용해서 try except 구문으로 감싸고 예외가 발생하지 않는 경우에만 list_number.append(item)가 실행되도록 만드는 코드입니다.

- 속도보다 더 쉽게 작성할 목적으로 사용합니다.

 

try except else 구문

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

try:
        예외가 발생할 가능성이 있는 코드  (예외가 발생할 가능성이 있는 코드만 넣어준다)
except:
        예외가 발생했을 때 실행할 코드
else:
        예외가 발생하지 않았을 때 실행할 코드  

 

직접 해보는 손코딩

try except else 구문

 

실행 결과:

실행 결과:

 

 

Finally 구문

finally 구문은 예외 처리 구문에서 가장 마지막에 사용할 수 있는 구문입니다.

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

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

 

직접 해보는 손코딩

finally 구문

 

실행 결과:

실행 결과:

 

두 가지 경우 모두 "일단 프로그램이 어떻게든 끝났습니다."라고 finally 구문이 실행되는 모습을 볼 수 있습니다.

 

 

try, except, finally 구문의 조합

예외 처리 구문은 다음과 같은 규칙을 지켜야 합니다.

     ● try 구문은 단독으로 사용할 수 없으며, 반드시 except 구문 또는 finally 구문과 함께 사용해야 합니다.

     

     ● else 구문은 반드시 except 구문 뒤에 사용해야 합니다.

이를 조합해 보면 다음과 같습니다.

 

     ● try + except 구문 조합

     ● try + except + else 구문 조합

     ● try + except + finally 구문 조합

     try + except + else + finally 구문 조합

     try + finally 구문 조합

 

이 외의 조합은 실행했을 때 구문 오류가 발생합니다. 예를 들어 try + else를 조합해 보겠습니다.

 

try + else 구문 조합

 

# try except 구문으로 예외를 처리합니다.
try:
      # 숫자로 변환합니다.
      number_input_a = int(input("정수 입력>"))
      # 출력합니다.
      print("원의 반지름:", number_input_a)
      print("원의 둘레:", 2 * 3.14 * number_input_a * number_input_a
      print("원의 넓이:", 3.14 * number_input_a * number_input_a)
else:
      print("프로그램이 정상적으로 종료되었습니다.")

 

이렇게 조합하면 코드를 실행했을 때 다음과 같이 구문 오류가 발생합니다. 구문 오류가 발생하면 코드가 아예 실행되지도 않습니다.

 

오류
SyntaxError : Invalid syntax

 

 

finally에 대한 오해

 

직접 해보는 손코딩

파일이 제대로 닫혔는지 확인하기

 

실행 결과:

 

파일을  열고 있으면 해당 파일을 이동하거나 덮어 씌우거나 하는 것이 불가능해집니다. 따라서 프로그램에서 파일을 열었으면(open) 무조건 닫아야(close)합니다. 파일을 제대로 닫았는지는 file 객체의 closed속성으로 알 수 있습니다.

 

* 항상 켜져 있는 프로그램 데몬(demon) 또는 서비스(service)라고 부릅니다. 예를 들어 컴퓨터의 성능을감시하는 프로그램, 파일의 변경을 감시하는 프로그램, 사용자에게 웹 페이지를 제공해 주는 웹 서버 등이 모두 데몬이자 서비스입니다.

 

파일을 닫을 때는 close() 함수를사용합니다. 그런데 중간 과정에서 예외가 발생해서 try 구문 중간에 튕겨 버리면 파일이 제대로 닫히지 않는 문제가 발생할 수 있습니다.

  

직접 해보는 손코딩

파일 처리 중간에 예외 발생

 

실행 결과:

 

코드를 실행해 보면 closed가 False이므로 파일이 닫히지 않았다는 것을 알 수 있습니다. 따라서 반드시 finally 구문을 사용하여 파일을 닫게 해야 합니다.

 

 

직접 해보는 손코딩

finally 구문 사용해 파일 닫기

실행 결과:

 

직접 해보는 손코딩

try except 구문 끝난 후 파일 닫기

실행 결과:

 

그냥 try except 구문이 모두 끝난 후에 파일을 닫으면 아무 문제 없습니다.

 

*한마디로 파일 처리를 할 때 무조건 finally 키워드를 사용해야 한다는 것은 말도 안 되는 이야기 입니다. finally 키워드는 어떤 조건에 무조건 사용해야 하는 게 아니라, finally 키워드를 사용하면 코드가 깔끔해질 것 같다고 생각되는 경우에 사용합니다.

 

 

try 구문내부에서 return 키워드를 사용하는 경우

finally 구문은 반복문 또는 함수 내부에 이을 때 위력을 발휘합니다.

 

직접 해보는 손코딩

try 구문 내부에서 return 키워드를 사용하는 경우

실행 결과:



* finally 구문은 무조건 실행됩니다.


 

try 구문 내부에 return 키워드가 있다는것이 포인트 입니다.  try 구문 중간에서 탈출해도 finally 구문을 무조건 실행됩니다.

따라서 함수 내부에서 파일 처리 코드를 깔끔하게 만들고 싶을 때 finally구문을 활용하는 경우가 많습니다.

 

직접 해보는 손코딩

finally 키워드 활용

실행 결과:

아무것도 안적혀있는 text파일이 생성되었습니다.

return 밑에 file.write(text) 라는 부분이 실행이 안되는것같아서

return 옆에 

 

 

* return 내가 가진것을 하고 나가는것이고, 예) 1*1 2*2 3*3

break는 break이후로부터는 바로 나가는것입니다.  잘 기억해 두자요!!!

 

만약 중간에 return 키워드 등으로 

finally 구문에서 close()함수를 호출하도록 코드를 작성하면 코드가 깔끔해집니다.

 

반복문과 함께 사용하는 경우

finally 구문은 무조건 실행됩니다. 따라서 반복문에서 break로 빠져나갈 때도 마찬가지입니다. 코드로 살펴보겠습니다.

 

직접 해보는 손코딩

반복문과 함께 사용하는 경우

 

실행 결과:

 

코드를 실행하면 break 키워드로 try구문 전체를 빠져나가도 finally 구문이 실행되는 것을 볼 수 있습니다.

 

 

 

06-2 예외 고급

예외 객체(exception object) 

: 예외가 발생하면 예외 정보가 생기고 예외 정보는 예외 객체에 저장됩니다.

 

Exception: 모든 예외의 어머니라고 불립니다.

try:
      예외가 발생할 가능성이 있는 구문

except: 예외의 종류 as 예외 객체를 활용할 변수 이름:
       예외가 발생했을 때 실행할 구문         

 

예외 객체의 자료형과 예외 객체 자체를 출력해 보겠습니다.

 

직접 해보는 손코딩

예외 객체

실행 결과:

예외를 발생시켜보기

예외 객체의 자료형은 Value Error 로 출력되고, 내용은 invalid literal for int() with base 10: '<입력한 문자열>'이 출력됩니다.

 

 

예외 구분하기

예외 객체를 사용하면 except 구문을 if 조건문처럼 사용해서 예외를 구분할 수 있습니다.

 

여러 가지 예외가 발생할 수 있는 상황

 

직접 해보는 손코딩

여러 가지 예외가 발생할 수 있는 코드

 

1. 정수를 입력한 경우    (어떠한 예외도 발생하지 않습니다.)

 

2. 정수를 변환될 스 없는 값을 입력한 경우입니다. (ValueError가 발생합니다.)

 

 

3. 정수를 입력하지만, 리스트의 길이를 넘는 인덱스를 입력한 경우입니다. (Index Error)

 

 

예외 구분하기

파이썬은 except 구문 뒤에 예외의 종류를 입력해서 예외를 구분할 수 있습니다.

try:
     예외가 발생할 가능성이 있는 구문

except 예외의 종류A:
      예외A가 발생했을 때 실행할 구문

except 예외의 종류B:
       예외B가 발생했을 때 실행할 구문

except 예외의 종류C:
       예외C가 발생했을 때 실행할 구문   

 

직접 해보는 손코딩

예외 구분하기

 

 

코드를 실행하고 정수가 아닌 값을 입역해 ValueError를 발생시켜 보면 ValueError를 입력한 except 구문으로 들어가서 다음과 같이 " 정수를 입력해 주세요!"라는 문자열을 출력합니다.

 

다시 코드를 실행하고 리스트의  인덱스를 늠는 숫자를 입력하면 IndexError를 입력한 except 구문으로 들어가서 다음과 같이 "리스트의 인덱스를 벗어났어요!"라는  문자열을 출력합니다.

 

 

예외 구분 구문과 예외 객체

예외를 구분할 때 각각의 except 구문 뒤에 예외 객체를 붙여 활용할 수도 있습니다.

 

직접 해보는 손코딩

예외 구문과 예외 객체

 

코드를 실행하고 인덱스를 벗어나는 숫자를 입력하여 IndexError를 발생시키면 다음과 같이 출력합니다.

 

모든 예외 잡기

except 구문으로 예외를 구분하면 if, elif, else 조건문처럼 차례대로 오류를 검출하면서 확인합니다. 만약 예외 조건에 일치하는 것이 없다면 당연히 예외가 발생하며 프로그램이 강제 종료됩니다.

 

직접 해보는 손코딩

예외 처리를 했지만 예외를 못 잡는 경우

실행 결과:


       File " except03.py", line 10, in <module>
            예외.발생해주세요()
NameError: name '예외' is not defined

 

이렇게 되면 예외가 발생해 프로그램이 강제로 종료됩니다. 그래서 else 구문처럼 마지막에는 모든 예외의 부모라고 할 수 있는 Exception을 넣어서 프로그램이 죽지 않게 하는 것이 좋습니다.

 

직접 해보는 손코딩

모든 예외 잡기

 

실행 결과:



 

 

예외 처리에서 가장 중요한 것은 '이 코드에서 어떤 예외가 발생할 것인가?를 잘 예측하는 것입니다.

 

 

 

raise 구문

아직 구현되지 않은 부분에서 강제로 예외 발생시키기

# 입력을 받습니다.
number = input("정수 입력> ")
number = int(number)

# 조건문 사용
if number > 0:
       # 양수일 때: 아직 미구현 상태입니다.

else:
     # 음수일 때: 아직 미구현 상태입니다.
     raise NotImplementedError

 

raise 키워드 : 예외를 강제로 발생시키는 기능을 합니다.

사용방법: raise 뒤에 예외 이름을 입력해 주면 됩니다.

raise 예외 객체

 

갓허브: 많은 사람이 함께 개발하는 소셜 코딩 사이트입니다. 유능한 개발자들의 정제된 코드를 살펴볼 수 있습니다.

 

 

여기까지가 파이썬의 기본적인 문법과 관련된 [기본편]을 공부했다.

뭔가 기본편이 끝났다니까 좋기도 한데 고급단계로 넘어가서 어려울것같아 걱정이 조금 든다....

그래도 뭔가 실전에 사용하는 걸 배울수 있을것같아 설레는 맘도 있다~~ㅎㅎㅎㅎ 지금까지 해왔던것처럼 열심히 해보자~!!

 

 

07-1 표준 모듈

모듈:

- 모듈은 여러 변수와 함수를 가지고 있는 집합체로, 크게 표준 모듈과 외부모듈로 나뉩니다.

 

표준모듈파이썬에 기본적으로 내장되어 있는 모듈을 말합니다.

외부모듈: 다른 사람들이 만들어서 공개한 모듈을 '외부 모듈'이라고 부릅니다.

모듈을 가져오는 import 구문은 코드의 가장 위에 작성합니다.

import 모듈 이름

 

모듈 사용의 기본: math모듈

math 모듈: 이름 그대로 수학과 관련된 기능을 가지고 있습니다.

 

자동 완성 기능으러 살펴보는 math 모듈의 변수와 함수

 

모듈을 사용하는 코드

>>> import math

 

모듈 문서

math 모듈은 많은 기능을 가지고 있습니다. 몇 가지를 표로 정리하면 다음과 같습니다.

 

math 모듈의 함수

변수 또는 함수 설명
sin(x) 사인값을 구합니다.
cos(x) 코사인값을 구합니다.
tan(x) 탄젠트값을 구합니다.
log(x[, base]) 로그값을 구합니다.
ceil(x) 올림을 합니다.
floor(x) 내림합니다.

 

표준 모듈 등의 정보가 궁금할 때 가장 먼저 확인해야 하는것은 파이썬 공식 문서 입니다.

 

from 구분

 

from 모듈 이름 import 가져오고 싶은 변수 또는 함수
>>> from math import sin, cos, tan, floor, ceil
>>> sin(1)
0.8414709848078965

>>> cos(1)
0.5403023058681398

>>>tan(1)
1.5574077246549023

>>> floor(2.5)
2

>>> ceil(2.5)
3

 

만약 앞에 'math'를 붙이는 것이 싫고 모든 기능을 가져오는 것이 목적이라면 

* 기호를 사용합니다.

: 컴퓨터에서 '모든 것'을 의미 합니다. 

from math import *

 

as 구문

- 모듈의 이름이 너무 길어서 짧게 줄여 사용하고 싶을 때 사용합니다.

import 모듈 as 사용하고 싶은 식별자

 

이를 활용하면 이전의 코드에서 math로 사용하던  math 모듈을 m이라는 이름 등으로 사용할 수 있습니다.

>>> import math as m

>>> m sin(1)
0.8414709848078965

>>> m.cos(1)
0.5403023058681398

>>> m.tan(1)
1.5574077246549023

>>> m.floor(2.5)
2

>>>m.ceil(2.5)
3

 

 

random 모듈

: 랜덤한 값을 생성할 때 사용하는 모듈입니다.

import random

 

 

직접 해보는 손코딩

random 모듈

실행 결과:

 

sys 모듈

sys 모듈: 시스템과 관련된 정보를 가지고 있는 모듈입니다.

명령 매개변수를 받을 때 많이 사용합니다.

 

 

직접 해보는 손코딩

sys 모듈

 

그 다음 명령 프롬프트 창에서 다음가 같이 입력해 실행해 보세요.

> python module_sys.py 10 20 30

 

 

os 모듈

os 모듈은 운영체제와 관련된 기능을 가진 모듈입니다.

새로운 폴더를 만들거나 폴더 내부의 파일 목록을 보는 일도 모두 os 모듈을 활용해서 처리 합니다. 

 

직접 해보는 손코딩

os모듈

 

C 드라이브의 볼륨에는 이름이 없습니다,
볼륨 일련 번호: 0AB2=79C9
C:\Users\Desktop\파이썬\chapter 7 디렉터리


 

 datetime 모듈

datetime 모듈: date(날짜), time(시간)과 관련된 모듈로, 날짜 형식을 만들 때 자주 사용되는 코드들로 구성되어 있습니다.

 

직접 해보는 손코딩

datetime 모듈

실행 결과:

 

 

직접 해보는 손코딩

시간 처리하기

실행 결과:

 

timedelta()함수 를 사용하면 특정한 시간의 이전 또는 이후를 구할 수 있습니다.

1년 후를 구할 때는 replace() 함수를 사용해 아예 날짜 값을 교체하는 것이 일반적입니다.

 

 

time 모듈

시간과 관련된 기능을 다룰 때 사용합니다.

time 모듈로도 날짜와 관련된 처리를 할 수 있지만, 그런 처리는 datetime 모듈을 사용하는 경우가 더 많습니다.

import time

 

time.sleep()함수 :특정 시간 동안 코드 진행을 정지할 때 사용하는 함수입니다.

매개변수에는 정지하고 싶은 시간을 초 단위로 입력합니다.

 

직접 해보는 손코딩

time 모듈

실행 결과:

 

 

urllib 모듈

- urllib 모듈: URL을 다루는 라이브러리입니다.

- 웹 브라우저의 주소창에 입력하는 주소입니다. 즉 urllib 모듈은 인터넷 주소를 활용할 때 사용하는 라이브러리입니다.

 

urlopen() 함수는 URL 주소의 페이지를 열어주는 함수입니다.

 

직접 해보는 손코딩

urllib 모듈

 

 

urlopen() 함수는 URL 주소의 페이지를 열어주는 함수입니다.

구글의 메인 페이지 주소를 넣어 보았는데, 이렇게 하면 웹 브라우저에 'http://google.com' 를 입력해서 접속하는 것처럼 파이썬이 'https://google.com'에 들어가 줍니다.

 

read()함수를 호출하면 해당 웹 페이지에 있는 내용을 읽어서 가져옵니다.

실행 결과를 보면 문자열처럼 보이지만, 앞에 'b'라는 글자가 붙어 있습니다. 이는 바이너리 데이터 를 의미합니다.

 

 

기본미션

379p) 1. 구문 오류(syntax Error)와 예외(Exception)의 차이를 설명해 보세요.

구문 오류(syntax Error)는 괄호의 개수, 들여쓰기 문제 등으로 프로그램이 실행되기도 전에 발생하는 오류를 말하고 

 

예외(Exception)(런타임에러)프로그램 실행 중에 발생하는 오류를 말합니다.

또한 try except 구문 등으로 처리 할 수 있습니다.

 

반대로 구문 오류는 실행 자체가 안 되므로 try except 구문으로 처리할 수 없습니다.

 

 

선택미션

381p) 3. 다음중 구문 오류 발생이 예상되면 '구문 오류'에, 예외 발생이 예상되면 '예외'에 체크 표시를 한 후, 예상되는 에러명도 적어 보세요.

 output = 10 + "개"           # 1.
 int("안녕하세요")            # 2.
 cursor.close)                  # 3.
 [1, 2, 3, 4, 5][10]            # 4.

 

직접 풀어 보았습니다.

 

1. 예외: TypeError         

실행 결과:

2.예외: ValueError,       

 

3.구문오류: SyntaxError


실행 결과:

4.예외: IndexError

 

 

 

와아아아아!!!!! 다했당!!!

이번주에 파이썬 공부.....어려웠다...ㅠㅠ

특히 6단원....몇몇 문제가 진짜 헷갈렸다. 같이 공부하는 동생도 같은문제를 헷갈려해서 함께 토론하면서 1시간넘게 이렇게도 해보고 저렇게도 해보고 계속 답을 찾으려고 엄청 노력했었다.....  역시 머리를 맞대면서 고민해보니 답을 찾을 수 있었다. 그때의 동생과 내 모습은 진짜 ㅎㅎㅎㅎㅎㅎㅎ 함박미소 그 자체였다 ㅎㅎㅎㅎ

뿌듯함과 행복함과 해냈다는 그 기분 

뭔가 알것같으면서도 헷갈리고 어려운것 같으면서도 재밌다...뭐지????

이것이 코딩의 매력인건가???ㅎㅎㅎㅎ

한주 한주 과제를 하다보니 벌써 다음주가 파이썬 6주차라니......

한 주 한 주 과제를 하면서 다른분들은 어떻게 공부하셨는지 우수혼공족분들 블로그에도 들어가보면서 많이 배운것 같아 정말 감사하고있다. 

또한 "혼공단 홈페이지에 쓰여있는 혼공족장님의 한줄평 글!!" 한주 한주 보다보니 어떤글이 써있는지 기다리고 있는 내모습을 보게되었다...ㅎㅎㅎㅎㅎㅎ 글을 따뜻하게 써주시고 재밌어서 나한테 써주신 글 뿐만 아니라 다른 분들의 한줄평도 읽게된다.

 

우리 혼공 가족분들~~~ 명절 잘 지내시구  다음주 6주차 공부 함께 힘내서 열심히 해봐요~~!!!!

새해 복많이 많이 받으세요~~!!!