유사개발자 샤이와 무지

멋쟁이사자처럼 부트캠프 데이터 분석 부트캠프 5기 Day 2[4/155] 파이썬 기초 이론을 하는 날이에요(기본 문법~조건문 일부) 본문

멋사 데이터분석 5기를 보내며

멋쟁이사자처럼 부트캠프 데이터 분석 부트캠프 5기 Day 2[4/155] 파이썬 기초 이론을 하는 날이에요(기본 문법~조건문 일부)

Shy & Mujee 2025. 4. 2. 02:11

오늘은 둘째날~ 파이썬 기초과정입니다. 파이썬은 기본 문법 자체는 그렇게 어렵지 않지만 기존의 언어들과의 약간의 차이점을 보이는 부분들이 있습니다. 그래서 그 부분하고 오늘 새로 안 부분에 대해서 적어볼까 합니다


그 전에 오늘은 주피터 cell에 사용 할 수 있는 단축키를 배웠어요.

물론 90%는 이미 사용하던 내용들이었지만 오랜만에 다시 한번 짚고 넘어가면서 다른 사람들에게 가르쳐 줄 수 있는 정도의 레벨까지 올라온 것 같아요

그 다음 시간에 나온 내용은 주석이었는데 통상적으로 파이썬의 주석처리는 "#"을 사용한다는 것은 유명한 사실이죠. 

한줄은 #으로 그리고,

ctrl + /

를 입력하면 잡아둔 모든 행에 # 주석을 넣어준다는걸 처음 알았어요

 

또,따옴표나 쌍따옴표 3개를 이어서 쓰면 1개 이상의 열을 문자열로 사용할 수도 있죠 이것도 물론 주석으로 사용 할 수 있어요

그리고 긴 설명을 작성하기 위해서나 설명하기 위해서 사용할 수도 있다고 하네요(이하 링크를 참고했어요)

https://www.tutorialspoint.com/python/python_comments.html

 

Python Comments Explained

Discover how to use comments in Python effectively with examples of single line and multi-line comments.

www.tutorialspoint.com

그럼 여기서 들 수 있는 의문점이 따옴표 3개짜리도 원래는 문자열을 작성하는 용도잖아요? 그럼 왜 이게 가능한 것일까요...

알고보니 이유는 간단했습니다.

파이썬의 특징 중 하나

파이썬은 그냥 숫자던 문자열이던 마지막 행에 넣으면 실행시켜주는 특성이 있어요 이 셀을 확인해보면 중간에 10은 출력이 안됐죠? 중간에 있기 때문이에요 이 특성을 이용하면 바로 문자열을 주석처럼 사용 할 수 있는 것이에요

이렇게 말이죠

 

그후 자료형, 변수에 대한 이야기를 하면서 파이썬이 변수에 값을 할당하는 방법에 대해서 이야기를 했었어요.

파이썬은 잘 생각해보면 자료형을 따로 지정하지 않잖아요? 그 이유를 이야기 해볼까해요(본 수업에서는 간단히 객체에 저장하기 때문이라고 설명 해 주셨지만 왜 그렇게 되는지 궁금하잖아요?)

자 변수에 무언가를 할당하면 이 데이터는 어디에 저장할까요? 정답은 주기억장치 RAM입니다.
그리고 이 램이라는건 아파트라고도 비유할 수도 있습니다. 아파트마냥 주소지가 있는거죠 101호 102호 이런 느낌으로 말이죠 
자 그럼 어떻게 저장하는지는 저급언어에 가까운 C를 보면 알 수 있어요

C에서 변수를 선언하고 값을 할당하면 이 변수는 포인터를 활용해서 RAM상에 데이터를 저장하고 그 주소값을 포인터에 넣어둬요
출처: https://velog.io/@youngeui_hong/C-%EC%96%B8%EC%96%B4-%EA%B8%B0%EC%B4%88-%ED%8F%AC%EC%9D%B8%ED%84%B0

이게 바로 포인터를 예쁘게 그린거에요

우리에겐 포인터에 대한 디테일은 필요 없으니깐 딱 이정도만 알고 계시면 됩니다 중요한건 그 메모리를 가리킨다는거에요(좀 더 디테일하게 들어가면 그 길이의 첫 위치를 가리켜요(만약에 101호 102호 103호의 벽을 허물어서 한 집으로 만들었다면 101호를 가리키는거에요))

C는 자료형의 길이라던가 이런 부분이 영향을 주잖아요?, 파이썬은 C로부터 파생된 언어 중 하나입니다 그러니 C언어의 특징을 가지고 있겠죠(파이썬이 애초에 Cpython이 기본적인 구현체인걸 보면 더더욱 그럴 것 같아요) 그래서, 결론은 파이썬도 C와 같이 포인터를 활용해서 RAM상에 데이터를 저장하고 그 주소값을 포인터에 넣어둔 것이죠! "근데 파이썬은 C와는 다르게 변수 선언시에 자료형을 안 넣잖아요"
자 여기서부터가 진짜 게임입니다. 이걸 생각해봅시다 만약에 우리가 프로그래밍 언어를 만들건데 파이썬처럼 자료형을 생략하게 하고 싶다면 어떻게 해야할까요? 단일의 자료형을 가지고 있으면 되지 않을까요? 어? 파이썬에는 이걸 구현 해낼 만한 특징이 있습니다
바로 "객체 지향 언어"라는 사실이죠 이것도 간단히 이야기하면 각각의 숫자를 객체 안에 넣어서 메모리에 저장하는 겁니다!
이러면 굳이 자료형을 지정하지 않더라도 해결 가능하겠는데요? 어차피 이 객체를 가리킨다면 필요한 길이는 고정인 것이잖아요?
예를들자면 A1 종이(변수에 할당된 값)를 접고 접어서 A4 종이 상자(객체)에 넣어서 101호에 넣고 B4 종이(변수에 할당된 값)를 A4 종이 상자(객체)에 넣어서 102호에 넣어둔 것이죠
그래서, 자료형을 명시하지 않아도 해결되는겁니다.
그럼 이 값은 어떻게 꺼내오냐고요? 그냥 객체에서 평범하게 값을 받는 함수를 쓰면 됩니다.이건 클래스쪽을 배우면 아시게 될거에요 덤으로 파이썬은 -5~256까지는 이미 객체가 만들어져 있어 is를 사용하여 비교하면 같은 객체에 닿아요 반대로 저 범위 밖에 숫자는 선언 할 때마다 새로운 객체로 만들어요
이래서 파이썬을 공부하더라도 자료형이라던지 이런 숨겨진 요소들을 공부해야하는겁니다(재밌어요 찾다보면)

이후에는 연산자와 조건문에 대해서 이야기 했는데 강사님께서 넘어가신 부분이 있어서 더 적어봐요(잘 사용하진 않았던 것 같아요)

바로 비트연산자에요 2진수 연산이 필요할때나 보통 사용하지만 언젠간 쓸모가 있을 수도 있으니깐 알아두면 좋을 것 같아서 링크로만 남겨놔요

https://dojang.io/mod/page/view.php?id=2460

 

파이썬 코딩 도장: 47.1 비트 연산자 사용하기

Unit 47. 부록 이제부터 부록입니다. 부록은 참고삼아 알아둘 내용, 자주 사용하지 않는 기능, 내용이 다소 어려운 부분, 파이썬을 어느 정도 알고난 뒤에 봐야할 내용 등을 담았습니다. 여기에 나

dojang.io

그리고 개발을 처음 시작할 때 어떤 식으로 구현할지에 대해서도 설명을 좀 해주셨는데

아직 언어와 친근하지 않고 구현 자체도 익숙하지 않다면 우리에게 가장 친근한 언어인 "한국어"로 구현하고 이걸 파이썬이란 언어로 번역하면 된다는거죠

만약 구구단을 2단부터 9단부터 출력하는 문제가 있다고 생각해봅시다.
그럼 당신은 어떻게 구현을 시작할까요? 저같이 약간 익숙한 사람은 그냥 구현해버리지만
익숙하지 않다면 이렇게 구현해보는 것도 방법입니다
2 X 1 = 2고 2 X 2 = 4고...... 9 X 9 =81이네
그럼 이걸 그대로 구현하는겁니다
print( "2 X 1 = ", 2)
.....

print( "9 X 9 = ", 81)
맞아요 좋은 답변이죠

지금까지 배운걸 기준으론 말이죠
자 미래의 지식을 조금만 빌려와 봐요 반복문입니다
아 그럼 2단에 대해서 1부터 9까지 반복해서 곱하는 것이구나
아 그럼 3단에 대해서 1부터 9까지 반복해서 곱하는 것이구나
....

아 그럼 9단에 대해서 1부터 9까지 반복해서 곱하는 것이구나
이렇게요
이걸 그대로 구현해볼게요
for i in range(1,10):
    print("2 X ", i, " = ", 2 * i)
.....
for i in range(1,10):
    print("9 X ", i, " = ", 9 * i)
여기까지 발전 시켰어요! 좋아요!

근데 생각해보니깐 지금의 방법을 한번 더 하면 압축이 가능할 것 같아요
2단에서 9단까지 1부터 9까지 반복해서 곱하는 것이 구구단이었네!
이걸 구현해볼까요?
for i in range(2,10):
    for j in range(1,10):
        print(i, " X ", j, " = ", i * j)

이렇게 구현됩니다 수학적으론 이거 이상으론 압축이 힘들겠죠? 그럼 이게 만족스러운 답변이 되는겁니다.(이래서 은근 프로그래밍에서 수학적인 지식이 중요해요)

이런 순서로 구현을 준비하고 발전시켜나가면 됩니다.

 

또 여러 표기법이라던지 

변수 첫글자 소문자 + 카멜
함수 첫글자 소문자 + 카멜
클래스 첫글자 대문자 + 카멜
상수 첫 글자 대문자 + 스네이크

 

사이트라던지

데이터 사이언스 스쿨 — 데이터 사이언스 스쿨

 

데이터 사이언스 스쿨 — 데이터 사이언스 스쿨

데이터 사이언스 스쿨 데이터 사이언스 스쿨은 데이터 사이언스에 대한 모든 지식을 공유하는 장입니다. 알림 데이터 사이언스 스쿨 홈페이지를 깃헙 페이지와 주피터 북 기반으로 리모델링하

datascienceschool.net

Quality Tutorials, Video Courses, and eBooks - TutorialsPoint

 

Quality Tutorials, Video Courses, and eBooks - TutorialsPoint

Learn the latest technologies and programming languages including CodeWhisperer, Google Assistant, Dall-E, Business Intelligence, Claude AI, SwiftUI, Smart Grid Technology, Prompt Engineering, Generative AI, Python, DSA, C, C++, Java, PHP, Machine Learning

www.tutorialspoint.com

Markdown Reference

 

Markdown Reference

Markdown is a simple way to format text that looks great on any device. It doesn’t do anything fancy like change the font size, color, or type — just the essentials, using keyboard symbols you already know.

commonmark.org

도움이 될 많은 정보를 알려주셨어요 굉장히 알찬 하루였던 것 같아요 내일은 반복문과 조건문 등 더 많은 코딩에 필요한 것들을 배우는데 내일이 또 기대가 되네요 이제 자고 내일 일어나서 또 강의를 들어야겠어요 그럼 내일 또 만나요

멋쟁이사자들 데이터분석 5기 모두 화이팅입니다!!!

참고자료

https://cow-coding.tistory.com/70

 

[파이썬 깊게 파보기] 1. Python의 객체와 변수의 개념

들어가며 면접 과정에서 파이썬과 관련된 질문을 많이 받았는데, 생각보다 내가 파이썬을 잘 모르고 있다는 사실이 상당히 충격으로 다가왔다. 그래서 기본서로 공부할 책과 좀 더 심화적인 스

cow-coding.tistory.com

https://whyitsme.tistory.com/139

 

프로그래밍 언어 계보도

프로그래밍 언어는 애초에 사람이 컴퓨터와 소통하기 위해 만든 것이지만, 필요에 따라 서로 다른 방식으로 발전해왔다. 처음에 사람과 컴퓨터는 바이너리 코드(2진수 언어)로 소통했다. 컴퓨터

whyitsme.tistory.com

https://velog.io/@youngeui_hong/C-%EC%96%B8%EC%96%B4-%EA%B8%B0%EC%B4%88-%ED%8F%AC%EC%9D%B8%ED%84%B0

 

[C 언어 기초] 포인터

포인터의 개념과 역참조, 이중포인터 등에 대해 알아보자!🧐

velog.io

 

 

[파이썬 깊게 파보기] 1. Python의 객체와 변수의 개념

들어가며 면접 과정에서 파이썬과 관련된 질문을 많이 받았는데, 생각보다 내가 파이썬을 잘 모르고 있다는 사실이 상당히 충격으로 다가왔다. 그래서 기본서로 공부할 책과 좀 더 심화적인 스

cow-coding.tistory.com

메모리의 구조 (코드, 데이터, 힙, 스택 영역)

 

메모리의 구조 (코드, 데이터, 힙, 스택 영역)

목차 메모리 코드(code) 영역 데이터(data) 영역 힙(heap) 영역 스택(stack) 영역 오버 플로우 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드

all-young.tistory.com

등등등 엄청나게 많은 구글링을 했어요

 

Comments