[파이썬] 파이썬 기초팁 11가지

[파이썬] 파이썬 기초팁 11가지

필자는 원래 자바/JSP 개발자이고, 주말 동안 짬을 내어 파이썬을 실습해보았다.

실습하며 배운 몇 가지 팁을 기록해본다.

기본서를 보면 다 나오는 것들이다. (근데 왜 난 몰랐을까…)

1. 임포트 방법

상단에

from 패키지명 import 파일명

라고 쓰면 된다.

예를 들어 폴더트리 구조상 프로젝트명/pack/dir1/TempFile.py 이라고 되어 있다면,

from pack.dir1 import TempFile

이렇게 임포트하면 된다.

2. 임포트한 파일(.py) 내의 함수 사용

그렇다면 TempFile 내의 함수는 어떻게 사용할까?

만약 TempFile.py 안에 함수를 정의해두었다면, (ex: def func_name(): ~ )

TempFile.func_name() 식으로 사용할 수 있다.

3. 글로벌 함수 사용

아래와 같이 함수 안에서 함수 바깥의 변수를 쓰고자 한다면,

함수 안쪽에서 사용하기 전, “global 변수명” 이라 쓰면 된다.

상당히 특이하다고 생각했다.

g_var = None

def 함수명()

    global g_var

    g_var = “변수값”

    print(“g_var : ” + g_var)

4. 파이썬의 Null 사용

파이썬은 Null 이 아니라 None 을 쓴다.

temp_var = None

위와 같이 쓰면 된다.

널 체크는 다음과 같이 한다.

if (temp_var is None):

    print(“temp_var is None”)

널이 아닌 경우를 체크하려면 다음과 같이 한다.

if (temp_var is not None):

    print(“temp_var is not None”)

5. 클래스의 선언

아래와 같은 방식이다.

class 클래스명():

    def __init__(self):

        print(“생성자 실행”)

    def 함수명(self)

        print(“함수내용”)

클래스를 갖다쓸 때는(생성할 때는), 아래와 같이 쓰면 된다.

# 생성

변수명 = 클래스명()

# 함수사용

변수명.함수명()

6. 함수 아규먼트(함수 인자)의 기본값 설정

파이썬은 함수 아규먼트의 기본값을 제공할 수 있다.

예를 들자면,

def 함수명(arg1, arg2=None)

이런 식이다. 이 경우 함수를 사용할 때, 인자를 1개 넘겨도 되고 2개 넘겨도 된다.

메서드 오버로딩 비슷한 느낌이다.

참고로 인자 개수가 다른 경우는 위와 같이 오버로딩할 수 있는데,

인자 데이터형이 다른 경우는 조금 더 복잡했던 것 같다.

(함수 정의하는 라인에 타입을 쓸 수 없으니, 함수 안에서 타입을 걸러줘야 하는 것 같았다.

자세한 것은 구글링하시길. 저도 몰라유~)

7. int의 출력 (int to string)

# 에러나는 경우

a = 111

print(“숫자 출력 : ” + a)

위와 같이 int를 string이랑 결합해서 출력하면 에러가 나더라.

이건 자바도 부드럽게(?) 지원되는 부분인데… 파이썬한테 약간 실망했다.

아래와 같이 int를 string으로 형 변환 해줘야 한다.

# 정상출력

a = 111

print(“숫자 출력 : ” + str(a))

8. 리스트와 튜플의 사이 형변환 (list to tuple, tutple to list)

리스트와 튜플은 일종의 데이터형이다.

리스트는 변경가능(append 가능)하고, 튜플은 변경불가능하다.

현재까진 이 정도 차이점 밖에 모르겠고,

하여간 튜플은 변경불가능해서 참 불편하더라.

형변환을 해서 편하게 쓸 수 있었다.

# tuple to list

tuple_test = (1, 2, 3, 4)

list_test = list(tuple_test)

# list to tuple

list_test = [1, 2, 3, 4]

tuple_test = tuple(list_test)

9. 파이썬의 문자열 잘라내기(파이썬의 substring)

파이썬은 따로 substring이 함수로 제공되지 않는다.

예를 들어,

a = “012345” 의 좌측 3자를 잘라쓰려면

a[0:3] 이렇게 자르면 된다.

상당히 특이하다. char의 배열을 다루는 기분이다.

10. 파이썬의 for문

우리가 아는 for문은 크게 2가지로 나뉜다.

익히 알고 있는 기본for문과 배열/리스트형 for문이다.

파이썬은 후자인 배열/리스트형 for문 만을 지원한다.

무슨 소리냐고?

예를 들어 자바에서 기본 for문은 다음과 같이 쓴다.

for (int i=0; i<10; i++) {

    // 내용

}

자바에서 배열/리스트형 for문은 다음과 같이 쓴다.

int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

for (int num : arr) {

    // 내용

}

VB/VBA의 기본 for문은 다음과 같이 쓴다.

for i = 1 to 10

    // 내용

next i

파이썬은 아래와 같이 배열/리스트형 for문만 지원한다.

for i in 리스트형변수:

    print(i)

그래서 만약 기본 for문 처럼 쓰고 싶다면, range 함수를 응용해야 한다.

range는 정수형 리스트를 만들어주는 함수다.

아래와 같이 쓰면 된다.

for i in range(1, 10):

    // 내용

11. 파이썬의 예외처리(파이썬의 try ~ except)

자바는 try ~ catch ~ finally 가 지원되는데, 파이썬은 try ~ except ~ finally 가 지원된다.

예를 들면 아래와 같다.

try:

    print(“수행내용”)

except Exception as e:

    print(“에러내용 : ” + e)

finally:

    print(“함수의 끝”)

여기서 finally는 생략해도 된다.

그리고 거의 모든 인터넷상의 예제가 except: 로 쓰곤 하는데, 나는 except Exception as e: 가 좋은 것 같다.

자바 개발자라 그런가.

오늘 실습은 이 정도였던 것 같다.

파이썬에 익숙하지도 않고, 개인적으로 나는 역시 올드(?)한 개발자라는 생각을 했다.

특히 substring이 익숙치 않아서 관련 함수를 몇 개 만들어버렸다.

앞으로도 좀 덜 익숙한 것들은 함수로 만들 것 같다.

프로그래밍계의 유명한 격언으로 “바퀴를 재발명하지 마라”는 문장이 있는데, 난 아직 한참 멀었다는 생각을 한다.

끝.