예외 처리

#!/ usr /bin/python3 # 예외 처리 # by Elex (http://python.elex.pe.kr/) def main ():     try :         for line in read_file( 'someFile.txt' ):             print (line)     except IOError as e:         print ( "입출력 오류" , e)     except ValueError as e:         print ( "파일 이름 오류" , e)     except :         print ( "알 수 없는 오류" )     finally :         pass def read_file (filename):     if filename.endswith( '. txt ' ):         return open(filename).readlines()     else :         raise ValueError( '파일 이름은 . txt 로 끝나야 함' )        if __name__ == "__main__" : main() 파이썬에서의 예외 처리는 try-except-finally 구문을 사용한다. 예외를 발생시킬 때에는 raise 키워드를 사용한다.

클래스

#!/ usr /bin/python3 # 클래스 # by Elex (http://python.elex.pe.kr/) class Dog :     # 생성자     def __init__ ( self , name, color= 'white' ):         self ._name = name         self ._color = color         # 메서드     def bark ( self ):         print ( '{}(이)가 짖는다. "멍멍"' .format( self ._name))            def walk ( self ):         print ( '{}(이)가 걷는다. "슬금슬금"' .format( self ._name))         # 겟터와 셋터 메서드     def getName ( self ):         return self ._name            def getColor ( self ):         return self ._color        def setColor ( self , color):         self ._color = color           def main ():     dog1 = Dog( '땡칠' )     dog1.bark()       dog1.setColor( 'black' )     print (dog1.getColor())     if __name__ == "__main__" : main() 클래스의 인스턴스 생성시에 실행되는 __init__()이라는 생성자 메서드도 있고, 또 인스턴스가 메모리에서 해제될 때 실행되는 __del__()이라는 파괴자 메서드도 있다. 파이썬에서는 키워드리스트 매개변수를 사용해서 겟터와 셋터를 좀 더 일반화시킨 형태의 코드가...

함수

파이썬에서 사용자 정의 함수는 def라는 키워드로 시작한다. 값을 반환하려면 return 키워드를 사용하면 된다는 점은 다른 프로그래밍 언어들과 마찬가지이다. def myFunc0 ():     return '안녕' 파이썬의 함수는 사용하기 전에 정의되어 있어야 한다. 따라서, 다음의 코드는 잘못된 코딩이다. myFunc1 ()    def myFunc1 ():     print ( '나는야 함수라네~' ) 일단 함수의 이름만 선언 해두고 함수의 바디 부분은 아직 구현하지 않았다면 어떻겠는가. 다른 프로그래밍 언어에서는 void myFunc(){ } 처럼 블록 안에 아무것도 안쓰면 그만이다. 그러나, 브레이스{} 통한 블록 구조를 배제해버린 파이썬의 경우에는 구문 해석 과정에서 오류가 발생한다. 그래서, 파이썬에는 pass라는 키워드가 등장하게 되었다. 즉, pass는 '아무 것도 안함'이라는 의미이다. pass 키워드는 if-else 구문에서도 처리할 것이 없을 때에 종종 사용된다. def myFunc2 ():     pass   기본적으로, 파이썬에서 함수의 매개변수는 다른 프로그래밍언어들에서와 유사하다. 즉, 함수 이름 뒤에 괄호 사이에 매개변수를 나열해 주면 된다. def myFunc3 (param1):     print ( '나는야 함수라네~' , param1) def myFunc4 (param1, param2):     print ( '나는야 함수라네~' , param1, param2) 함수의 매개변수가 생략된 경우에 사용될 기본값을 지정해줄 수도 있다. 다음과 같은 함수의 경우 myFunc5(1) 또는 myFunc5(1,5)라고 호출할 수 있고, 두번째 매개변수가 생략된 경우 param2는 3이 된다.  주의해야 할 것은, 기본값을 가진 매개변수는 항상 뒤쪽에 써야 한다는 것이다. 논리적으로 생각해 보면 당연하다, 안그러면 파이썬 인터프리...

연산자

산술연산자              print ( 7  +  2 ) # 9     print ( 7  -  2 ) # 5     print ( 7  *  2 ) # 14     print ( 7  /  2 ) # 3.5       print (   7   **  2   )  # 49     print ( 7  //  2 ) # 3     print ( 7  %  2 ) # 1       위에서부터 순서대로 더하기, 빼기, 곱하기, 나누기, 제곱, 나눗셈의 몫, 나눗셈의 나머지. 덧으로, 나눗셈을 연산하는 divmod()라는 함수도 있는데,            print (divmod( 5 , 3 )) # (1, 2) divmod()는 몫과 나머지를 튜플로 반환한다. 할당연산자           number =  3           number += 3         number -= 3         number *= 3         number /= 3        number **=  3       number //= 3         number %= 3 비트 연산자 def binary (n):     return "{:08b}" .format(n)     def main ():         a, b = 0x55 , 0xaa     print (binary(a)) # 01010101     print (binary(b)) # 10101010                 # 비트 연산자     print (binary(a & b)) # 00000000     print (binary(a | b)) # 11111111     print (binary(a ^ b)) # 11111111     print (binary(a ^ 0x00 )) # 01010101     print (binary(a ^ 0xff )) # 101010...