본문 바로가기
728x90
반응형

Python 파이썬/기초 & 내장모듈15

소프트웨어 인스펙션 체크 리스트 데이터 참조 에러(Data Reference Errors) : 올바르지 못하게 선언되거나 잘못된 값으로 초기화 된 Data를 참조할 경우 발생하는 에러. 초기화되지 않은 변수가 있는가? 데이터 오버플로우(Data Overflow) 에러. “Off by one” 오버플로우 에러. 변수가 참조하는 메모리가 할당되어 있지 않은 경우(Dangling Reference). 변수에 맞는 타입의 값이 저장되어 있지 않은가? 변수가 2개 이상의 함수에서 참조될 때 동일하지 않은 값이 참조되는가? 데이터 선언 에러(Data Declaration Errors) : 부적절하게 선언된 변수나 상수를 사용할 때 발생하는 에러. 명시적으로 선언되었는가? 올바른 타입으로 선언되었는가? 선언 시점에 값이 Assign 되었는가? 선언.. 2022. 6. 9.
functools ) partial() 인수가 이미 채워진 새로운 함수 만들기 functools.partial(func, /, *args, **keywords) 말 그대로 인수가 이미 채워진 새로운 함수를 만들 때 사용한다. partial()를 활용하여 U-net 모델 만들기 from functools import partial from tensorflow import keras # factory conv_filters = [16, 32, 64, 128, 256, 512] cont_factory = partial( keras.layers.Conv2D, kernel_size=(3,3), strides=1, padding="same" ) cont_activation = keras.layers.ELU() expan_factory = partial( keras.layers.Conv2DTr.. 2022. 5. 12.
python ) 클래스 class 객체를 쉽고 편리하게 생성하기 위해 만들어진 구문 구조 class 클래스명 : 인스턴스 클래스를 기반으로 생성한 객체 생성자 인스턴스를 생성할 때 호출되는 함수 소멸자 인스턴스가 삭제될 때 호출되는 함수 class Test : def __init__(self) : print( '생성되었습니다.' ) def __del__(self): print( '소멸되었습니다.' ) test = Test() # 생성되었습니다. 출력 # test는 Test클래스의 인스턴스가 되었다. print( type(test) ) # # 이제 더이상 test가 쓰이지 않고 프로그램이 종료되므로 # 소멸되었습니다. 출력 멤버(변수)와 메소드(함수) class Student: def __init__(self, name, kor, eng,.. 2022. 3. 11.
python ) 모듈과 패키지 모듈 가져오기 import 모듈명(모듈명.클래스) import 모듈명 as 사용하고 싶은 식멸자 from 모듈명 import 가져오고 싶은 변수 또는 함수 from 모듈명 improt * -> 모든 변수 또는 함수. **모든 것을 가져오면 식별자 이름에서 충돌이 발생할 수 있다. import math print(math.sin(1)) # 0.841470...... print(math.ceil(2.5)) # 3 print(math.floor(2.5)) #2 import math as m print(m.sin(1)) # 0.841470...... print(m.ceil(2.5)) # 3 print(m.floor(2.5)) #2 from math import sin, ceil, floor print(sin(1.. 2022. 3. 11.
python ) 예외 오류 처리 try 구문 오류 SyntaxError 구문에 문제가 있으면 프로그램이 실행조차 되지 않는다. 예외 처리 불가능 런타임 오류 Execption을 최상위 클래스로하는 하위 클래스 ValueError, TypeError, IndexError 등등 프로그램 실행 중에 발생하는 오류 예외 처리 방법 if 빠르다 모든 오류를 예상하여 처리하기 힘들다 input_data = input('정수 입력:') if input_data.isdigit() : int_data = int(input_data) else : print('정수만 입력해주세요!!') try if보다 느리지만 큰 차이는 아니다 모든 오류를 처리할 수 있다. 구조 try: 오류가 발생할 가능성이 있는 코드 except : 오류 발생시 처리할 코드 except V.. 2022. 3. 11.
python ) 함수 function 어떤 기능을 하는 코드들을 묶어 재사용하거나 알기 쉽게 하기 위해 쓴다. 기본 형태 def 함수 이름() : 문장 호출한다. '함수를 불러와서 사용한다'는 뜻 매개변수 함수 호출 시 괄호 내부에 넣는 여러 가지 자료 def 함수이름(매개변수, 매개변수, ... ) : 문장 일반 매개변수 함수에 매개변수를 반드시 넣어줘야할 때 쓴다. 만약 함수를 만들 때 매개변수의 수와 함수를 호출했을 때 매개변수의 수가 다르다면 TypeError가 발생한다. 일반 가변 매개변수( *변수명 ) 매개변수를 원하는 만큼 받을 수 있게 해준다. -> 매개변수를 생략하거나 무한히 넣을 수 있다. 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다. -> 어길시 가변 매개변수가 어디부터 어디까지인지 알 수 없기 때문에 가변 매개변수.. 2022. 3. 8.
python ) 이터레이터와 제너레이터, 참조 이터러블 (iterable ; 반복할 수 있는 것) 내부에 있는 요소들을 차례차례 꺼낼 수 있는 객체 이터레이터( iterator ) 이터러블 중에서 next()함수를 적용해 하나하나 꺼낼 수 있는 요소 메모리 주소를 저장한다. C언어 포인트? print()함수로 이터레이터를 출력하면 자신의 메모리 주소를 출력한다. 저장된 메모리 주소가 아니다. yield 키워드 ( 제너레이터 ; generator ) 이터레이터를 직접 만들 때 사용하는 코드 next()함수를 사용해 함수 내부의 코드를 실행할 때, yield 키워드 부분까지만 실행하며 그 뒤에 메모리 주소를 반환한다. next()함수를 호출한 이후 yield 키워드를 만나지 못하고 함수가 끝나면 StopIteration이라는 예외가 발생한다. 제너레이터.. 2022. 3. 8.
python ) 범위 자료형 range 생성방법 range(숫자) 0부터 숫자-1까지의 정수로 범위를 만든다. range(숫자a, 숫자b) 숫자a부터 숫자b-1까지의 정수로 범위를 만든다. range(숫자a, 숫자b, 숫자c) 숫자a부터 숫자b-1까지의 정수로 범위를 만드는데, 숫자c만큼 더하면서 만든다. print(range(10)) # range(0, 10) print( list( range(10) ) ) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print( list( range(5,10) ) ) # [5, 6, 7, 8, 9] print( list( range(10, 5, -1) ) ) # [10, 9, 8, 7, 6] 활용 특정횟수만큼 for문 반복하기 for i in range(5): print(i) # 실행결과 #.. 2022. 3. 8.
python ) 딕셔너리 dictionary 키를 기반으로 값을 저장하는 자료형태 변수 = { 키: 값, 키: 값, ... } 위와 같은 구조를 가진다. 키는 문자열, 숫자, 불, 변수 등으로 선언할 수 있다. 키를 인덱스로 값을 참조할 수 있다. dict_user = { 'name': 'Jack', 'age':36 } print( dict_user[ 'name' ] ) -> Jack 할당 연산자를 이용해서 새로운 키와 값을 삽입하거나 기존 키의 값을 수정할 수 있다. del 키워드를 통해 특정 키를 지정하면 해당 요소가 제거된다. dict_user = { 'name': 'Jack', 'age':36 } dict_user[ 'job' ] = 'programer' print(dict_user) # {'name': 'Jack', 'age': 36, '.. 2022. 3. 8.
python ) 반복문 for, while & 리스트 내포 for 반복문 구조 for 변수 in 리스트 또는 문자열 등의 배열 : #여기서도 콜론( : ) 필수 코드 # 들여쓰기 필수 코드 # 이전 코드와 같은 값으로 들여쓰기 list_of_list = [ [1,2,3], [4,5,6,7], [8,9], ] for out_data in list_of_list: for in_data in out_data: print(in_data, end='') #123456789 ############################ numbers = [1,2,3,4,5,6,7,8,9] output = [[],[],[]] for number in numbers: output[ (number % 3) - 1 ].append(number) print(output) # [[1, 4, 7.. 2022. 3. 8.
python ) 리스트 list와 튜플 tuple 리스트 list 여러 가지 자료를 순차적으로 여러 개 저장해주는 자료형태 대괄호( [ ] ) 내부에 자료들을 넣어 선언해줄 수 있다. 요소 리스트 안에 있는 자료를 뜻한다 ex) [요소, 요소, 요소] 리스트도 요소가 될 수 있다. 인덱스 자료의 위치를 말한다. 문자열과 마찬가지로 0부터 시작한다. 인덱스를 사용하면 값을 수정할 수 있다. list_a = [1,2,3,4] list_a[0] = 0 print(list_a) # [0, 2, 3, 4] 연산자 + : 문자열과 마찬가지로 두 피연산자를 연결해준다. ex) print( [1,2] + [3,4] ) -> [1,2,3,4] * : 문자열과 마찬가지로 좌항의 리스트를 우항의 정수만큼 반복한다. len() 문자열과 마찬가지로 리스트의 길이를 반환한다. .. 2022. 3. 7.
python ) 불 자료(boolean)와 조건문 if Boolean 불린 또는 불리언이라 부른다. 이하 (불) 오직 True(참)과 False(거짓) 값만 가질 수 있다. None, 0, 0.0, 빈 문자열('',"",...) 등 빈 자료는 거짓으로 판단한다. 공백문자(' ')는 참으로 판단한다. 비교 연산자 == : 우항과 좌항이 같을 때 True ex) '가' == '가' -> True != : 우항과 좌항이 다를 때 True ex) '가' != '가' -> False 'a' != 'A' -> True ; 대소문자를 구분한다. True ; 문자의 비교는 유니코드 숫자를 기준으로 비교한다. : 좌항이 우항보다 클 때 True ex) '가' > '나' -> False >= : 좌항이 우항보다 크거나 같을 때 True ex) '가' >= '나' -> Fals.. 2022. 3. 7.
728x90
반응형