새소식

프로그래밍/Python

기본 문법

  • -

해당 글은 파이썬에 대해 다시 공부할 겸 정리해놓은 것입니다.

순서는 코딩 도장의 목차와 유사하게 진행할 것입니다.

 


1. 셔뱅(shebang)

운영체제는 스크립트 파일이 어떤 문법으로 짜였는지 모른다. 

이를 알려주기 위해 스크립트 파일 첫 줄에 아래와 같이 인터 프리팅 정보를 주는 것을 셔뱅이라고 한다.

 

#!/usr/bin/env python2

python2.x 버전을 사용하려는 경우

#!/usr/bin/env python3

python3.x 버전을 사용하려는 경우

 

즉, 셔뱅은 현재 파일을 실행해 줄 프로그램을 지정할 때 사용하고 셔뱅에 파이썬 경로를 지정해 놓으면 해당 파이썬으로 .py를 실행한다.

 


2. 주석

사람만 알아볼 수 있도록 작성하는 부분을 주석이라고 한다. 따라서 주석은 프로그램의 실행에 영향을 주지 않는다. 또한, 주석은 코드에 대한 설명을 하거나 특정 코드를 임시로 사용하지 않도록 만들 때 사용한다.

 

주석을 사용하는 방식은 2가지가 있다.

 

2.1 한 줄 주석 (# 사용)

# 한 줄 주석!!
print('안녕하세요.')

 

2.2 여러 줄 주석 (''' or """ 사용)

""" 
여러 줄 주석!!
여기도 주석처리!!
"""
print('안녕하세요.')

3. 소스 코드 인코딩

파이썬 소스 파일들은 기본적으로 UTF-8로 인코드 된 것으로 취급한다. 문자들을 모두 올바로 표시하기 위해서는 편집기가 파일이 UTF-8임을 인식해야 하고, 이 파일에 포함된 모든 문자를 지원할 수 있는 글꼴을 사용해야 한다.

 

#-*- coding : encoding 방식 -*-

encoding 방식에는 파이썬이 지원하는 코덱 중 하나여야 한다.

 

#-*- coding: utf-8 -*-

예를 들어, utf-8 인코딩을 사용하도록 선언하려면 위와 같이 하면 된다.

 


4. if __name__=='__main__'

이것의 의미는 메인 함수의 선언, 시작을 의미한다. 해당 코드 밑에 main 등의 함수 호출 코드를 작성해서 함수의 기능을 수행한다.

 

def main():
    print('안녕하세요.')

if __name__ == '__main__':
    main()

 

위의 내용만 보면 '메인 함수의 선언, 시작이라는 것은 알겠는데 왜 사용하는 걸까?라는 생각이 들것이다. 

아래 예시를 통해 궁금증을 해결해보자

 

#!/usr/bin/env python3
# Filename : test.py

if __name__ == '__main__':
    print('직접 실행한 결과')
else:
    print('다른 파일에서 모듈로 불리는 경우')

 

위의 코드를 가지는 test.py 파일이 있다. 

 

test.py 직접 실행 결과

위 그림은 파이썬 인터프리터에 의해 직접 실행한 결과이다.

 

import test

이번에는 위의 코드를 가지는 test_module.py을 실행한다.

 

test_module.py에서 모듈로 불러온 결과

위 그림은 다른 파이썬 코드(test_module.py)에 의해서 모듈로 import (import test부분)한 결과이다.

 

 

정리하면, 본인이 구현한 코드가 다른 파이썬 코드에 의해서 모듈로 import 되는 경우도 있고, 파이썬 인터프리터에 의해서 직접 실행되는 경우가 있을 수 있는데, if__name__=='__main__'은 인터프리터에 의해서 직접 실행될 경우에만 실행하도록 하고 싶은 코드 블럭이 있는 경우에 사용한다.

 


5. 예제

#!/usr/bin/env python3
#*-* coding: utf-8 -*-

"""
오늘 배운 내용을 
총정리 해보자
"""

# main 함수
def main():
    print('안녕하세요.')

if __name__ == '__main__':
    main()

 

실행결과

 

 


6. 참고문헌

1) https://dojang.io/mod/page/view.php?id=2168

2) https://docs.python.org/ko/3/tutorial/interpreter.html

3) http://blog.naver.com/PostView.nhn?blogId=jodi999&logNo=221139722235&parentCategoryNo=&categoryNo=44&viewDate=&isShowPopularPosts=true&from=search

4) https://pinocc.tistory.com/175

'프로그래밍 > Python' 카테고리의 다른 글

파이썬 코딩 스타일  (0) 2020.07.16
모듈 설치 하는 방법  (0) 2020.07.16
문자열 포맷팅  (0) 2020.07.08
자료형  (0) 2020.07.07
while문 안에서 print(~,end=' ')을 주었을 때 출력되지 않는 오류  (0) 2020.04.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.