Eat Study Love

먹고 공부하고 사랑하라

파이썬 39

10. Sorting Algorithms

지난 번 Linear / Binary Searching 외에도 코딩공부 시 중요한 알고리즘 중 하나인 Sorting에 대해 학습해봅시다. Sorting --> 말 그대로 내림 or 오름차순으로 list 안에 data를 정렬한다는 것이다. 총 4가지 Sorting을 배워봅시다. Insertion Sort - 제일 쉬운 버전의 Sorting이다. - Main Idea 1) 처음엔 비어있는 Empty list에서 시작한다. 2) Pile에서 Data들을 하나씩 가져와 크기순으로 Empty list에 하나씩 정렬시켜 저장한다. 3) 정렬된 새로운 list가 output으로 나오게 되는 구조 --> 메모리효율을 위해 in-Place로 이것을 진행하기도 한다. 4) 위의 3번의 경우, 단점은 원본이 보존되지 않는다..

SW 만학도/Python 2024.03.18

9-2 . Recursion으로 Binary Search의 여러가지 Case 코딩해보기

1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursion으로도 구현할 수 있을 거 같긴 한데.. 일단 While문으로! Recursion을 이용해서도 해당 코드를 구현해보았다. 다소 조잡한 감이 있어도 코드는 잘 돌아가서 다행이다..ㅎㅎ 특이점으론, Recursion 함수를 잘 만들어 놓고 해당 함수를 binary_search에 넣었을 때 자꾸 무한루프를 돌면서 코드가 버벅거렸다. 이유를 찾아보니.. recursion함수를 binary_search에서 사용할 때에도 return을 이용해서 사용해야 하는데 그냥 함수만 Call해서..

SW 만학도/Python 2024.03.17

9-1 . Binary Search의 여러가지 Case 코딩해보기

1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursion으로도 구현할 수 있을 거 같긴 한데.. 일단 While문으로! https://eglife.tistory.com/27 낄끼빠빠~ Recursion 구현글 첨부 9-2 . Recursion으로 Binary Search의 여러가지 Case 코딩해보기 1) Binary Search 에서 List 는 이미 Sort 되어 있지만 찾고자 하는 Value가 Duplicate 되어 있을 때 - Middle을 찾았을 때 Term만 좀 While문으로 만져주면 될 거 같다. - Recursi..

SW 만학도/Python 2024.03.17

7. File I/O in Python

실제로 Data를 가지고 프로그램을 만들 때, 코드에 모든 것을 넣진 않는다. 대신 File을 Disk에 저장 후 프로그램이 이것을 읽거나 쓸 수 있도록 한다. 이번엔 Jupyternotebook이 아닌 Google Colab에서 코딩을 해봤당. 구글 Colab에 구글 Drive를 위와 같이 연결하고 Colab Notebooks 폴더에 Text파일을 집어 넣어서 테스트좀 해보려함 Opening a File - 아래와 같이 외부파일을 읽어본다 - File을 Open했으면 끝에는 Close 해줄 것 --> Memory 쓸 데 없이 차지하는 것 방지용 file = open('textfile.txt','r') contents = file.read() file.close() print(contents) -----..

SW 만학도/Python 2024.03.15

5. Lists and Loops in Python

Python에서 굉장히 중요한 개념! 리스트와 루프! Python으로 대량의 Data를 처리하려 할 때, 일일히 Variable을 설정하려면 너무 많다. 그래서 보통 사용하는게 List! 주요 자료구조 中 하나 - A1 = 'Mina' , A2 = 'Lisa' , A3 = 'Marcus' .... (X) - People = ['Mina', 'Lisa', 'Marcus' ... ] (O) --> LIST! Lists - List는 포함하는 Item의 순서를 따진다! Ordered! 참고로 숫자는 0부터 센다 in python, C ... - Why 0부터? --> 컴퓨터는 2진수를 쓰고, 2진수에서 가장 작은 수는 0이니까 0부터 Lists : Access and Assign - ex) - people =..

SW 만학도/Python 2024.03.14

3. String and Control in Python

많고 많은 데이터 타입중에서 사실 우리 인간에게 가장 중요한 것은 문자, String Type이다. 돌풍을 몰고 온 Chat GPT도 인간의 언어, 자연어처리의 일종이니 말이다. 미래 먹거리! String type을 한 번 파헤쳐보자. String Type - Python은 int/float으로 Numeric Value를 표현한다. - String(str) type으로 Text Value를 표현한다. - Python은 문자열을 ' ' or " " 로 구분한다. ex) 'Gaza!!', "Lovey Dovey" (작은/큰따옴표 혼용 X) - 25 vs "25" ? => 숫자 vs 문자 Built-in Operation with Strings - len(str) : 띄어쓰기 포함, str의 길이를 반환 --..

SW 만학도/Python 2024.03.13

Jump To Python while문 break, continue [3]

모르는 것 위주로 기록을 좀 남기려고 한다. if, while, for문 특성은 뭐, 찾아보면 나오니 큰 어려움 없는데 break, continue 요런 건 지나가면 까먹는 용어라 한 번 메모 해볼법하다. 기본적으로 While문의 구조는 아래와 같다. while 조건문 : 실행문 조건문은 True or False 불형식의 답이 나오게 설정을 해야하며 여기서 조건문이 Ture이면 실행문을 계속 뺑뺑이를 돌리는 거다. while True : print('안녕') *흔히 말하는 무한루프 while문에 쓰이는 치트키 2가지가 바로 1. Break While문을 돌다가 어찌어찌 Break를 만나면 그 순간 그가 속한 While문을 깨고 나온다. coffee = 10 돈 = 100 while 돈 : print('돈..

Jump To Python 2장 연습 문제(2) [2]

이어서 가보즈아 Q8. # (1,2,3) 튜플에 값 4를 추가하여 (1,2,3,4)를 만들어 출력하라 b를 저렇게 하니까 튜플이 아니라 int라 더하기가 안 된다고 한다. # a = (1,2,3) # b=(4,) # print(a+b) b 옆에 공백을 넣어서 a+b를 출력하니까 되네. 쉬운듯 까다로운 Tuple의 세계 Q9. # 다음과 같은 Dictionary a가 있다고 할 때, 오류가 발생하는 경우를 고르고 이유를 설명하라 # a=dict() # 1.a['name'] = 'python' # 2.a[('a',)]='python' # 3.a[[1]]='python' # 4.a[250]='python' A. 3번 => 키 값으로 list, set 등 변하는 값을 설정하지는 못한다 => 몰랐넹;; 그냥 나머..

Jump To Python 2장 연습 문제 [1]

Q1. # 홍길동씨의 과목별 점수는 다음과 같다. 홍길도 씨의 평균 점수를 구해라. # 국어 80점 영어 75점 수학 55점 # 국어 = float(80) # 영어 = float(75) # 수학 = float(55) # 평균 = float((국어 + 영어 + 수학)/3) # 소수점 = '%0.0f' %평균 # print(f'홍길동씨의 평균은 {소수점}점') # print('홍길동씨의 평균은 %s점' %소수점) 소수점을 없애려고 했더니 코드가 좀 조잡해진 듯 하다. Q2. # 자연수 13이 홀수인지 짝수인지 판별해보자 # 자연수 = 13 # if 자연수 % 2 == 1 : # print("%s는(은) 홀수입니다."%자연수) # else : # print("%s는(은) 짝수입니다."%자연수) if문을 아직 ..