본문 바로가기

개발일지/Python159

파이썬 선택정렬 알고리즘 (오름차순, 내림차순) 첫번째 파일 selectMod # 선택정렬 # 숫자로 이루어진 리스트를 선택정렬 알고리즘을 이용해서 # 오름차순과 내림차순으로 정렬하는 모듈을 만들어보자(단, 정렬하는 과정도 출력한다.) import copy # 이와같이 매개변수에 True or False 값이 들어가야하는 상황에서는 # True일 경우, 입력을 생략할 수있고, 입력을 생략할경우 True로 실행된다. def sortSelectAlgorithm(ns, asc=True): c_ns = copy.copy(ns) for i in range(len(c_ns)-1): minIdx = i for j in range(i+1, len(c_ns)): # 오름차순, ascending if asc: if c_ns[minIdx] > c_ns[j]: minIdx.. 2022. 5. 21.
삽입정렬 알고리즘 (오름차순, 내림차순) 첫번째파일 insertMod # 삽입정렬 # 이건 좀 독특하다. 가시적으로 눈에띄게 보이진 않지만 # 처음 2개를 비교 후 정렬 # 처음 정렬된 2개와 다음1개를 비교후 재정렬 # 그렇게 정렬된 누적정렬 3개와 다음1개와 비교후 재정렬 # 이런식으로 증가해간다. import copy def sortInsertSortAlgorithm(ns, asc=True): c_ns = copy.copy(ns) # 인덱스 0은 정렬된 것이기때문에 1부터 시작하면 된다. for i1 in range(1,len(c_ns)): i2 = i1 -1 # 현재 정렬을 시키고자 하는 데이터 c_num = c_ns[i1] # c_num이 들어갈 자리를 구해야한다. # 오름차순인지 내림차순인지에 따라서 # ascending if asc.. 2022. 5. 21.
파이썬 [복기] 무한반복 계산기, 종료입력으로 종료. while True: print('-' * 60) choose = int(input('1.덧셈, 2.뺄셈, 3.곱셈, 4.나눗셈, 5.나머지,' '6.몫, 7.제곱승, 8.종료: ')) # 이게 여기있으면 안된다. # 여기 있음으로 인해서 반복문이 choose다음에 출력되는것이 num1,num2이기 때문에 # 조건문으로 넘어가기 가는 과정에 있어서 내가 8번을 선택해서 종료를 해주더라도 # 바로 종료가 안되고 숫자입력을 해야했다. # num1 = float(input('첫 번째 숫자 입력: ')) # num2 = float(input('두 번째 숫자 입력: ')) print('-' * 60) if choose == 8: print('Bye~') break # 이자리에 있어줌으로 인해서 choose에 담긴.. 2022. 5. 21.
파이썬 class(클래스) 상속 기초원리7 추상클래스 ABCMeta, abstractmethod # 추상클래스 # 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다. from abc import ABCMeta from abc import abstractmethod # 1. 정의가 안되어있고 # 2. 정의를 하위 클래스에서라도 해야한다면 # 정의가 되어야하는 강제성을 지닌 상위 개념의 클래스에 # AirPlane(metaclass=ABCMeta)이런식으로 해준다. class AirPlane(metaclass=ABCMeta): # 이것이 첫번째 작업이다. # 두번째 작업으로는 정의가 되어야할 함수에 표시를 해줘야한다. @abstractmethod # 이렇게 def flight(self): pass def forward(self): print('전진') def backward(self): print(.. 2022. 5. 20.