본문 바로가기

코딩/파이썬 혼공단

혼공파 파이썬 1주차 기본미션과 선택미션 수행하기

설레는 마음으로 시작한 혼공 파이썬~!!!

예전부터 컴퓨터는 배워보고 싶은 마음은 한가득이었는데 어려울것같아서 시작조차 못하고 있었는데

사촌동생의 추천으로 "혼공"이라는 좋은 프로그램을 알게되었다.  

워낙 컴퓨터를 잘 다루지 못해 시작하기전에 어려울것같아 할까말까 고민을 많이 했었는데

"혼공"에대해 알아보니 혼자서 공부하기 어려운사람을 위한, 혼자하는게 아닌 다른분들과 함께 으쌰으쌰 하며 미션을 같이 수행하고 공부하는거라는 것을 알게되어 나에게 딱이구만~!!하며 파이썬에 도전해 보았다.

떨리지만 설레는 마음으로 공부시작합니당~!!!

 

1-1 파이썬을 하기 전에 읽는 아주 간단한 설명

프로그램이라는 단어는 '컴퓨터 프로그램' ,'다이어트 프로그램', '사회 복지 프로그램'처럼 다양 한 곳에서 사용됩니다. 영어로 Program은 Pro와 Gram이 합쳐져 만들어진 단어입니다. Pro는 '미리','먼저'라는 것을 의미하고, Gram은 '작성된 것'을 의미합니다. 따라서 프로그램이란 '미리 작성된 것' 의미합니다.

 

컴퓨터 프로그램(computer program)이란 '컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획'입니다.

 

1-2 파이썬을 배우기 위해 준비해야 할 것들

프로그래밍을 할 수 있는 환경이 필요한데 이 환경을 일반적으로 개발환경이라고 부릅니다.

여기에 필요한것은

1. 컴퓨터

2. 텍스트 에디터 : 프로그래밍 언어로 이루어진 코드를 작성할 수 있는것

3. 코드 실행기 : 그 코드를 실행 할수 있는

 

우리는 파이썬에 대해 공부 할 테니

1. 파이썬코드를 입력 할 수 있는 텍스트 에디터와

2. 파이썬 코드를 실행할 수 있는 도구인 파이썬 인터프리터 가 필요합니다.

 

 

텍스터 에디터 사용하기

 

1) 파이썬 설치하기

파이썬을 설치해서 파이썬 프로그램을 실행하면 파이썬 인터프렉티브 셀 이라는 것이 실행됩니다. 파이썬 인터프렉티브 셸이란 파이썬 명령어를 한 줄 한 줄 입력하면서 실행결과를 볼 수 있는 공간입니다.

또한 컴퓨터와 상호 작용하는 공간이라는 의미로 인터렉티브 셸, 한 마디씩 주고받는 것처럼 대회한다고 해서 대화형 셸이라거 부르기도 합니다.

 

2) 비주얼 스튜디오 코드 다운로드해 설치하기

 

셸: 간단한 대화 형식을 명령어를 입력해서 무언가를 실행하는 공간

사전적인 의미로는 '운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램'이라 합니다.

--- 셸에서는 코드를 입력해서 다른 프로그램을 실행하거나, 특정 기능을 수행할 수 있습니다. 파이썬을 실행할 떄에는 두 가지 셸을 활용 할 수 있습니다. 

첫 번째는 앞서 파일을 실행해 본 윈도우 기본 셸인 "윈도우 파워셸'

두 번째는 파이썬 인터렉티브 셸 입니다.

 기본 셸에서 할 수 있는 일과 파이썬 인터렉티브 셸에서 할 수 있는 일은 다릅니다. 기본 셸에서는 python 명령어를 실행해서 다른 프로그램을 실행할 수 있고, 파이썬 인터랙티브 셸에서는 간단한 파이싼 코드를 입력하고 실행할 수 있습니다.

*윈도우 기본 셸은 입력하는 곳이 > 기호로 표시됩니다.

*파이썬 인터랙티브 셸은 입력하는 곳이 >>> 기호로 표시됩니다. 윈도우 기본 셸에서 python 명령어를 실행하면 진입할 수 있습니다.

 

이때 파이썬을 먼저 설치하지않고 비주얼 스튜디오 코드를 먼저 다운로드 한 다음 그안에있는 파이썬을 설치해서 

그랬는지 Hello Coding Python 이 나오지 않고 python 이라고만 나왔다.

이때 당시에는 파이썬을 설치한것으로 알고 있어서 왜 답이 안나오지??라고 생각하며 계속해서 답을 찾을려고 했었다.

인터넷도 찾아보며 알아보니 파이썬을 설치안해서 그런것이라는 것을 알게되어 파이썬을 설치하고 다시 실행해보니 

올바른 답인 Hello Coding Python이 나와서 정말 신기하면서 뿌듯했다~!!! ㅎㅎㅎㅎ

 

1-3이 책에서 자주 나오는 파이썬 용어들

 

* 표현식 : 파이썬에서는 값을 만들어 내는 간단한 코드를 표현식이라고 부릅니다.

* 키워드 : 의미가 부여된 특별한 단어로, 사용자가 지정하는 이름에 사용하면 안 됩니다.

* 식별자 : 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어입니다.

 식별자는 기본적으로 다음과 같은 규칙을 지켜 만들어야 합니다.   

  1. 키워드를 사용하면 안됩니다.   

  2. 특수 문자는 언더 바(_)만 허용됩니다.   

  3. 숫자로 시작하면 안 됩니다.   

  4. 공백을 포함할 수 없습니다.

위 규칙에 맞는 단어는 모두 식별자로 사용할 수 있습니다.

사용 가능한 단어 사용 불가능한 단어
alpha
alpha10
_alpha
Alpha
ALPHA
break   - 키워드라서 안 됩니다.

273alpha  - 숫자로 시작해서 안 됩니다.

has space   -공백을 포함해서 안 됩니다.

 

식별자를 만들 때는 한글, 한자, 일본어와 같은 전 세계의 언어를 모두 사용할 수 있지만, 알파벳을 사용하는 것이 관례입니다. 또한 a,b 처럼 의미 없는 단어보다 file, output처럼 의미 있는 단어를 사용하는 것이 좋습니다. 

 

<스네이크 케이스와 캐멀 케이스>식별자에는 공백을 사용할 수 없습니다. 공백이 없어 재빠르게 이해하기 힘든것을 쉽게 이해할 수 있도록 개발자들은 다음과 같은 두가지 방법을 사용했습니다.

 

첫째, 단어 사이에 언더 바(_)기호를 붙여 식별자를 만듭니다.

예를 들면 itemlist를 item_list로 쓰는 것 입니다. 이러한 것을 스네이크 케이스 라고 합니다.

스네이크케이스는 글자들이 뱀처럼 연결된다고 해서 붙은 이름입니다.

스네이크 케이스로 작성되어 있으면 함수,  그리고    괄호가 있으면 함수

                                                          변수,   그리고   괄호가 없으면 변수

둘째, 단어들의 첫 글자를 대문자로 만들어 식별자를 만듭니다.

예를 들면 itemlist를 ItemList로 쓰는 것 입니다. 이러한 것을 캐멀 케이스라고 합니다

캐멀케이스는 글자들이 낙타 같다고 해서 붙은 이름입니다.

케멀 케이스로 작성되어 있으면 클래스.

 

파이썬에서는 첫번째 글자가 소문자라면 무조건 스네이크 케이스입니다.  대문자라면 캐멀케이스입니다. 

 

* 주석 : 프로그램을 설명하는 데 사용하며, 프로그램에는 어떠한 영향도 주지 않습니다.

* print() 함수는 파이썬의 가장 기본적인 출력 방법으로 괄호 안에 출력하고 싶은 것을 입력해서 사용합니다.

 

 

 

2-1 자료형과 문자열

우리가 일상에서 만나는 모든 것들은 자료가 될 수 있고, 프로그램은 이러한 자료를 처리하기 위한 모든 행위라고 생각할 수 있습니다.

 

자료형 : 자료의 형식

가장 기본적인 자료형으로는 문자열, 숫자, 불 이 있습니다.

문자열(string) : - 문자의 나열을 말하고, 문자열은 큰따옴표 or 작은따옴표로 입력합니다. 

              - 메일 제목, 메시지 내용 등 예시) "안녕하세요" .  "Hello World" 

숫자(number) : 물건의 가격, 학생의 성적 등 예시) 52, 273, 103.32

불(boolean) : 친구의 로그인 상태 등  예시) True, False

이스케이프 문자 : 문자열 내부에서 특수한 기능을 수행하는 문자열을 말합니다.

문자열 연산자에는 문자열 연결 연산자(+), 문자열 반복 연산자(*), 문자열 선택 연산자([ ]), 문자열 범위 선택 연산자([ :])가 있습니다.

type() :  자료형을 확인하는 함수 

함수의 괄호 내부에 자료를 넣으면 그 자료가 어떤 자료형을 가지고 있는지 확인할 수 있습니다.

len() : 문자열의 길이를 구하는 함수입니다.

 

예제를 하나씩 풀어보면서 올바른 답이 나오면 넘 신기하고 내가 한게 맞나 싶으면서 넘 뿌듯하당~~~

누가보면 프로그램 하나 만든줄 알겠지만 ㅎㅎㅎ 내가 파이썬 문제를 풀었다니~~

사실 나에게는 예제 하나도 풀었다는게 넘 신기하다구요~~ㅎㅎㅎㅎ

 

이스케이프 문자를 사용해 문자열 만들기

이스케이프문자(escape character) 는 역슬래시(\)기호와 함께 조합해서 사용하는 특수한 문자를 의미합니다.

(한국어 키보드에서\는 원화기호(w) (Enter키 위에 있는것)  입니다.

*  \" : 큰따옴표를 의미합니다.

*  \'  :작은따옴표를 의미합니다.

이스케이프 문자를 사용하면 큰 따옴표 내부에 큰따옴표를 넣고, 작은따옴표 내부에 작은따옴표를 넣을 수도 있습니다.

예시) >>>print("\"안녕하세요\"라고 말했습니다")

"안녕하세요"라고 말했습니다

 

* \n : 줄바꿈을 의미합니다.

* \t : 탭을 의미합니다.

예시) >>>print("안녕하세요\n안녕하세요")

안녕하세요

안녕하세요

 

* 인덱싱(indexing) :  [ ]연산자를 이용해 문자열의 특정 위치에 있는 문자를 참조하는 것 

* 슬라이싱(slicing) : [ : ]연산자를 이용해 문자열의 일부를 추출하는 것

* IndexError(index out of range) 예외

:리스트/문자열의 수를 넘는 요소/글자를 선택할 때 발생합니다.

예시) >>>print("안녕하세요"[10]) 안녕하세요가 5글자인데 10번째 문자에 접근하고 있습니다. 즉 문자열에 없는 문자를 선택하고 있으므로 인덱스가 범위를 넘었다고 해서 index out of range라는 오류를 발생합니다.

[ ]연산자 재밌구만~~!!

 

기본미션!!

3. 다음 프로그램의 실행 결과를 예측해보세요.

print("#연습문제")
print("\\\\\\\\")
print("-"*8)

 

 

4.다음 프로그램의 실행 결과를 예측해 보세요. 그런데 이 예제를 실행하면 오류가 발생합니다. 몇 행에서 어떤 오류가 발생할까요? 그리고 그 이유는 무엇인지 적어 보세요.

print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print("안녕하세요"[4])
print("안녕하세요"[5])

 

 

print("안녕하세요"[5])

IndexError: string index out of range

마지막인 print("안녕하세요"[5])번에서 IndexError(index out of range)예외 가 발생합니다.

그 이유는 안녕하세요가 5글자인데 파이썬에서는 0부터 시작해서 

0: 안  1:녕  2:하  3:세  4:요 

로 나타납니다.

따라서 5번째 문자에 접근하고 있어 문자열에 없는 문자를 선택하고 있으므로 인덱스가 범위를 넘었다고 해서

index out of range라는 오류가 발생합니다.

 

5. 다음 프로그램의 실행 결과를 예측해 보세요.

print("안녕하세요"[1:3])
print("안녕하세요"[2:4])
print("안녕하세요"[1:])
print("안녕하세요"[:3])

 

 

 

비주얼 스튜디오 코드로 문제들을 모두 풀어보았습니다.

 

2-2 숫자

* 숫자 자료형에는 소수점이 없는 정수형과 소수점이 있는 실수형(부동 소수점)이 있습니다.

int : 정수

float : 부동소수점(실수)

 

* 숫자 연산자에는 +, -, *, /와 같은 사칙 연산자와 //(정수 나누기 연산자), %(나머지 연산자),**(제곱 연산자)가 있습니다.

>>>print("5 + 7 =", 5 + 7)
5 + 7 = 12

>>>print("5 - 7 =", 5 - 7)
5 - 7 = -2

>>>print("5 * 7 =", 5 * 7)
5 * 7 = 35

>>>print("5 / 7 =", 5 / 7)
5 / 7 =0.7142857142857143

 

이때 5*7 와 5 * 7 중간에 띄어쓰기를 해도 같은 값이 나오는지 궁금해서 해봤는데 같은값이 나온다는 것을 알 수 있었다.

* 정수 나누기 연산자: // 

: //연산자를 사용한 수식의 결과는 소수점 아래를 떼어 버린 값이 출력되는 것을 확인할 수 있습니다.

>>>print("3 / 2 =", 3 / 2)
3 / 2 = 1.5

>>>print("3 // 2 =", 3 // 2)
3 / / 2 = 1

 

*나머지 연산자:%

:A를 B로 나누었을 때 남을 나머지를 구하는 연산자입니다.

 

>>>print("5%2=", 5%2)
5%2=1

몫이 2이고 나머지가 1이므로 결과 또한 1을 출력합니다.

 

#   제곱연산자**

수학에서 2제곱4 는 파이썬에서 2**4로 씁니다.

 

*연산자의 우선순위

연산자에는 우선순위가 존재합니다.

1. 곱하기와 나누기가 우선

2. 더하기와 빼기가 다음으로 우선

3. 잘 모를 때는 괄호를 쳐서 나타냅니다.

 

파이썬에서의 지수 표현 

 파이썬에서는 0.52273*10제곱2  를  0.52273e2 또는 0.52273E2 로 표현합니다.

>>> 0.52273e2
52.273


>>>0.52273e-2
0.0052273

 

선택미션!!

 

2-1을 하기전까지는 많이 헷갈려서 시간이 많이 걸리면서 어렵다고 생각했었는데 

2-1까지 공부하고 난 다음에는 어?? 답이 나오네?? 나도 할수 있겠는걸?? 이라고 생각도 들면서 점차 재미를 느끼면서 할 수 있었다.

다음주에도 열심히~!!!