데이터 분석

[day44] NEW ! 새로운 시작

경 민 2025. 3. 31. 21:22
👩🏻‍💻  Point of Today I LEARNED 
📌 SQL
● 코드카타 3개

📌 Python 
● 코드카타 3개
실무 과제 (기초편)

 

New team !

새로운 팀과 새로운 시작을 한 날.

사전캠프까지 하면 벌써 4번째 팀이다.

어쩌다 팀장이 되어버려서 약간 무거웠는데 다들 너무 편안하신 분들인 것 같아 마음이 놓인다 !

잘 부탁드립니다 . .  ˚。・゚✧

 

SQL

오늘은 오랜만에 SQL 코드카타도 풀고, 과제도 복습하면서 머리를 깨웠다.

기초 프로젝트 진행하면서 너무 파이썬만 한 거 아닌가 싶어서 불안했는데,

다행히 감은 안 잃어버린 느낌이다 .. !

계속 조금씩 매일 하자 !

 

Python

오늘 새로운 통계강의를 지급받아서 1주차 수강하려고 했는데,

파이썬 과제 복습이 우선인 것 같아 이걸 먼저 하다가

생각보다 오래걸린 이슈로

이것만 하다 끝나게 되었다는 이야기 ^ㅠ^

일단 오늘은 find, split 까지 완벽히 이해하는걸루 !


1.  Python

2-1. 실무 과제 (기초편)

1) find (문자)

def get_find_ch(text, find_value):
        for i in range(len(text)):  # 모든 text의 charcater 하나하나를 반복
        if text[i] == find_value:  # 찾는 문자에 해당하면
            return i  # 그 인덱스를 반환
    return -1   # 없으면 -1를 반환

 

2) find (문자열)

def get_find_str(text, find_str, start=0) :
    
    text_len = get_len(text)
    find_str_len = get_len(find_str)

    for i in range(start, text_len - find_str_len + 1):  
        if text[i:i+find_str_len] == find_str:
            return i
    return -1
  • range의 구간 정하기⭐️⭐️
    • 시작위치에서부터 몇 번 반복하면 되는가.
      • 예시) hello에서 llo의 위치 찾기
        • hel, ell, llo 3번 찾으면 됨
        • 즉, (전체 문자열 길이 - 찾을 문자열 길이 + 1)번 찾으면 됨

3) split (문자)

def str_split(text, sep=' ') :

    result = []
    current = ''
    text += sep   # 마지막 sep 뒤에 나오는 문자열을 위해
    
    for char in text:
        if char != sep:
            current += char
        else:
            result.append(current)
            current = ''   # ✅중요! 이거 안 해주면 문자열 누적됨
    return result
  • Point ! 
    1. 빈 리스트와 빈 값을 변수로 지정해놓는 것
    2. current = ' ' 를 써주어서 sep 기준으로 문자열을 구분하는 것

4) split (문자열)

def str_split_string(text, sep='--') :

    if not sep:
        return [text]   # 구분자가 비어있으면 text 그대로 출력
    
    result = []
    sep_len = get_len(sep)

    start_pos = 0   # 시작 인덱스 지정
    while True :
        pos = get_find_str(text, sep, start_pos)   # 구분자 위치 찾기

        if pos == -1:   # 더이상 text에 sep이 없으면
            result.append(text[start_pos:])   # 구분자 뒷부분 전체 출력
            break   # 반복 종료
        else:   # text에 sep이 있으면
            result.append(text[start_pos:pos])   # 구분자 앞부분까지 전체 출력

        start_pos = pos + sep_len   # 시작 인덱스 재지정
    return result