"프로그래밍 언어의 개념과 흐름에 대한 고찰 - 파이썬답게 코딩하기" 학습중...
기본 문법과 관련하여 어렴풋이 알거나 몰랐던 내용들 몇가지 정리해봅니다.
## 예외 처리문
# import os, time
#
# TRY_TEST_FILE = "performance_try_file"
# TRY_ELSE_TEST_FILE = "performance_try_else_file"
#
# def write_file_only_try() :
# try :
# f = open(TRY_TEST_FILE, "w")
# for i in range(10000000) :
# f.write(str(i))
# f.close()
# except :
# print("file not found")
# finally :
# os.remove(TRY_TEST_FILE)
#
# def write_file_try_else() :
# try :
# f = open(TRY_ELSE_TEST_FILE, "w")
# except :
# print("file open error")
# else :
# for i in range(10000000) :
# f.write(str(i))
# f.close()
# finally :
# os.remove(TRY_ELSE_TEST_FILE)
#
# def check_runningtime(func) :
# accumulate_time = 0
# for i in range(10) :
# start = time.time()
# func()
# accumulate_time += (time.time() - start)
# print("run time summary : %s" % str(accumulate_time / 10))
#
# if __name__ == "__main__" :
# print("=== try/else performance test ===")
# check_runningtime(write_file_try_else)
# time.sleep(1)
# print("=== try performance test ===")
# check_runningtime(write_file_only_try)
# === try/else performance test ===
# run time summary : 6.245417594909668
# === try performance test ===
# run time summary : 6.257357382774353
## try-except 구문으로 이루어진 경우 예외를 감시하는 내부 프로세스를 거치기 때문에 try-except-else를 거친 구문보다 실행속도가
## 다소 느리다. 교재에서는 0.2초 차이 나던데 파이썬 버젼이 올라가면서 많이 개선된 듯 하다. 여기서는 0.01초 밖에 안난다. 아무튼
## 사소한 코딩에도 시간 차이, 효율성 차이가 나온다.
## 반복문에서 range와 xrange는 같은 역할을 하지만 range는 정의한 만큼 메모리 크기가 증가하고 xrange의 경우 메모리 크기가 고정됨
## xrange는 python2.0에서 사용됨.
## xrange는 generator 이기 때문에 효율적임. python3.0에서는 이를 개선하여 range의 type을 class로 바꾸고 고정값을 갖도록 변경함.
# ALPHABET_LIST = ["a","B","C","D","E","F",]
# def get_index_basic_method() :
# i = 0
# for ch in ALPHABET_LIST :
# print("%d : %s" %(i, ch))
# i += 1
# def get_index_enumerate_method() :
# for i, ch in enumerate(ALPHABET_LIST) :
# print("%d : %s" %(i, ch))
# if __name__ == "__main__" :
# print("=== basic method ===")
# get_index_basic_method()
# print("=== enumerate method ===")
# get_index_enumerate_method()
# === basic method ===
# 0 : a
# 1 : B
# 2 : C
# 3 : D
# 4 : E
# 5 : F
# === enumerate method ===
# 0 : a
# 1 : B
# 2 : C
# 3 : D
# 4 : E
# 5 : F
## 기본적인 방법이나 enumerate를 활용하나 결과는 똑같다. enumerate를 사용하면 index를 자동으로 생성하여 튜플로 반환한다.
'파이썬(PYTHON)' 카테고리의 다른 글
파이썬의 기본 문법2 (0) | 2020.08.23 |
---|---|
통계 - 주택 청약 통장 계좌수 (0) | 2020.08.22 |
파이썬의 함수3 (0) | 2020.08.21 |
파이썬의 함수2 (0) | 2020.08.20 |
파이썬의 함수1 (0) | 2020.08.19 |