반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

 

오늘 배울 내용은 바로 경로(path)와 디렉토리(directory)입니다!

 

자세한 내용으로 들어가기 전에 경로와 디렉토리가 각각 무엇이고, 왜 배워야하는지에 대해 간단히 설명드려보겠습니다.

 

경로와 디렉토리의 개념

출처.직접 제작

일상 생활에서 경로란 어떤 목적지로 향하는 길이라는 의미로 쓰입니다.

 

컴퓨터에서 목적지란 디렉토리이며, 찾아가는 길을 경로라고 부릅니다. 우리에게 아주 익숙한 폴더라는 것이 디렉토리라 불리는 것입니다.

 

참고로 경로는 폴더 뿐만 아니라 파일로 향하는 길을 이르기도 합니다.

이때의 경로는 디렉토리 안의 디렉토리 안의 디렉토리 안의 파일 정도가 되겠죠?

 

실제 모습은 흔히 보셨겠지만 C:\Users\username\Desktop\filename.txt 이런 식입니다.

참고로, Windows os는 디렉토리를 역슬레쉬( \ )로 나타내고, Mac os에서는 슬레쉬( / )로 나타냅니다.

 

 

프로그래밍 공부를 하다보면, 한번쯤 겪게 되는 경로 설정의 오류는 '경로가 없거나 경로가 올바르지 않게 입력되었을 때' 생깁니다.

즉, 여기 어떤 파일이 있다고 코드에 잘 적어놓지 않았거나, 그 경로를 따라 갔더니 찾는 파일이 존재하지 않거나 하는 경우입니다.

 

추후에 프로그램을 자신의 컴퓨터에서 만들어서, 다른 사람에게 배포할 때에도 경로에 대한 고려가 꼭 필요하답니다.

내 컴퓨터에서 실컷 잘돌아가다가도 경로 설정을 신경쓰지 못 하면 다른 컴퓨터에서는 쓸모가 없어지니까요!

 

 

절대 경로와 상대 경로

 

 

좌표계에도 절대 좌표와 상대 좌표가 있듯이 경로에도 절대 경로와 상대 경로가 있습니다.

 

절대 경로

 

절대적인 기준(최초 디렉토리)를 기준으로 경유한 경로를 모두 기입하는 방식입니다.

아까 전 예로 들었던 C:\Users\username\Desktop\filename.txt 가 절대 경로입니다.

 

상대 경로

상대 경로는 최초 디렉토리가 아닌 특정 경로를 기준으로 다른 경로를 표시하는 방식입니다.

주로 현재 작업하고 있는 폴더를 기준으로 합니다.

 

 

상대 경로 사용법

 

예를 들어 현재 디렉토리에서 제가 example.py라는 파이썬 파일에 코드를 짜고 있다고 생각해봅시다.코드를 짜다보니 하위 디렉토리에 위치하는 sample.xlsx를 참조해야하는 상황이 발생했습니다.

 

이때 상대 경로의 개념을 이용하면 ./하위 디렉토리/sample.xlsx 라고 써주면 됩니다. 즉, 여기서 사용된 dot(.)은 현재 디렉토리가 어디에 위치하던 현재 파이썬 파일이 위치한 디렉토리의 경로를 뜻합니다. 여기서는 dot(.)의 의미는 '최초 디렉토리/상위 디렉토리/현재 디렉토리'가 되겠죠!

 

추가적으로 설명드리면, dot 두 개(..)현재 디렉토리의 상위 디렉토리를 뜻합니다.

만약 example.py에서 sample2.xlsx를 상대 경로를 이용해서 참조하고 싶다면 이렇게 하시면 됩니다.

 

'./../현재 디렉토리와 같은 디렉토리에 존재/sample2.xlsx'

 

그러니깐, 현재 경로(.)를 기준으로 상위 디렉토리(/..)로 올라간 후, '현재 디렉토리와 같은 디렉토리에 존재'라 이름 붙인 디렉토리로 내려가서 sample2.xlsx를 참조하는 것입니다.

 

 

상대 경로 사용하는 이유

 

그렇다면 절대 경로도 있는데 왜 굳이 상대 경로는 왜 사용하는걸까요?

 

예를들어 filename.txt의 경로가 자주 바뀌거나 최초 디렉토리가 서로 다른 Windows와 Mac OS 모두에서 작동해야 하는 프로그램을 만드는 경우엔 그때 그때 경로를 다시 작성하거나 OS 별로 따로 관리해야 하는 것은 너무 비효율적인 일입니다.

 

그래서 이럴 때는 절대 경로가 아닌 상대 경로를 이용해 주어야 합니다.

 

 

절대 경로 가져오는 꿀팁

 

window는 cmd, mac은 terminal에 경로가 필요한 파일이나 폴더를 드래그해서 가져다 놓으시면 됩니다.

만약 vscode와 같은 ide를 사용하시면 그 곳의 터미널 창에다가 끌어다 놓으셔도 되니깐 유용하게 사용하시면 좋겠습니다.

 

 


조만간 파이썬에서 경로와 디렉토리를 다루는 os 모듈에 대해서도 포스팅 하도록 하겠습니다.

 

오늘도 코딩유치원을 찾아와 주셔서 감사합니다.

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

오늘은 모듈을 불러와서 사용할 때 입력해주는 import와 from의 의미에 대해서 알아보겠습니다.

 

여러분은 아마 python을 공부하시다가 import os 혹은 from os import * 과 같은 구문을 보신 적이 있을거예요.

혹시 이 둘의 차이점에 대해서 생각해보신적 있으신가요?

 

import os

- os 모듈을 불러오는 것

 

from os import*

- os모듈로부터 모두(*) import

 

언뜻보면 같은 의미인 것 같습니다만 조금 다르답니다. 어떻게 다른지 결론부터 말씀드리면 아래와 같습니다.

 

한줄 요약

import만 사용하면 모듈 안의 함수를 사용할 때, 모듈명.함수명( )으로 하고, from을 사용하면 바로 함수명( )으로 사용

 

 

자세한 이해를 위해서 os 모듈의 listdir 함수를 사용하는 상황을 예로 설명드려보겠습니다.

 

모듈: os (운영체제에서 제공되는 여러 기능을 다룰 수 있는 파이썬 모듈)

모듈 내의 함수: listdir (현재 경로의 파일 또는 폴더의 리스트를 반환하는 함수)

 

 

case1. import os

 

- 현재 python 파일에서 listdir 함수를 사용 하려면 os.listdir( )이라고 입력해야함.

 

 

case2. from os import *

 

- 현재 python 파일에서 listdir 함수를 사용하려면 listdir( )만 사용하면 됨.

- 이때 주의할 점은 from으로 불러온 모듈에 같은 이름의 함수가 있으면 문제가 발생.

- 참고로, import *를 와일드 임포트(wild import)라고 부름.

 

 

case3. from os import listdir

 

- 하나의 함수만 가져오는 것도 가능. (함수 사용법은 case2와 같음)

- 와일드 임포트는 뜻하지 않게 기존의 변수나 함수를 덮어 쓸 때가 있을 수 있으므로 해당 방법이 바람직함.

   (그냥 공부할 때는 import *가 짱입니다)

 

 

알아두면 피가되고 살이되는 지식

 

1. 모듈 안에는 함수 뿐만 아니라, 변수나 클래스도 존재하고 이걸 가져다 쓸 수 있습니다.

from openpyxl import Workbook

wb = Workbook()    # Workbook 클래스로 wb 인스턴스 생성

 

2. 모듈은 누군가 만들어놓은 파이썬 파일(.py)이며, 이를 모아둔 폴더를 패키지라고 합니다.

 

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

 

대부분의 패키지는 그 안에 하위 패키지나 모듈을 가지고 있습니다. 이러한 하위 패키지 중에는 상위 패키지를 임포트할 때 자동으로 임포트되는 것도 있지만 자동으로 임포트되지 않는 것도 있습니다.

 

자동으로 임포트되지 않는 하위 패키지는 아래의 예처럼 수동으로 임포트 해야한다는 점 알아두시면 좋을 것 같아요.

 

import 패키지명.모듈명

import 패키지명.하위 패키지명

 

import sklearn.preprocessing

dir(sklearn.preprocessing)

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


 

 

"Don't reinvent the wheel"

 

영어에는 이런 격언이 있습니다. 직역하자면 '바퀴를 다시 발명하지 마라!'입니다. 이 말은 이미 만들어져서 잘 되고 있는 것(wheel)을 처음부터 다시 만들(reinvent) 필요는 없다는 의미입니다. 즉, 불필요하게 처음부터 다시 시작하지 말라는 것을 강조하는 말입니다.

 

우리는 앞으로 코딩을 하면서 남이 만들어 놓은 수많은 모듈을 가져와서 사용하게 될 것입니다. 아니 모듈을 넘어서 코드도 많이 가져와서 사용하게 될 것입니다. 그것을 내 능력이 아니라고 부끄러워 할 필요가 없습니다. 결국 태양 아래 새로운 것은 없는 것이니까요!

 

그러니 우리가 앞으로 익혀야 할 능력은 Ctrl+C, Ctrl,V한 코드들이 무슨 말인지, 어느 부분을 고치면 내가 원하는 기능을 할 수 있는지가 될 것입니다. 지금 껏 배워온 기초 문법들이 그것을 도와줄 것이고, 오늘 배울 모듈 사용법이 여러분들의 원하는 기능들을 손쉽게 구현 가능하도록 해줄 것입니다.

 

자! 그럼 시작해보겠습니다.

 

모듈

 

한땀한땀 파워포인트로 그린 개념도

 

모듈은 기초 문법 강의 10편에서 설명드렸듯이 함수나 변수 또는 클래스를 불러와서 사용할 수 있게끔 모아 놓은 파이썬 파일(.py)입니다.

 

대충 개념은 알아보았으니 이번 시간에는 모듈 파일을 만드는 방법과 모듈을 불러와서 사용하는 법에 대해 자세히 알아보겠습니다.

 

모듈 만드는 방법

1) VS Code를 실행한 후, 원하는 경로(디렉토리라고도 부름)에 폴더를 하나 만듭니다.

   (어떻게 하는지 잘 모르겠다 하시는 분들은 아래의 글을 참고해주세요)

2021.03.08 - [파이썬 기초/개발환경 구축] - [코딩유치원] 파이썬 개발환경 구축 4편 (VS Code와 친해지기)

 

2) 적당한 제목(module.py)으로 파이썬 파일을 하나 만들어 줍니다.

 

3) 아래와 같이 코딩을 한 후, 저장을 합니다. (저장을 꼭 해주세요!)

def add(a, b):
    return a + b

a= 1
b= 2

print(a+b)

 

모듈 만들기 끝입니다! 엄청 간단하죠?ㅎㅎ

 

사실 더 간단하게 가장 아래의 함수 두 줄만 있어도 되지만 아래에서 설명드릴게 있어서 이렇게 코딩했답니다.

 

그럼 바로 모듈을 가져와서 사용하는 법으로 넘어가보겠습니다.

 

 

모듈 사용하는 방법

 

1) 다시 한 번 새로운 파이썬 파일을 하나 만들어 줍니다. (이번에도 아무 이름.py로 이름지어줍니다)

 

2) 아래와 같이 코딩한 후, 코드를 실행합니다.

import module as mod      # import 모듈명
                          # as mod는 불러온 모듈의 이름이 길 때, 앞으로 mod로 부르겠다는 의미
                          # 당연히 mod도 맘대로 지은 이름

print(mod.add(5,10))

 

잠시 코드에 대해서 설명하고 실행 결과에 대해서 이야기 해보겠습니다.

 

import이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령어입니다. 그 뒤에 module은 우리가 방금 만들었던 모듈명이죠.

그리고 as mod는 필수는 아니지만 앞으로 긴 이름의 모듈이 있을 때, as 명령어로 모듈 이름을 내맘대로 재정의해서 사용할 수 있게 해주는 코드니 알아두시면 좋겠습니다.

 

마지막으로 print() 함수를 이용해서 module의 add(a,b) 함수에 5와 10을 인수로 넣어서 결과를 터미널 창에 띄우는 코드입니다.

 

여기서 잘보시면 모듈명.함수의 형태로 사용한게 보이시죠? 앞으로 이렇게 "."(도트 연산자)를 이용해서 원하는 모듈의 원하는 함수를 가져다 사용할 수 있습니다.

 

여기까지가 모듈을 사용하는 방법입니다. 이것도 정말 간단하죠?!

 

 

모듈 만들 때 꼭 넣어줄 제어문 [  if__name__ == "__main__":  ]

 

위에서 작성했던 코드를 실행해 보시면 아래와 같이 결과가 나왔을텐데요, 잠시 하나를 더 설명해야 할 것 같아요.

 

<결과 터미널 창>

3
15

 

 

우리가 module의 add 함수를 불러오면서 원했던 것은 단지 15라는 값이 었습니다. 하지만 위에 3이란 값이 함께 출력되었죠.

이 3이란 것은 import module을 하면서 딸려온 출력된 값입니다. 이것이 의미 하는 바는 무엇일까요?

 

바로 import를 하면 함수 외에도 모듈의 모든 것들, 특히 변수도 같이 import 된다는 것입니다. 모듈을 작성하면서, 불가피하게 함수 외에도 변수를 설정할 수도 있을 것입니다. 만약 이런 것들이 그대로 새로 작성하는 코드에 영향을 준다면 곤란한 일이 생길 수도 있습니다.

 

그래서 통상적으로 모듈을 만들 때는 아래와 같은 문구를 넣어줍니다.

 

def add(a, b):
    return a + b

if __name__ == "__main__":    # 참고로 __는 언더바( _ ) 두 개
    
    a= 1
    b= 2

    print(a+b)

 

<참고> 만약 내가 코린이고 앞으로 모듈 만들 일 없다고 생각하시면 아래의 내용은 그냥 넘어가셔도 됩니다.

 

__name__이란 변수명은 모듈과 현재 파이썬 파일을 구분해주기 위한 파이썬만의 특별한 변수입니다. 현재의 파이썬 파일을 실행하면 __name__변수에 "__main__"이라는 값이 저장됩니다. 이것을 이용해 모듈을 불러왔을 때, 실행되면 안되는 부분을 실행되지 않게 해줄 수 있습니다.

 

1) 모듈 파일을 직접 실행할 때

 

module.py를 직접 실행하면은 if의 조건문이 참이 되어서 if문 안의 내용이 실행됩니다.

 

2) 모듈 파일을 불러올 때

 

모듈을 import한다는 것은 모듈 파일을 실행시킨다는 것입니다. 하지만 이때 모듈 파일의 __name__ 변수에는 "__main__"이 들어가있지 않으므로 if 조건문이 거짓이 되어 if문 다음 문장이 수행되지 않습니다.

 

 

모듈은 아무곳에서나 불러올 수 없다 

 

기본적으로 import 명령어로 모듈을 불러오려면, 모듈 파일이 현재 디렉터리(경로)에 있거나 파이썬 라이브러리가 저장된 디렉터리에 있어야만 합니다. 참고로 파이썬 라이브러리는 파이썬을 설치할 때 자동으로 설치되는 파이썬 모듈을 말합니다.

 

예전에 VS Cdoe에서 인터프리터 환경을 'base':conda로 설정해주었었는데 이 것이 위에서 언급한 파이선 라이브러리가 저장된 디렉터리가 되겠습니다. 앞으로 새로운 패키지를 설치하는 일이 자주 있을텐데요, conda 명령어를 이용해서 패키지(모듈의 모음)를 설치하면 기본적으로 base에 설치됩니다. 이에 대한 내용은 그때 다시 자세하게 다루도록 하겠습니다.

 

어떤 메커니즘으로 파이썬이 모듈을 찾아서 사용하는지에 대해서는 아래의 블로그에 잘 설명되어 있으니, 여기서는 자세히 설명하지 않겠습니다. 내용이 조금 어려울 수 있으니, 중급자분들만 보세요.

 

velog.io/@devmin/%ED%8C%8C%EC%9D%B4%EC%8D%AC-import%EA%B0%80-module%EA%B3%BC-package-%EB%A5%BC-%EC%B0%BE%EC%95%84%EA%B0%80%EB%8A%94-%EA%B2%BD%EB%A1%9C

 

파이썬 - import가 module과 package 를 찾아가는 경로

파이썬에서는 import를 활용해 현재 작성하고 있는 파일 바깥의 패키지 및 모듈을 불러와 그 안에 있는 요소들을 가져다 쓸 수 있는데요, 이때 파이썬이 어떻게 패키지와 모듈이 있는 곳을 찾아나

velog.io


오늘 준비한 내용은 여기까지입니다.

 

여러분들의 코딩 공부에 도움이 되었길 바랍니다.

 

긴글 읽어주셔서 감사합니다!

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

 

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 지난 시간 함수의 개념을 익혀보았으니, 실제로 어떻게 만들고 어떻게 사용할 수 있는지 알아보겠습니다.

 

함수 만드는 법

 

파이썬에서 함수를 만드는 방법은 간단합니다.

 

1) definition(정의)의 약자인 def를 입력

 

2) 한칸 띄우고 함수명을 내맘대로 작성

    (기능이 무엇인지 알아볼 수 있는 이름 권장 / 당연히 영어)

 

3) 입력 받을 매개변수를 차례대로 ( )안에 입력

 

4) 아래에 실행할 코드를 작성

    (매개변수가 들어가는 코드와 안들어 가는 코드 모두 작성 가능)

 

5) 가장 마지막에 return을 쓰고 돌려주고 싶은 결과 값을 입력

 

<기본 형태>

def 함수명(매개변수 1, 매개변수 2, ...)

    실행할 코드
    
    return 결과값    


<예시 코드>

def plus(x, y)
    
    a = x + y
    
    return a     # 바로 x+y를 리턴해줘도 됨

 

이 때, 입력과 출력의 유무에 따라서 총 4가지 형태로 함수를 만들 수 있습니다.

 

  함수의 4가지 형태
1 입력 O, 출력 O (가장 기본적인 형태)
2 입력 O, 출력 X
3 입력 X, 출력 O
4 입력 X, 출력 X

 

방금 전 봤던 예시 코드로 1번 형태는 보았으니, 간단하게 4번 형태만 예시 코드로 보고 넘어가도록 하겠습니다.

 

def hi():
    
    print('Hi')

 

이 함수는 ( )안에 매개변수도 없고, return도 없죠? print( ) 함수로 'Hi'라는 문자열을 터미널 창에 출력할테니깐 출력이 있는 것 아닌가 생각 하실 수 있습니다. 하지만 여러분들이 꼭 기억하셔야 할 것은 반드시 return으로 주는 값이 실제 출력이라는 것입니다.

 

이 외에도 함수를 만들 때 아래와 같은 경우가 있을 수 있는데 이것까지 다루면 너무 머리가 복잡해지실 것 같아서 다루지 않았으니, 추후 코딩하면서 필요한 일이 생기면 검색해보시길 바랍니다.

 

1) 입력을 무한대로 받을 수 있는 *매개 변수

2) 초기값을 미리 가지고 있는 매개 변수 (따로 설정 안하면 초기값이 자동으로 입력)

 

함수 사용하는 법

이제 함수 만드는 법을 배웠으니, 사용하는 법도 배워야겠죠?

 

바로 위에서 예로 만들었던 hi() 함수를 사용해 보겠습니다.

 

hi()

>>> 'Hi'

 

이 경우는 입력이 없으니 그냥 hi()를 입력하고 실행하면 'Hi'를 터미널 창에 출력해줍니다. 너무 간단하죠?

 

이번에는 가장 처음 만들어 보았던 plus(x,y) 함수를 사용해 보겠습니다.

 

plus(5,10)       # 그냥 이렇게 쓰면 아무일도 일어나지 않습니다.


a = plus(5,10)   #이렇게 변수에 담아서 print()함수로 터미널 창에 띄워야 결과를 확인할 수 있어요.

print(a)

>>> 15


 

이렇게 plus(x,y)의 매개변수 x, y자리에 5와 10이라는 인수(입력값)를 넣어 줍니다.

(함수를 만들 때는 매개변수, 함수를 사용할 때는 인수가 괄호 안에 들어간다고 이해하시면 됩니다)

 

참고로, plus(x=5, y=10)과 같이 매개변수를 지정해서 입력값을 넣을 수 있답니다. 이런 방식의 장점은 입력 순서를 지키지 않아도 된다는 점입니다.

 

 

그 외 알아두면 좋은 것들

 

지역 변수 (local variable)

함수에 사용되는 입력 변수나 함수 안에서 만든 변수를 지역 변수라고 합니다. 해당 지역에서만 유효한 변수라는 뜻으로 함수의 밖에서는 사용할 수 없는 특징이 있습니다. 혹시 함수 밖에 같은 이름의 변수가 있다고 하더라도 별개의 변수로 취급됩니다. 

 

아래 코드로 확인해보시죠.

a = 100

def check_local(a):    
    print(a)


check_local(1)
print(a)


<결과창>

1
100

 

print() 함수로 함수 내에서의 a를 확인하기 위해서 check_local(a)  함수를 만들어 보았습니다.

 

check_local(1)을 실행하니, 처음에 선언한 a = 100을 무시한 1이 출력된 것과 그다음 print(a)는 100으로 출력되는 것을 확인할 수 있죠.

 

이것으로 같은 이름의 변수 a는 함수의 안과 밖에서 다르게 인식되는 것을 확인 할 수 있습니다.

 

 

전역 변수 (global variable)

만약 위의 예처럼 함수 안과 밖에 같은 이름의 변수가 없는 이상, 함수 밖에서 만들어진 변수는 함수 안에서도 사용할 수 있습니다.

이를 전역에서 모두 사용 가능한 변수라는 의미로 전역 변수라고 부릅니다. 

 

위에서 지역 변수를 설명하면서, 함수 안에서 설정한 변수는 밖에 영향을 미치지 않는다고 하였지만 예외가 있습니다.

바로 함수 안에서 변수명 앞에 global 명령어를 적어주는 것입니다. 하지만 웬만하면 이 방법은 권장하지 않습니다.

 


 

오늘 준비한 내용은 여기까지입니다.

 

다음 시간에 또만나요~!

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 함수, 모듈, 그리고 패키지가 무엇인지 큰 맥락에서 이야기 해보려합니다.

 

바로 함수를 만드는 법에 대해서 깊게 들어가기 보다는 이것들의 의미에 대해서 알고 큰 그림을 먼저 그리는 것이 더 좋다고 생각했기 때문입니다.

 

그럼 바로 시작하겠습니다!

 

함수

 

출처. 프로그래머가 필요한 수학 (brunch)

 

수학을 조금이라도 배워보신 분들이라면 한번쯤 들어보셨을 함수입니다. 우리가 많이 본 함수란 y=5x+10 요론거죠.

 

다들 알고 계실테지만 함수란 무엇인지 한번 정의하고 넘어가보겠습니다.

 

함수의 정의

입력(Input)을 받아서 내부적인 처리를 통해 출력(Output)을 돌려주는 시스템

 

 

놀랍게도 우리가 지금껏 배워왔던 내용들이 함수의 정의에 모두 들어가있습니다. 어떤가요? 그림이 조금 그려지시나요?

 

입력 & 출력 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불 자료형
내부적인 처리 함수, if문, while문, for문

 

그런데 잠깐, 이상한 점이 있습니다. 내부적인 처리에 함수가 들어가있는데 이건 오타일까요?

당연히 아닙니다. 함수 안에도 함수가 들어갈 수 있기 때문이죠. 아래의 식당 함수 예를 보면서 설명드리겠습니다.

 

세상만사는 함수다?!

 

 

예를 들어, 식당 함수라는 것이 있다고 생각해봅시다. 식당 사장님이 자본을 가지고 인력을 뽑아서 식당 함수를 만들었습니다.

 

식당 함수 안에는 당연히 세부적인 함수들이 있겠죠? 맛있게 요리를 하는 함수, 손님에게 주문을 받고 음식을 가져다주는 함수, 식사를 끝내고 나가는 손님에게 돈 계산을 하는 함수, 남은 그릇들을 깨끗이 설거지 하는 함수 등등 그 외에도 다양한 함수들이 있습니다.

 

이렇게 직원들이 각자의 함수를 수행함으로써 영업이익이라는 최종적으로 원하는 Output을 낼 것입니다.

물론 그 안에서도 직원에게 주는 월급, 식자재 구입 등의 Input등이 있을 거란 것도 아시겠죠?

 

곰곰히 생각해보면 세상의 모든 일들을 함수로 생각해볼 수 있겠네요!

 

 

함수는 왜 사용할까?

 

혹시 모든 프로그래밍에서 왜 함수를 정의해서 사용하는지 궁금하지 않으신가요?

그것은 바로 인간의 본성에 있습니다. 사람은 태생적으로 반복적인 일을 지루해하고 싫어하기 때문입니다.

간편하고 편리한 것을 선호하는게 인간의 본성이죠. 마치 자주 찾는 사이트를 즐겨찾기 해놓는 것을 생각하면 바로 이해가 가실까요?

 

자주 사용하는 코드를 하나의 함수로 만들어 놓으면 나도 편하고, 남들도 편합니다.

나는 편한건 알겠는데 남들은 왜 편하냐구요? 이유는 다음과 같습니다.

 

1) 함수로 코드를 제작하면 가독성이 뛰어나다

2) 내가 제작한 함수를 남도 사용할 수 있게 배포할 수 있다

 

가독성이 뛰어나다는 것은 내가 코드를 다시 볼 때도 좋지만, 협업할 때 남도 읽기 쉽다는 장점이 있죠.

 

그리고 내가 제작한 함수를 남도 사용할 수 있다는 것은 바꿔 말하면 남이 제작한 함수를 내가 사용할 수 있다는 말입니다.

우리 같은 초보 입장에서는 코딩 고수들이 이미 만들어 놓은 함수를 쓸 수 있다는 것이 가장 큰 매력일 것입니다.

 

 

모듈과 패키지, 라이브러리

남이 제작한 함수를 사용하는 것과 지금부터 배울 모듈과 패키지, 라이브러리 개념과 관련이 있으니 조금만 더 집중해봅시다!

 

한땀한땀 파워포인트로 그린 개념도

모듈

모듈이란 파이썬 프로그램을 작성할 때, 함수나 변수 또는 클래스를 불러와서 사용할 수 있게끔 모아 놓은 파이썬 파일(.py)입니다.

우리가 설치한 VS Code에서 파이썬 파일을 만들 때, 제목.py로 만들었던 것 기억하시나요? 바로 그 파일을 모듈화 하는 규칙을 추가해서 작성하면 그것이 바로 모듈입니다. (추후 함수와 모듈 작성하는 법은 따로 포스팅하겠습니다)

 

패키지

패키지는 아주 쉽게 말해서 모듈을 잔뜩 모아서 폴더에 넣어둔 것을 생각하시면 됩니다. 이때, 패키지 안에 폴더가 더 있을 수도 있습니다.

파이썬의 강점은 강력한 패키지들이 많다는 것이죠. 데이터 사이언스와 관련된 Pandas, Numpy, 엑셀을 다루는 Openpyxl, 딥러닝을 위한 Tensor Flow 등 다양한 패키지들을 조금만 공부하면 사용할 수 있다는게 참 매력적이지 않나요?

 

라이브러리

라이브러리는 파이썬 설치 시 기본으로 설치되는 파이썬 표준 라이브러리(Python Standard Library, PSL)와 외부 라이브러리로 크게 두 가지로 나뉩니다. 외부에서 install 함수로 설치하는 패키지들은 외부 라이브러리에 별도 저장되는 것으로 보입니다. 사실 저도 패키지와 라이브러리 개념을 혼용해서 사용해와서 처음 알았네요. 말그대로 도서관처럼 책이라는 패키지를 저장해두는 곳이라고 생각하면 좋겠습니다.

 


오늘은 함수부터 시작해서 모듈, 패키지, 라이브러리의 개념에 대해서 알아보았어요.

 

다음 시간에는 이런 유용한 개념들을 어떻게 사용하는지에 대해서 차근차근 알아보겠습니다.

 

긴글 읽어주셔서 감사합니다.

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


 오늘은 3가지 제어문 중, for문에 대해서 공부해보겠습니다.


for문 기초


for문을 한마디로 설명하자면 효율적인 코드 반복을 위한 제어문입니다. 기본 형태는 아래와 같습니다.

 

for 변수 in 리스트(or 튜플):
    
    실행할 코드 1 (주로 변수가 포함된 코드)
    실행할 코드 2 (주로 변수가 포함된 코드)

 

for문은 리스트 안의 요소들을 차례대로 하나씩 가져와서 변수에 대입한 후, for문 안에 위치한 코드를 실행합니다.

 

이때, 변수는 카운터 변수(counter variable)라고도 부르는데, for문 내에서만 존재하고 for문이 끝나면 사라지는 변수라는 점 참고해주세요. 이 변수는 당연히 마음대로 이름지어 사용할 수 있습니다. 가독성을 위해 변수명을 단어로 넣어주기도 하지만 통상적으로 i 또는 j로 이름 짓습니다.

 

아주 단순한 예시 코드를 한 번 보면서 어떻게 작용하는지 보도록 하겠습니다.

 

a = [1,2,3]    # 리스트를 변수에 넣어서 in 뒤에 입력해도 되고, 바로 in [1,2,3]으로 넣어줘도 됨

for i in a:
    
    print(i)



<코드 실행 결과>
1
2
3

 

1) 리스트 안의 첫번째 요소인 1을 i에 대입해주고, print(1)을 해줍니다. --> 터미널 창에 1 출력

2) for문 내의 코드가 모두 실행된 후, 그 다음 리스트 요소인 2를 i에 대입해줍니다. print(2)  --> 터미널 창에 2 출력

3) 동일하게 print(3)을 실행 --> 터미널 창에 3출력

 

만약 변수가 for문의 실행 코드에 들어있지 않다면 어떻게 될까요? 간단합니다. 단순히 리스트의 요소의 갯수만큼 반복하는 코드가 됩니다.

확인해보고 싶으신분들은 위의 코드에서 print(i) 대신에 print("hello")를 입력해보세요. hello가 3번 출력되는걸 확인할 수 있으실 거에요.

 

for문의 쓰임

 

for문은 앞서 언급했듯이 반복을 위한 제어문입니다.  for문을 사용하지 않고 양 100마리를 세는 코드를 작성해 보겠습니다. 

 

print("양 1마리")
print("양 2마리")
print("양 3마리")
print("양 4마리")
print("양 5마리")
print("양 6마리")
print("양 7마리")
print("양 8마리")
print("양 9마리")
print("양 10마리")
print("양 11마리")
print("양..Zzz...")

 

어이쿠.. 양을 세다가 잠들어 버렸네요. 귀찮아서 다시 하고 싶지는 않으니 for문으로 바로 작성해보겠습니다.

 

for i in range(1,101):
    
    print("양 %d마리" %i)

단 두 줄로 100줄의 코딩을 대신했습니다. 너무 편하죠?! 결과는 한 번 직접 확인해보시길 바랍니다.

 

여기서 처음보는 range 함수를 사용했는데, 이 함수 for문과 함께 정말 요긴하게 쓰이니깐 꼭 기억해두세요.

 

range 함수

range(시작 숫자, 끝 숫자)    # 시작 숫자 이상, 끝 숫자 미만의 정수로 이루어진 리스트 자동 생성

range(끝 숫자)             # 0 ~ 끝 숫자 미만의 정수로 이루어진 리스트 자동 생성

 

continue

지난 시간에 while문을 다루면서 치트키 continue에 대해서 배웠었던 것 기억하시나요?

이건 for문에서도 사용가능하니 알아두시면 언제가 써먹을 날이 올 수도 있습니다. 그냥 알아만 두기로하고 자세한 설명은 생략하겠습니다!

 

 

*참고. 리스트 내포 (List comprehension)

for문을 배우다가 갑자기 무슨 리스트 내포냐구요? 이건 파이썬 특유의 간단하고 깔끔한 프로그래밍을 극대화 해주는 문법입니다.

리스트 안에 for문을 포함해서 작성할 수 있죠. 한 번 코드로 볼까요?

 

a = [1,2,3]

b = [i * 2 for i in a]

# [표현식 for 변수 in 리스트]


print(b)

>>> [2,4,6]

변수 b에 들어간 리스트 안을 보시면 "표현식 for 변수 in 리스트" 형식으로 for문이 들어가 있는 것을 볼 수 있습니다.

 

놀랍게도 리스트 내포는 여기서 끝이 아닙니다. for문 안에 if문도 넣을 있고 for문을 2개 이상 사용하는 것도 가능합니다.

(위에서 설명은 안했지만 당연히 일반적인 for문 안에도 if문과 for문을 넣을 수 있습니다)

 

<리스트 내포를 이용한 초간단 구구단 결과값 코딩_ 3,6,9단>

result = [x * y for x in range(2,10) if x%3 ==0
                for y in range(1,10)]
         

print(result)

>>> [3, 6, 9, 12, 15, 18, 21, 24, 27, 6, 12, 18, 24, 30, 36, 42, 48, 54, 9, 18, 27, 36, 45, 54, 63, 72, 81]

참고로 for문을 여러개 사용할 때, 꼭 줄을 바꿔줄 필요는 없지만 가독성을 위해서 한 번 줄을 바꿔주는 것이 좋을 듯 합니다.

 

건너서 아는 프로그래머는 이걸 사용하지 않고 파이썬 for문을 작성한 것을 보며 이럴거면 파이썬 왜 사용하냐고 했다던데..

저는 아직 익숙치가 않아서 사용하지 않지만 여러분들은 나중에 꼭 사용해서 세련된 코드를 작성하시길 바랍니다!

 


 

오늘까지 총 3편에 걸쳐서 제어문에 대해서 배워보았습니다.

 

다음 시간엔 함수에 대해 배워보도록 하겠습니다.

반응형
반응형

 

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


 오늘은 3가지 제어문 중, while문에 대해서 공부해보겠습니다.


while문 기초

 

while은 한국어로 변역하면 "~하는 동안"입니다. 즉, 'while 조건문' = '조건문 하는 동안' = '조건문이 참인 동안'으로 해석할 수 있습니다.

빠른 이해를 위해서 코드를 보시겠습니다.

 

while 3 > 2:

    실행할 코드 1
    실행할 코드 2

 

이 코드를 해석하면 "3> 2 인 동안에 실행할 코드 1과 2를 계속 반복하겠다"라는 뜻입니다. 조금 감이 잡히시니요?

 

여기서 눈치가 빠르신 분들은 이런 생각을 하셨을텐데요.

 

"3 > 2는 항상 참이니깐 무한히 반복하겠네?"

 

네, 맞습니다! 3 > 2는 앞서 배웠던 불 자료형의 True와 같습니다. 이런 것을 무한루프라고 합니다.

 

그렇다면 while문을 어떻게 무한루프가 아니게 만들 수 있을까요? 바로 이렇게 하시면 됩니다.

 

a = 0

while a < 5:     # 가장 처음 a = 0이므로 조건이 참

    a = a + 1    # a = 0 + 1
    print(a)     # print(1)
    
<결과>
1
2
3
4
5

 

위의 코드가 어떻게 실행되는지 차례대로 설명해보겠습니다. 차근차근 코드를 씹고 뜯고 맛보고 즐겨보세요!

 

1) 가장 처음 a=0으로 a라는 변수를 설정해주고 0이라는 값을 대입해줍니다.

2) while문에 진입하여 조건문 (a < 5)의 참/거짓을 판단합니다.

3) a = 0이므로 참으로 판단합니다.

4) 변수 a에 현재 a가 가지고 있는 값 + 1을 대입

    ( '=' 을 기준으로 좌항은 항상 변수를 뜻하며 우항은 현재 가지고 있는 값을 뜻함)

5) print() 함수로 a의 현재값을 출력

6) while문 안의 실행할 코드가 끝났으므로 다시 while문의 처음으로 돌아가서 조건문의 참/거짓을 판단

7) 현재 a에 들어있는 값은 1이므로 1 < 5는 참

8) 이런 식으로 계속 a를 1씩 증가, a의 현재 값을 출력

9) 그러다가 5가 출력된 후에 다시 while문으로 돌아갔을 때 조건문이 5 < 5가 되어 거짓

10) while문을 빠져나옴 (while문 다음에 코드가 있다면 이어서 실행하며 없다면 프로그램을 종료)

 

 

while문의 쓰임

사실 위의 예는 while문을 제대로 활용한 것이 아닙니다. 왜냐하면 보통 반복횟수가 정해져있는 경우는 다음 시간에 배울 for문을 사용하는 것이 일반적이기 때문입니다. 그렇다면 while문은 언제 사용하기 위해 만들어 진 것일까요?

 

바로 언제 끝날지 예측하기 힘들 때 혹은 무한히 실행할 코드가 있을 때 while문을 사용합니다.

 

현실에서 while문을 사용하는 예는 무엇일까요?

 

저는 오락실의 게임기가 생각이 납니다. 게임기는 사람이 있으나 없으나 계속 켜져있죠. 그러다가 동전(입력)을 넣을 때 게임이 시작됩니다.

계속해서 무한루프를 돌면서 동전이 들어오는지 확인하다가, while문 안의 if문으로 게임을 실행시킬 것이라 짐작되네요.

 

제가 생각했던 예를 아주 단순화 시켜보면 아래와 같은 코드로 표현해볼 수 있겠네요.

 

while True:
    
    게임 화면 자동 재생
    
    if 동전 투입구에 동전을 넣으면
        게임 시작!

 

 

break와 continue

while문에는 치트키 같은 명령어들이 존재합니다. 이 치트키들을 코드에 넣어두면 모든 법칙을 무시하고 어떤 명령을 수행하게됩니다.

 

break

while문을 즉시 빠져나가고 다음 코드를 이어서 실행

energy = 100

while True:
    
    누나가 외출한동안 누나집에서 조카와 놀아준다
    energy = energy - 1
    
    if energy == 0:
        누나한테 전화해서 빨리오라고 한다
    
    if 누나가 돌아오면:
        break
        
집으로 돌아간다
print("어우 힘들어")

 

 

continue

while문의 처음으로 돌아가서 조건문의 참/거짓을 판단

#잠이 오질 않아서 양을 짝수로 세어보기로 했다..

sheep = 0

while sheep < 10000:
    
    sheep = sheep + 1
    
    if sheep % 2 == 1:     # sheep을 2로 나눠서 그 나머지가 1이면 참 (홀수라는 말)
        continue           # 다시 while문으로 돌아가서 조건문 판단 (이때, sheep은 1씩 계속 더해진 상태)
    
    print("양 %d마리" %sheep)
    
    if 잠들면:
        break

 

결과는 지금 껏 배운 지식을 이용해서 예측해보시길 바랍니다.

 


오늘 준비한 내용은 여기까지입니다.

 

다음 시간에는 for문에 대해서 공부해보겠습니다.

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


지난시간 드디어 자료형을 끝내고 오늘부터는 프로그램 구조의 뼈대가 되는 제어문에 대해서 공부해보겠습니다.


제어문

오늘부터 세 편에 걸쳐서 제어문에 대해 공부해볼텐데요. 제어문에는 if, while, for 제어문이 있습니다. 간략히 이 세 가지의 제어문에 대해서 설명한 다음, 차례대로 자세하게 다루어보도록 하겠습니다.

 

C언어에서의 제어문 (출처. pixabay)

 

if문

- 어떤 조건이 True냐 False냐를 판단한 후, 판단 결과에 따라 의도된 코드를 실행할 때 사용하는 제어문

- 판단 결과가 참이든 거짓이든 의도된 코드를 실행한 후, 다음 코드를 실행

 

while문

- 어떤 조건이 참일 때, 의도된 행동을 반복시키기 위해 사용하는 제어문

- 코드가 계속 실행되다가 조건이 거짓이 될 때, while문을 빠져나가서 다음 코드를 실행

 

for문

- 같은 코드를 원하는 만큼 반복하기 위해 사용하는 제어문

- 위의 두 제어문과 달리 어떠한 조건을 판단하지 않는 것이 특징

 

 

If문

if은 한글로 번역하면 '만약에'입니다. 우리는 살면서 종종 이런 말을 합니다.

 

"만약에 내가 복권에 당첨되면, 집을 사고, 차를 살거야"

 

이 말을 파이썬 if문으로 바꾸어보겠습니다.

if 복권에 당첨되면:
   print("집을 산다")
   print("차를 산다")

 

이렇게 우리는 어떤 상황이 일어난다면, 다음 행동으로 무엇을 할지 생각하고는 합니다. 미리 생각해두지 않는다면 당황할 것이고, 즉각적으로 행동하지 못할 것입니다.

 

컴퓨터는 어떨까요? 컴퓨터는 스스로 생각하지 못하기 때문에 사람이 직접 일어날 법한 일들을 예상하고, 그에 따라 컴퓨터가 어떠한 행동을 수행할 수 있도록 코드로 작성해주어야 합니다. 그것이 곧 프로그래밍이라고 할 수 있습니다.

 

If문의 기본 구조

 

if문의 기본 구조는 아래와 같습니다.

 

if 조건문:
    수행할 코드 1     
    수행할 코드 2     
   
else:
    수행할 코드 3
    수행할 코드 4
   

 

if라는 것은 위에서 봐서 알겠는데 else라는 것은 무엇일까요? 우리는 상황이 의도대로 흘러가지 않는 경우, "Plan B를 실행한다"라는 말을 하곤 하죠. else가 바로 상황이 의도대로 흘러가지 않은 경우(조건이 거짓일 때)를 의미하며, 그 아래의 수행할 코드들이 plan B가 되는 것입니다.

 

elif문

 

만약 Plan C, Plan D까지 생각해두고 싶다면 어떻게 해야할까요? 이 역시 파이썬에서 elif라는 개념을 준비해두었습니다.

elif엔 else와 다르게 조건문이 필요한 것 주의하세요!

if 조건문1:
    수행할 코드 1     
    수행할 코드 2    
   
elif 조건문2:        #elif에 갯수 제한은 없음
    수행할 코드 3
    수행할 코드 4
    
elif 조건문3:
    수행할 코드 5
    수행할 코드 6
    
else:              #마지막은 반드시 else
    pass           #pass는 아무것도 실행하고 싶지 않을 때 넣어줌. (아무것도 안넣으면 error)
   

참고로, 어떤 조건이 참일 때, 아무것도 실행시키고 싶지 않을 때는 pass 명령어를 입력해줍니다.

 

조건문

조건문이란 참과 거짓을 판단하는 문장을 뜻합니다. 조건문은 아무리 복잡해도 결국 True/False  둘 중 하나인 불 자료형입니다.

 

 

1) 비교연산자

x < y x가 y보다 작다
x > y x가 y보다 크다
x <= y x가 y보다 작거나 같다
x >= y x가 y보다 크거나 같다
x == y x와 y가 같다
x != y x와 y가 같지 않다

 

age = 31

if age >= 30:      # 조건문
    print("내가 30대라니..")
    
else:
    print("아직 20대!")
    

 

 

2) and, or, not

x and y x와 y 모두 참이어야지 참이다
x or y x와 y 둘 중에 하나라도 참이면 참이다
not x x가 거짓이면 참이다

 

a = 1
b = 2

if a==1 or b>2:      # a가 1이거나 b가 2보다 크면 참
    print("재밌는 예가 안떠올라..")
    
else:
    print("나중에 떠오르면 예시 바꿔야지")
    

 

If문 사용 시 주의점

if문에 익숙하지 않을 때 자주하는 실수는 크게 2가지 입니다. if문을 작성했는데 에러가 난다면 아래 사항들을 확인해보세요.

 

1) 조건문 끝에 :(콜론)을 붙이지 않음

    --> 터미널 창에 invalid syntax(불가능한 구문)이 출력됨

 

2) 수행할 코드의 들여쓰기(Indentation) 불량

     --> 터미널 창에 unexpected indent(예기치 못한 들여쓰기)라고 출력됨

 

참고로, 들여쓰기는 스페이스 한 번만 해도 작동을 하지만 통상적으로 스페이스 4번을 사용합니다.

우리가 사용하고 있는 VS Code는 if문을 작성하고 엔터를 치면, 자동으로 들여쓰기를 해준다는 점 참고하세요.

 


 

오늘은 3가지 제어문 중에 if문에 대해서 배워보았습니다.

 

if문은 자료형 만큼이나 중요한 기초이므로 꼭 이해하고 넘어가시면 좋겠습니다.

 

오늘도 공부하시느라 고생많으셨습니다~!

 

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 튜플과 딕셔너리 자료형에 이어서 집합과 불 자료형에 대해서 공부해보겠습니다.


집합 자료형

 

 

집합 자료형은 집합 계산(교집합, 차집합, 합집합)을 사용하기 위해 만들어진 자료형입니다. 

집합 자료형의 특징은 딕셔너리와 같은 면이 있어요. 바로 중복 불가순서가 없다(인덱싱 불가)는 점이죠. 그래서 그런지 요소를 감싸는 괄호를 딕셔너리와 같이 { } 중괄호를 사용한답니다.

 

a = {1, 2, 3}   # set의 형태

b = {1, 2, 3, 1}

print(b)
>>> {1, 2, 3}   # set의 중복불가 특성

 

집합 자료형의 쓰임

집합 자료형은 사실 앞서 말씀 드렸듯이 집합 계산이나 자료의 중복을 걸러주기 위해서 사용합니다. 이 때, 처리가 필요한 자료들은 위에서 처럼 직접 만들어서 사용하기 보다는 계산이 필요한 리스트나 튜플을 집합 자료형으로 만들어서 사용하게 됩니다.

 

a = set([1, 2, 3])   # set() 내장함수로 리스트를 set로 변환

b = set((3,4,5))     # set() 내장함수로 튜플을 set로 변환

print(a)
>>> {1,2,3}

print(b)
>>> {3,4,5}

print(a&b)   #교집합 연산
>>> {3}

print(a|b)   #합집합 연산
>>> {1,2,3,4,5}

print(a-b)   #차집합 연산
>>> {1,2}

print(b-a)   #차집합 연산
>>> {4,5}

 

만약 set를 다시 리스트와 튜플로 만들고 싶으시다면 set를 만드셨을 때 처럼 list()함수와 tuple()함수를 사용해보세요.

a = {1,2,3,4}

b = list(a)
>>> [1,2,3,4]

c = tuple(a)
>>> (1,2,3,4)

참고로, 리스트를 튜플로 튜플을 리스트로도 만들 수 있으니 궁금하신 분들은 직접 코딩해서 확인해보세요.

 

 

불 자료형

 

 

 

불(bool) 자료형이란 한마디로 참/거짓 자료형입니다. 진실게임을 하는 것도 아니고 무슨 참(True)거짓(False)을 자료형으로 만들었을까 하는 생각이 드실 수도 있으실텐데요. 이런 의문을 해결하기 위해서는 컴퓨터에 대해서 조금 알아볼 필요가 있습니다.

 

컴퓨터는 우리 아날로그 세계와는 다르게 세상을 디지털, 즉 0과 1로 바라봅니다. 우리가 작성한 코드가 결국에는 0과 1로 변환되어서 컴퓨터에 전달된다고 생각하셔도 무방합니다. 쉽게 말해, 컴퓨터에게는 0과 1이 가장 알아듣기 쉬운 형태라는 것입니다. 

 

앞으로 우리는 아래 그림과 같이 알고리즘이란 구조를 만들어서 프로그래밍을 할 것입니다. 알고리즘에는 수 많은 판단이 들어가게 되는데 그 결과를 0과 1의 형태로 출력해 줄 것입니다. 참고로, 입력(Input)과 출력(Output)은 우리가 앞서 배웠던 자료형들이 될 것이구요. 

 

알고리즘(Algorithm)

어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태

 

배고플 때의 알고리즘 (feat. 한땀한땀 파워포인트로 작성)

 

불 자료형 예시

print(2 < 3)
>>> True

print(2 > 3)
>>> False

print(3 == 3)
>>> True

3 == 3은 3이 3과 같냐고 물어보는 것입니다. 그냥 = 하나만 하는 것은 변수에 자료형을 대입할 때 말고는 사용하지 않으니 주의하세요!

 

 

자료형의 참/거짓

 

당장 깊이 알아둘 필요는 없지만 앞에서 배웠던 자료형들에도 참과 거짓이 있습니다. 자료가 존재하면 참, 자료가 존재하지 않으면 거짓입니다. 무슨 말인지 코드로 한 번 보시죠.

#bool() 함수로 True/False 판단
#당연히 값을 확인하려면 print()로 감싸주어야 하는거 아시죠?!

<True인 자료형>

bool(1)        # 0을 제외한 모든 숫자
bool("hello")  # 문자열
bool([1,2])    # 리스트
bool((1,2))    # 튜플
bool({'Key':'Value'}) #딕셔너리


<False인 자료형>

bool(0)        # 숫자 0
bool("")       # 비어있는 문자열
bool([])    # 비어있는 리스트
bool(())    # 비어있는 튜플
bool({})       # 비어있는 딕셔너리

 

오늘로써 파이썬 프로그래밍에서 가장 기본이 되는 자료형에 대해 모두 다루어 보았습니다.

 

지금까지 지루하실 수도 있는 자료형을 공부하시느라 고생하많으셨고, 다음 시간부터는 알고리즘의 가장 기본 구조인 if, while, for문에 대해서 공부해보겠습니다.

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 리스트 자료형에 이어서 튜플과 딕셔너리 자료형에 대해서 공부해보겠습니다.

 

튜플 (Tuple)

 

튜플은 리스트와 거의 같습니다. 그래서 차이점과 언제 사용하는지만 간단히 설명해보려 합니다.

a = ()
b = (1,)     # 리스트와 다르게 하나만 쓸 때는 콤마를 써줘야함
c = (1,2,3)
  =  1,2,3   # 괄호를 생략해도 튜플로 생성

 

리스트와 튜플의 주요 차이점

 

리스트: [ ]로 감싼다, 수정이 가능하다

튜플: ( )로 감싼다, 수정이 불가능하다

 

 

튜플을 사용하는 이유

 

리스트와 비슷한 튜플이란 개념을 굳이 만들어서 사용하는 이유는 수정이 불가능하다는 특성 때문입니다.

프로그램을 작성하면서 값이 변화하지 않기를 바라는 부분은 리스트 대신 튜플을 사용해보시길 추천드립니다.

 

 

딕셔너리 (Dictionary)

 

딕셔너리의 특징

 

딕셔너리는 앞서 배운 리스트와 튜플과는 다소 다른 특징을 갖고 있습니다.

 

1) 요소가 Key:Value의 한쌍으로 이루어져있다

2) Key를 이용하여 인덱싱한다 --> 순서가 중요하지 않다

3) Key가 중복되면 자동으로 그 중 가장 마지막에 있는 것만 남기고 없앤다

 

딕셔너리 기본 형태 = {Key1:Value1, Key2:Value2, ...}
dic = {'name':'손생', 'age':'31'}

a = {1: 'a', 1:'b', 1:'c'}  #의도적으로 딕셔너리 key 중복입력

print(a)
>>> {1:'c'}

 

여기서 알아두셔야할 것은 Key는 수정이 불가하고 Value는 수정이 불가하거나 가능하게 설정할 수 있다는 것입니다.

그리고 Value에는 앞서 배운 모든 자료형들을 입력할 수 있지만, Key에는 리스트, 튜플 자료형은 입력 불가합니다.

 

 

딕셔너리의 쓰임

 

딕셔너리는 언제 사용할까요? 저는 아직 웹 개발까지는 해보지 못해서 잘 모르지만, 웹/앱에서 사용하는 Json이라는 데이터 교환 표준을 다룰 때 주로 사용한다고 합니다. Json은 추후 웹 개발을 공부하면서 포스팅 해보도록 하겠습니다.

 

Json(JavaScript Object Notation) : 데이터를 쉽고 빠르게 교환하기 위해 만들어진 텍스트 기반 데이터 교환 표준

 

Jason의 형태는 아래와 같습니다. 딕셔너리와 비슷하죠?

 

#Jason 형식

{
    "name": "손생",
    "age": 31,
    "weight": 65
}

 

딕셔너리 다루기

 

딕셔너리에 요소를 추가하기 위해서는 아래와 같이 딕셔너리[Key] = Value로 입력하면 됩니다.

 

a = {1:'name', 2:'age'}
a[3] = 'weight'

print(a)
>>> {1:'name', 2:'age', 3:'weight}

 

딕셔너리에서 요소를 삭제하기 위해서는 del 딕셔너리[Key]로 입력하면 됩니다.

a = {1:'name', 2:'age', 3:'weight}
del a[1]

print(a)
>>> {2:'age', 3:'weight}

 


오늘은 튜플과 리스트 자료형에 대해 알아보았습니다.

다음 시간에는 나머지 자료형인 집합 자료형과 불 자료형에 대해서 다루어 보도록 하겠습니다.

 

감사합니다.

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 문자형 자료형에 이어서 리스트 자료형에 대해서 공부해보겠습니다.

 

리스트란 무엇일까?

 

지난 강의(파이썬 기초 문법 1편)에서 자료형 중에서 꾸러미 자료형이 있다고 잠시 말씀드렸습니다. 앞서 배웠던 숫자, 문자열 자료형을 여러개를 한꺼번에 묶어서 담아두는 것을 상상해보시면 좋을 것 같아요. 아래 사진을 바탕으로 설명드리면 유리병과 그 내용물을 하나의 숫자 혹은 문자열 같은 개별 자료형이라고 한다면, 이걸 정렬해서 보관할 수 있는 나무상자꾸러미 자료형이라고 생각하면 됩니다.

 

 

이러한 꾸러미 자료형은 리스트, 튜플, 딕셔너리, 집합으로 4가지가 있으며, 오늘 배워볼 것이 그 중 가장 많이 사용되는 리스트입니다.

 

리스트 만드는 법

 

리스트를 만드는 방법은 간단합니다. 우리가 지금까지 공부했던 자료형을 대괄호 [ ] 사이에 넣어주면 됩니다. 그 갯수는 제한이 없으며, 여러개 일 때는 콤마로 구분해줍니다. 보통 리스트는 지난 시간 배웠던 변수로 설정해서 사용합니다.

a = []
b = [1,2,3,4]
c = ['hello', 'python']

참고로, 숫자, 문자열 섞어서 리스트 안에 넣어줄 수 있을뿐만 아니라 리스트도 리스트 안에 넣는 것이 가능합니다.

 

리스트 인덱싱과 슬라이싱

 

인덱싱은 리스트 안의 객체들을 딱 집어서 가리킬 때 사용합니다.

문자열 인덱싱과 매우 비슷하니깐 앞서 문자열 인덱싱을 공부하신 분들이라면 이해하기 매우 쉬우실거에요.

list = [1,'hello',[2,3,4]]

print(list[0])
>>> 1

print(list[-1])
>>> [2,3,4]

 

만약  리스트 안의 숫자 4를 인덱싱 하고 싶다면 아래 코드처럼 하시면 됩니다. 인덱싱 한것에서 인덱싱을 해주는 느낌!

print(list[2][2])
>>> 4

 

슬라이싱도 문자열 인덱싱과 같으므로 자세한 설명은 생략하고 넘어가겠습니다.

print(list[:]) 
>>> [1,'hello',[2,3,4]]

 

리스트 수정

 

앞에서 배웠던 인덱싱과 슬라이싱을 이용해서 원하는 요소를 수정하거나 삭제 가능합니다.

a = [1,3,5]
a[0] = 2    # 리스트 a의 0번 인덱스의 요소를 2로 바꿔줌
print(a)
>>> [2,3,5]

b = [1,2,3]
del b[2]    # 리스트 b의 2번 인덱스의 요소를 삭제
print(b)
>>> [1,2]

c = [1,2,3,4,5,6,7]
del c[2:5]  # 리스트 c의 2,3,4번 인덱스 요소를 삭제
print(c)
>>> [1,2,6,7]

 

리스트 연산

 

리스트 더하기(+)

 

리스트는 + 기호로 두 리스트의 요소를 합칠 수 있습니다. 더하는 순서에 따라 리스트 요소의 순서가 결정되니 주의하세요.

a = [8,10,15]
b = [1,2,3]

print(a+b) 
>>> [8,10,15,1,2,3]

print(b+a)
>>> [1,2,3,8,10,15]

 

리스트 반복하기(*)

 

리스트에 숫자를 곱하면 값이 곱해지는 것이 아니라 곱한 숫자만큼 리스트의 요소들이 반복됩니다.

b = [1,2,3]


print(5*b)
>>> [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

 


 

오늘은 리스트에 대해서 공부해 보았는데요. 리스트의 개념은 앞으로 파이썬 코딩 할 때 많이 사용되니 확실히 이해하고 넘어가시면 좋겠습니다. 다음 시간에는 튜플과 딕셔너리에 대해서 공부해 보겠습니다.

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

오늘은 지난 시간의 문자형 자료형에 이어서 변수에 대해서 공부해보겠습니다.

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


변수의 정의

 

우리는 지금까지 파이썬 기초 문법을 공부하면서 잠깐잠깐 변수라는 개념을 다루어 왔습니다. 아래의 코드에서 a와 time이 변수입니다.

a = 'hello python'
time = 7

 

효율적인 코딩을 위해서는 변수의 개념에 익숙해지셔야 하는데요. 지금부터 변수라는 것에 대해 최대한 쉽게 설명해 보겠습니다.

 

변수를 한마디로 설명하면, 객체(문자열이나 숫자, 리스트 등의 자료형)를 담는 그릇입니다.

엄밀히 말하면 그릇이 저장된 컴퓨터 내의 주소를 이르지만 그릇으로 이해하셔도 됩니다.

위에서 a는 그릇의 이름을, 'hello python'은 그릇에 담긴 객체(object)인 것입니다.

 

변수 이름 = 변수에 저장할 값

참고로, C나 JAVA와 같은 다른 주류 프로그래밍 언어들은 변수 이름 앞에 변수에 담길 자료형을 붙여주어야 하는 번거로움이 있지만, 너무나 쉽고 친절한 파이썬은 그럴 필요가 없이, 담기는 자료형에 따라 자동으로 변수의 type이 정해집니다.

 

변수를 사용하는 이점

 

그렇다면 변수를 사용하는 이유는 무엇일까요?

 

쉬운 예를 들어보겠습니다. 정말 긴 코드에 3.14라는 π(pi)값이 100번 들어가있습니다.

그런데 코드를 실행시켜 어떤 계산을 수행했더니 오차가 커서 3.141592라는 더 정밀한 값이 필요하게 생겼습니다.

안타깝게도 3.14를 모두 찾아서 100번 수정해주어야합니다. 매우 비효율적이죠.

 

이 때, 아래처럼 변수를 설정해주고 그 변수명을 3.14가 들어가 있던 곳에 입력해두었다면 어떨까요?

pi = 3.14
print(12*pi) #이런 계산들이 100번 쓰여진 코드를 상상해봅시다.

우리는 단 한줄만 코드를 수정함으로써 100줄의 코드를 수정할 수고를 덜 수 있는 것입니다.

이 뿐만 아니라, 변수명을 적절하게 지어줌으로써 코드의 가독성 또한 향상 시킬 수 있답니다.

 

변수의 주소

앞서 변수란 엄밀히 말하면 객체를 담는 그릇의 주소라고 말씀드렸습니다. 그렇다면 우리가 만든 변수가 어떤 주소를 갖고 있는지 확인해봅시다.

a = 'hello python'
print(id(a))

>>> 140376307444848

주소를 확인하는 파이썬 내장함수는 id()입니다. 제가 위의 코드를 VS code에서 직접 실행시켜보니 아래와 같은 숫자를 출력합니다.

이 숫자는 컴퓨터 메모리의 주소를 의미하며, 우리가 변수를 설정할 때마다 하나씩 할당됩니다.

 

조금 더 깊이 들어가면 불변형 자료형(정수, 실수, 문자열, 튜플)이냐 변형 자료형(리스트, 딕셔너리)이냐에 따라, 그릇 안의 내용을 바꿀 때마다 주소가 바뀌고 안바뀌고 하는 차이가 있지만 아직은 모르셔도 될 것 같습니다.


오늘은 코딩할 때, 매우 중요한 변수에 대해 알아보았습니다.

앞으로 효율적으로 변수를 활용해서 효율적이고 가독성 좋은 코드를 만드시길 바랍니다.

 

 

 

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

오늘은 지난 시간의 숫자형 자료형에 이어 문자열 자료형에 대해서 공부해보겠습니다.

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


 

문자열 자료형

 

1. 문자열 자료형은 어떻게 만들 수 있을까

문자열(String)이란 한마디로 '글자들'입니다. 여러분들이 " "(큰따옴표)나 ' '(작은 따옴표) 사이에 무엇인가 작성하면 그것이 문자열이 됩니다. 그 안에 숫자를 넣더라도 문자열로 인식된다는 것 기억하세요.

"Hello Python"
"이것도 문자열"
"234567"
"이 안에서는 띄어쓰기도 문자열"

어째서 " "와 ' '를 둘 다 사용하나 궁금하실 수 있는데요. 그 이유는 아래와 같이 글자 안에 '와 "를 사용할 때가 있기 때문입니다.

"Roy's macbook is nice"

 

2. 여러줄 문자열

여러줄의 문장도 문자열로 입력하실 수 있는데요. 이때는 """ """(큰따옴표 3개)나 ''' '''(작은 따옴표 3개)의 사이에 작성하시면 됩니다.

"""
이 사이에 엔터를 치면서
막 이렇게 치시면
나중에 print() 함수로 출력했을 때
여러줄로 출력됩니다.
"""

 

3. 문자열 인덱싱

문자열 인덱싱(Indexing)을 설명드리기 전에, 인덱스(Index)가 무엇인지 알고 넘어갈 필요가 있습니다.

Index란 한국어로 색인 또는 목록을 뜻합니다. 색인이란 글의 본문 중에서 중요한 것을 뽑아 한 곳에 모아두고 찾아보기 쉽게 페이지를 기재해 놓은 것이죠. 즉, 무엇인가를 인덱싱한다는 뜻은 '그것의 정확한 위치를 파악하여 가리킨다'라는 뜻으로 해석할 수 있습니다.

 

우리는 문자열 인덱싱을 통해 문자열의 문자 하나하나에 차례대로 번호를 붙여서, 번호로 문자를 딱 집어낼 수 있습니다.

문자 하나뿐만 아니라 여러개도 가능하죠. (이 부분은 바로 아래에서 슬라이싱이란 개념에서 설명드릴게요)

a = 'hello python'
     012345678901
     
a[0] = 'h'
a[11] = 'n'
a[-1] = 'n'    # -1은 뒤에서 부터 인덱싱할 때 사용. 참고로 -0은 0과 같으므로 h를 가리킴

여기서 주의할 것은 hello python은 문자열로 12개입니다. 파이썬은 띄어쓰기도 문자열로 인식하니까요.

그리고 파이썬은 문자열의 가장 처음 인덱스를 0부터 시작합니다. 이 점은 파이썬의 특징이라기 보다는 프로그래밍 언어의 특징이라고 보시면 됩니다. 이 부분은 코딩하실 때, 항상 헷갈리실 부분이니깐 꼭 숙지해 두시면 좋을 것 같아요.

 

4. 문자열 슬라이싱

문자열 슬라이싱(Slicing)은 영어의 뜻 그대로 문자열을 잘라서 가져오는 느낌입니다. 설명보다는 코드로 이해하시는게 빠를 것 같아요.

a = 'hello python'
     012345678901
     
a[0:5] = 'hello'       # 0:5는 0 이상 5미만을 뜻함 (5 미만이므로 띄어쓰기 부분은 포함 안함에 주의)
a[5:12] = ' python'    # 5 이상이므로 앞에 띄어쓰기를 포함하고, n을 포함시키위해 12를 넣어줌
a[6:] = 'python'       # 6번 인덱스 이상의 문자열 모두 출력
a[:] = 'hello python'  # :을 기준으로 왼쪽오른쪽에 숫자가 없으면 모두 다를 가리킴

len(a) = 12    #len()함수는 문자열의 길이를 구할 때 사용하는 함수

참고로, 문자열 a는 a[11]까지가 끝이지만 슬라이싱 할때만 12,13,14를 넣어줘도 오류가 나지 않습니다. 직접 코딩을 해보시면 a[12]를 인덱싱하면 오류가 나는 것을 확인해 보실 수 있습니다. 

 

5. 문자열 포매팅

문자열 포매팅은 한 마디로 '문자열 안의 글자나 숫자가 바뀌는 문자열'을 만드는 기법입니다.

 

예를 들어보겠습니다.

"현재 시간은 오전 7시입니다"

 

이 문자열에서 시간에 따라 오전/오후시간을 바꾸어 주고 싶다면 어떻게 해야할까요?

자세히는 잘 몰라도 현재의 시간을 어디선가 계속 받아와서 문자열 안의 오전과 7시를 바꾸어 주어야 할 것입니다.

문자열 포매팅 기법은 3 가지 형태가 있는데요. 형태는 다르지만 그 개념은 비슷하니 그 차이점을 비교하면서 차근차근 따라와주세요.

 

조금 어려울 수 있으니 한 번에 다 이해하시려고 하기보다는 이런게 있구나라고 쭉 읽어보시고, 필요한 일이 생기면 그 때 이 글을 다시 읽으시는 걸 추천드려요.

 

 

1) % 포매팅

바뀌길 원하는 곳에 %s(문자열), %c(문자 1개), %d(정수), %f(실수) 를 넣어주고, 문자열이 끝난 후에 % + 원하는 숫자나 문자, 문자열을 붙여주는 방식입니다. 말로 표현하자니 잘 이해가 안되실 듯 해서 코드로 작성해보겠습니다.

"현재 시간은 오전 %d시입니다." %7
>>> '현재 시간은 오전 7시입니다.'

"현재 시간은 %s %d시입니다." %('오전', 7)
>>> '현재 시간은 오전 7시입니다.' #문자열을 입력할 시, ''를 까먹으면 에러가 남

"현재 시간은 %s %s시입니다." %('오전', 7)
>>> '현재 시간은 오전 7시입니다.' # 앞에서 %s를 쓰고 숫자를 넣으면 ''를 넣지 않고도 자동으로 문자로 인식함

하나만 포매팅 할 때는 괄호가 필요없고, 두 개 이상 포매팅 할 때는 괄호를 포함하여 순서대로 원하는 숫자나 문자를 넣어주면 됩니다.

%s를 이용해 포매팅을 하면, 정수, 실수가 자동으로 문자열로 인식되어 입력된다는 것도 알아두시면 좋을 것 같아요.

 

 

2) format 함수 포매팅

format 함수를 사용하면 앞에서처럼 문자열, 정수, 실수를 구분할 필요가 없습니다. 사실상 좀 더 발전된 방식이라고 할 수 있습니다.

위에서 보신 예제를 format 함수를 이용해서 다시 작성해보겠습니다. 비교하면서 보시면 더 잘 이해가 될 거에요.

"현재 시간은 오전 {0}시입니다." .format(7)
>>> '현재 시간은 오전 7시입니다.'

"현재 시간은 {0} {1}시입니다." .format('오전', 7)
>>> '현재 시간은 오전 7시입니다.'

{}는 0부터 시작하는 것에 주의해주세요.

 

 

3) f 문자열 포매팅

문자열 포매팅 기능은 파이썬 3.6버전 이후로 나온 방식으로, 문자열 앞에 f를 붙이는게 특징입니다. 개인적으로 가장 직관적이고 간편한 방식이라고 생각합니다.

 

이 방식은 변수를 설정해주고, 변수를 문자열 안에 {변수} 형태로 넣어주는 방식으로만 사용가능합니다. 다음 시간에 변수에 대해서 자세히 설명드릴 예정이니, 오늘은 자세한 설명없이 예제 코드로만 보고 넘어가도록 하겠습니다.

time = 7
f"현재 시간은 오전 {time}시입니다."
>>> '현재 시간은 오전 7시입니다.'

time = 7
ampm = '오전'
f"현재 시간은 {ampm} {time}시입니다."
>>> '현재 시간은 오전 7시입니다.'

 

사실 다른 포매팅에서는 설명하지 않았지만 변수를 이용할 수 있는 것은 f 문자열 포매팅만 가능한 것이 아닙니다.

변수를 사용한 두 포매팅을 비교하면 아래와 같습니다.

time = 7
"현재 시간은 오전 {0}시입니다." .format(time)
>>> '현재 시간은 오전 7시입니다.'

time = 7
f"현재 시간은 오전 {time}시입니다."
>>> '현재 시간은 오전 7시입니다.'

오늘은 파이썬의 여러가지 자료형 중에서, 문자열 자료형에 대해 다루어보았습니다.

여기까지 따라 오시느라 고생 많으셨고, 다음 시간에는 변수에 대해 알아보기로 하겠습니다.

 

오늘도 코딩유치원을 찾아 주신 여러분~ 감사합니다!

반응형
반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

오늘부터는 파이썬 프로그래밍을 위해서 기초 문법에 대해서 공부해보겠습니다.

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


프로그래밍과 코딩의 차이

문법에 대해서 본격적으로 들어가기 전에 프로그래밍과 코딩이 무엇이고, 자료형을 왜 가장 문법의 처음으로 배우는지에 대해 아주 쉽게 설명을 해보려합니다.

 

여러분들은 프로그래밍과 코딩의 차이에 대해서 생각해보신 적 있으신가요?

흔히들 프로그래밍과 코딩을 같은 의미로 혼용해서 사용하지만 그 의미는 엄밀히 다릅니다.

 

 

우리에게 TV 프로그램이란 단어로 익숙한 프로그램의 사전적 의미는 지시 사항들이 나열된 순서를 의미합니다.

즉, 프로그래밍이란 특정 작업을 수행하는 일련의 명령들을 만드는 행위를 뜻합니다.

 

출처. 프로그래머가 필요한 수학 (brunch)

 

위의 그림에서 프로그램은 f(x)입니다. 빵 만드는 기계를 일종의 빵을 만드는 프로그램으로 볼 수 있죠.

 

프로그래밍(Programing)을 한마디로 f(x)를 구현하는 것입니다.

코딩(Coding)은 이러한 f(x)를 컴퓨터가 알아들을 수 있는 코드로 작성하는 행위를 뜻하죠.

 

이때, f(x)를 설계하면서 반드시 고려해야할 부분은 '어떤 입력값 a를 함수에 넣어 어떤 출력값 f(a)를 받을 것인지'입니다.

여기서 입력값과 출력값의 형태자료형이라고 설명 드릴 수 있습니다. 그 형태가 숫자면 숫자 자료형, 문자열이면 문자열 자료형이죠.

 

우리는 자료형에 대해 파악하고, 우리가 혹은 남이 만들어 놓은 함수 f(x)에 적절한 자료형을 넣어줄 필요가 있습니다. 물론 처리된 자료형을 다시 어떤 함수로 넣어주어야 하니 어떤 자료형이 나오는지도 잘 파악해야하죠.

 

위의 그림에서 만약 빵 만드는 기계에 밀가루 대신에 시멘트 가루를 넣으면 기계가 망가지겠죠?

그래서 우리는 무엇보다 먼저 자료형에 대해 공부할 필요가 있습니다.

 

 


 

자료형

자료형은 개념적으로 크게 3가지로 분류할 수 있습니다. (개인적인 분류이므로 공식적인 단어들은 아닙니다)

 

1) 숫자와 문자열과 같은 개별 자료형

    - 숫자, 문자열

 

2) 숫자와 문자 등의 개별 자료형을 담을 수 있는 꾸러미 자료형

    - 리스트, 튜플, 딕셔너리, 집합

 

3) 참/거짓을 판단하는  불(bool) 자료형

 

그럼 지금부터는 자료형에 대해서 하나하나 자세히 다루어볼텐데요.

문자열 자료형에 대한 내용이 조금 많아서 오늘은 숫자 자료형까지만 공부해보겠습니다.

 


 

숫자 자료형

숫자 자료형은 말그대로 숫자 형태로 이루어진 자료형입니다.

여러분도 잘 아시다시피, 숫자는 정수(Integer), 실수(Floating-point)로 나뉩니다.

정수형을 예로 들면, 10, 0, -150 등등이 있고, 실수형에는 소수점이 포함된 숫자인 -0.57, 3.14 등이 있습니다.

간혹 8진수(Octal)과 16진수(Hexadecimal)도 사용하지만 자주 다루지는 않으니 이런것이 있다는 정도만 알고 그냥 넘어가도록 하겠습니다.

 

사칙연산

여러분들이 사칙연산의 연산자 (+, -, *, /)와 숫자를 함께 코딩하면 계산이 가능합니다.

a= 5
b= 10

print(a+b)
>>> 15
print(a-b)
>>> -5
print(a*b)
>>> 50
print(a/b)
>>> 0.5

그 외 제곱(**), 나눗셈의 나머지(%), 나눗셈의 몫(//)을 연산할 수도 있으나, 자주 사용하지는 않으니 넘어가도록 하겠습니다.

 


오늘 수업은 여기까지입니다.

다음 시간에는 문자열 자료형에 대해 공부해보겠습니다.

반응형

+ Recent posts