[Python] 점프 투 파이썬 완독 후 기록(이라 쓰고 일기장이라 읽음)

2022. 4. 1. 16:14

2022년 1학기 기준 파이썬과 SQL, R을 학교에서 배우고 있다. 확실히 SQL이나 파이썬은 이전에 공부한 게 있어서 그런지 수업이 더 재미있게 느껴졌다.(원래 아는 거 하는 게 제일 재밌음ㅋㅋ) 학기 중에 공부하면서 느끼는 건데 휴학 동안 마인드셋이라고 할까..마음가짐을 잘 잡은 것 같다는 생각이 들었다. 휴학하면서 <비즈니스를 위한 데이터 과학>을 정독했었는데, 그때 참 에러로 많이 싸웠었다. 그리고 하나둘씩 구글링하면서 에러를 해결했을 때의 그 쾌감은..ㅋㅋ아직도 잊히지 않는다. 심지어 별 에러도 아니고 그냥 패키지 설치를 안해서 생긴 에러였음.ㅋㅋ 하여튼 에러 메시지가 더 이상 무섭지 않다고 느끼니 공부가 좀 더 되는 느낌이었다.

 

아 맞다 그리고 지킬로 블로그 만들 때 루비 루비젬 설치 패키지 설치 arm64버전으로 깔기 등등 아주 다채로운 에러를 만났던 적도 있다.
하 진짜 구글 블로그에서는 그렇게 쉽게 깔더니 왜 나는 안 되는거지..? 하면서 일주일 밤낮을 붙잡고 난리를 쳤다. 저장소를 몇 번을 초기화를 하고 루비젬 버전을 다운그레이드로 바꿔보고

 

# 이건 메모장에 적어두고 같은 에러 나올때마다 아이템 쓰듯이 썼던 명령들ㅋㅋ

arch -arm64 brew install wget (arm64 어쩌고에서 설치해야 한다고 뜰 때)
bundle add webrick
bundle add jekyll-paginate

 

이것들 입력하고 하여튼 고생고생을 한 결과 내 주소의 블로그가 원하는 테마를 입은 그 모습을 보는데 환호가 절로 나오더라. 아 근데 페이지 꾸미는거는 제대로 하려면 css같은 것들도 좀 알아야 할 것 같아서 좀 유예하고 있다. 깃허브 블로그 만들면서 구글링을 하는 데 영 내가 모르는 외계어만 나와서(그도 그럴게 기초 공부는 해본 적도 없으니..) 3년 만에 처음으로 학교 중앙도서관에서 이고잉 선생님이 쓴 <깃&깃허브 입문>을 빌려와서 주말동안 정독했다. 와 그동안 '이게 뭐지' 싶던 내용들이 적혀있어서 속이 뻥 뚫리는 기분이었다. 역시 아는 만큼 보이는구나 싶었다. css 자바스크립트 입문도 빨리 짬 내서 읽고싶다. 그리고 깃허브 블로그 마스터가 될테야..나도 이쁜 블로그 가지고싶닥우,,! 책 읽으면서 고딩때 이고잉 쌤 홈페이지에서 영상 보면서 아나콘다 깔았던 게 엊그제 같은데..세월 참 빠르다고 느꼈다..ㅋㅋ

 

아무튼 그렇게 비즈니스를 위한 데이터 과학(+@) -> 깃허브 블로그 삽질 -> 깃&깃허브 입문 정독 을 거쳐 최근에 공부에 참고한 도서로는 점프 투 파이썬(박응용 저)가 있다. (휴 드디어 본론) 앞의 기본 개념들은 잘하든 못하든 그래도 알던 것들이었는데 역시나 클래스 부분이 좀 헷갈렸다. self개념이 좀 흡수가 안된달까. 아래는 6장의 예시 문제들을 내 방식으로 푼 걸 적어둔거다. 잘 하든 못하든 혼자서 짱돌 굴리면서 적어봤는데..나 혼자 복잡하게 생각하고 있다는 걸 느꼈다. 같은 결과를 내는 코드라도 실력에 따라 내용이 천차만별이라는 게 개발 세상이라더니 뭔지 쬐끔 알 것 같은 느낌? 

 

공부를 하라 나놈아...~!!

1번 문제: 구구단 만들기

# 구구만 만들기! 사용자가 원하는 숫자를 입력할 수 있게 했다.

first_num = 1
num = int(input("어떤 숫자의 구구단을 원하십니까?: "))
a = []

while first_num <=9:
    if num:
        new = (num * first_num)
        a.append(new)
        first_num = first_num +1
print("결과:", a)

2번 문제: 배수들의 합 구하기

아래 코드블럭은 드디어 처음으로 홀로 해본 삽질..!!ㅋㅋㅋ

문제는 3과 5의 배수들의 합을 더하는 거였는데 괜히 배운 개념 쓰고싶어서 class만들면서 난리를 쳤다.

근데 내가 self개념을 왜 헷갈린다고 느꼈냐면..시키는 대로 self를 넣었는데 실행하면 인수 개수가 안 맞는다고 에러 메시지가 떠서..

self를 안 넣으면 결과가 잘 나와서 또 당황.ㅋㅋ 그래서 자기 전에 클래스 관련 글들 좀 읽고 개념이 익숙해지면 다시 들여다보려고 한다.

그래도 처음으로 구글링 없이 혼자 머리 굴려가면서 작성한 코드라 뭔가 뿌듯했다. 배운 걸 기억하려고 애썼기 때문..ㅋㅋ

# 1000이하의 숫자들 중 3과 5의 배수들의 합 구하기(중복은 제거하라)

class Calculate():

    def sum_multi(init_num):
        multi_num = 1
        sum = 0
        
        while init_num * multi_num <= 1000:
            a = init_num * multi_num
            sum += a
            multi_num += 1
        return sum
    
    def list_multi(a):
        multi_num = 1
        a = int(a)
        a_list = []
        while a * multi_num <= 100:
            result = a * multi_num
            a_list.append(result)
            multi_num += 1
        return print(a_list, end = ' ')
    
    def sum_intersect(a, b):
        intersection = list(set(a) & set(b))
        return intersection
# 3과 5의 배수의 합 구하기 정답(짱 간단해서 허무해!!!ㅋㅋㅋ)
# 배수 구하는건 나머지를 활용하는 게 편리하단 걸 깨달았다. 중딩 수학 때 배우는 개념이긴 함..ㅋㅋ

result = 0
for n in range(1, 100):
    if n%3 == 0 or n%5 == 0: #n이 3또는 5의 배수이면. 중복되는 숫자를 없애기 위해 or연산자를 사용한 것.
        result += n #result에 3또는 5의 배수를 더하는 것. 합 구하기
print(result)

3번 문제: 게시판 페이징 만들기

def getTotalPage(m, n):
    if m/n <= 1: #이 부분은 m < n 이라고 해도 됐을 듯
        a = 1
    elif m%n == 0:
        a = int(m/n)
    else:
        a = int(m/n + 1)
    return print("총 페이지 수는", a, "입니다")

 

이 다음 문제부터는 재미가 없어보여서 건너뛰었다. (하하~)

https://dojang.io/course/view.php?id=7 

 

강좌: 파이썬 코딩 도장

모두 펼치기모두 접기

dojang.io

https://projecteuler.net/archives

책에서 소개해준 사이트에서 연습해봐야지!!

BELATED ARTICLES

more