본문 바로가기
Study/CODE 3기 [Jump to python]

[5조 C5DE] Python Study

by 24 인시환 2024. 3. 11.
작성중

💙 팀원: 김세언 박준현 박지호 소정인 인시환 장민호


  • 작성자 : 박준현
  • 진도 : 01-5 파이썬 둘러보기 ~ 02-1 숫자형
  • 작성일 : 24/03/11

[01-5 파이썬 둘러보기]

파이썬 세팅과정

파이썬에 본격적으로 코드를 입력하기 위해서는 우선 파이썬 쉘이 필요하다. 앞서 파이썬 설치를 완료했다면 [윈도우]메뉴에서 Python 3.XX (XX-bit)앱을 찾을 수 있을 것이다.

이 앱을 켰을 때 나오는 화면을 '대화형 인터프리터'라고 부른다.

이때 나오는 (>>>)를 프롬프트(prompt)라 부른다.

우리는 프롬프트를 통해 인터프리터와 대화하는 방식으로 '대화형 인터프리터'를 사용할 것이다.

 

기초 문법
사칙연산 +(더하기) -(빼기) *(곱하기) /(나누기)
>>> 1+5
6
>>> 3 / 2
1.5

 

변수에 숫자나 문자 대입하기
>>> a = 2
>>> b = 15
>>> a + b
17
>>> a = 'C5DE조'
>>> b = ' 화이팅'
>>> a + b
'C5DE조 화이팅'

우리는 이처럼 변수에 숫자나 문자열을 대입할 수 있고, 간단한 사칙연산도 수행할 수 있다.

이때 숫자와 문자열을 따옴표(')나 큰따옴표(")를 통해 구분해주는 것이 매우 중요하다.

 

조건문 If
>>> a = 5
>>> if a > 4:
	print('a는 4보다 큽니다.')
    
a는 4보다 큽니다.

위는 간단한 If 를 사용한 예이다.

a라는 변수를 숫자 5라고 설정했을때 만약(if) a가 숫자 4보다 크다면, 'a가 4보다 큽니다.'라는 문장을 출력(print)해라 라는 의미이다.

이때 우리가 If조건문을 사용할 때 문장을 들여쓰기 해주어야 조건문이 작동한다. 들여쓰기를 잊지말자. (if 조건문 외에도 반복문 for, while 예제도 들여쓰기를 필요로한다.)

이와 같이 우리는 친구와 카톡하는 방식처럼 대화형 인터프리터를 사용할 수 있다.

다음장에서는 우리가 작성한 코드를 저장하고, 실행하는 방법에 대해 배워볼 것이다.


본격적인 파이썬의 기본 문법을 배우며 빨리 여러 조건문이나 함수들을 배우고 써먹어보고 싶다는 생각이 들었다.

 

 

[01-6 파이썬과 에디터]

파이썬 에디터란 ?

우리는무언가 문제가 생겼을 때, 프로그램으로 우리가 생각하는 것을 구현하고 싶을 때 코드를 작성한다. 이를 위해서 우리는 그저 파이썬 인터프리터와 '대화'만 하는 것이 아니고, 우리의 코드를 저장하고 이를 실행하는 과정이 필요하다.

이를 위해서 필요한 것이 파이썬 에디터(editor) 이다.

에디터란 소스 코드를 편집할 수 있는 프로그래밍 도구를 말한다. 파이썬이 설치된 컴퓨터라면 모두 IDLE(Integrated development and learning environment)가 깔려있을 것이다. 

이번 시간에는 아이들(IDLE)를 사용해 어떻게 코드를 저장하는 지 배워볼 것이다.

 

IDLE 실행하기

[윈도우]에 IDLE을 입력한다면 다음과 같은 프로그램이 나올 것이다.

이때 처음으로 표시되는 창을 우리는 쉘(shell)이라고 부를 것이다.

이 쉘은 우리가 사용했던 대화형 인터프리터와 동일한 구조로 되어있다.

이제 본격적으로 IDLE 에디터를 실행해보자

[File] -> [New File]을 선택해보자

이때 나타나는 빈 창을 우리는 에디터 라고 부른다.

이 창은 지금까지 우리가 사용했던 쉘과는 다르게, 코드를 작성해도 바로 대답이 오지 않고 그대로 저장된다.

>>> a = '안녕하세요.'
>>> b = ' 5조 박준현입니다.'
>>> print(a+b)

간단하게 위와 같은 코드를 입력해보자

이제 Run Module 을 실행하면

위와 같이 우리가 에디터에 저장했던 코드가 실행되어 나타날 것이다.

이처럼 에디터를 사용한다면, 우린 손쉽게 코드를 저장하고 실행하며 진척 상황을 체크할 수 있을 것이다.


코드를 저장하고 실행한다는 개념 자체가 처음이여서 설렜고, 본격적인 코딩 공부가 시작되는 것 같아 기대된다.

 

 

[02-1 숫자형]

숫자형의 종류

파이썬에서 가장 기본이 되는 숫자이다. 숫자의 종류는 크게 4가지가 있다.

  • 정수형 ex) 0, 1, 5
  • 실수형 ex) 0.25 
  • 8진수 ex) 0o34
  • 16진수 ex) 0x2A

우리가 일상생활에서 흔히 사용하는 정수형과 실수형 말고 8진수와 16진수 체계는 나와 같은 문과들에게는 매우 생소할 수 있다. 하지만 파이썬에서는 잘 사용하지 않는다고 하니 안심하고 넘어가자. (필요할 때 배우는 걸로)

 

다양한 연산자

파이썬에는 숫자형을 활용한 다양한 연산자가 존재한다. 

사칙연산
>>> 6 + 7
13
>>> 6 * 7
42
>>> 6 / 7
0.85714286

우선 앞 서 기본 예제에서 살펴본 바와 같이 파이썬은 프롬프트에 그저 +, -를 입력해주는 것만으로 계산기처럼 손쉬운 계산이 가능하다. 

 

제곱을 나타내는 ** 연산자
>>> a = 6
>>> b = 2
>>> a ** b
36

위와 같이 '제곱'을 사용하고 싶을 때 우리는 **라는 연산자를 사용한다.

 

몫을 리턴하는 // 연산자
>>> 4 // 3
1
>>> 3 // 5
0

그냥 '/'는 나눗셈을 의미하는 것과 달리 /를 두번 연속해 써준다면 몫을 리턴하는 연산자가 된다.

이때 리턴은 결과값을 의미한다.

 

나머지를 리턴하는 % 연산자
>>> 6 % 4
2
>>> 6 % 3
0

앞서 '//'이 몫을 나타낸 것과 달리 '%'는 몫의 나머지를 리턴한다.

만약 나누어 떨어진다면 0을 리턴한다.

 

복합 연산자

복합 연산자는 앞서 배운 변수를 이용할 때 유용하게 쓰인다.

>>> a = 5
>>> a = a + 3
>>> print(a)
8

위와 같이 a라는 변수를 정한 후 a를 다시 a+3으로 정의해준다면 기존에 5였던 a값은 5+3인 8으로 바뀌게 된다.

우리는 위와 같은 과정을 복합 연산자를 통해 다음과 같이 나타내 줄 수 있다.

>>> a = 5
>>> a += 3
>>> print(a)
8

'+='라는 복합 연산자를 통해 a를 쉽게 새로 정의해 준것이다.

그저 '사칙연산기호 + ='를 해주는 것 만으로 우리는 코드의 가독성을 높일 수 있다.

>>> a = 4
>>> b = 13
>>> a -= b
>>> print(a)
-9
>>> a = 4
>>> b = 2
>>> a /= b
>>> print(a)
2

'+'이외에도 '-' '*' '/' 

그리고 앞서 배운 '**'이나 '%', '//'도 적용이 가능하다!


지금까지 배운 연산자를 활용해 앞으로 배울 다양한 함수나 조건문에 응용해보고 싶다.


  • 작성자 : 인시환
  • 진도 : 02-2 문자열 자료형 ~ 02-3 리스트 자료형
  • 작성일 : 24/03/11

[02-2 문자열 자료형]

문자열의 표현

 

파이썬에서 '문자열'은 텍스트를 표현하는 자료형이며, 숫자형과는 다르다. 

 

그렇다면 문자열은 어떻게 표현할 수 있을까?

 

'이렇게'

작은 따옴표로 둘러싸기

"네 가지"

큰 따옴표로 둘러싸기

'''방법으로'''

작은 따옴표 세개로 둘러싸기

"""표현할 수 있다"""

큰 따옴표 세개로 둘러싸기

 

왜 문자열을 표현하는데에 4가지 방법이나 필요할까? 그 이유는 문자열 내의 따옴표 기호와 구분하기 위해서이다. 

 

 

이와 같이 큰따옴표로 표현된 문자열 안에 큰따옴표가 들어가게 된다면 문법 오류가 발생하게 된다. 따라서 문자열을 표현하는 따옴표를 다음과 같이 적절하게 사용해야 한다. 

 

 

문자열에서의 줄바꿈

 

문자열 안에서 줄바꿈을 할 때에는 주의점이 있다. 코드 상에서 줄바꿈을 하게 된다면 컴퓨터가 코드를 인식하지 못한다. 따라서 이스케이프 코드 \n을 적절하게 사용해야 한다. 

올바르게 출력된 모습

문자열의 연산

 

 

숫자형처럼 문자열 자료형 또한 '+'기호 '*'기호를 활용하여 덧셈, 곱셈이 가능하다. 

문자열의 덧셈

 

문자열의 곱셈

 

 

문자열 인덱싱

 

a = "이 문장은 몇 글자일까요?"

 

라는 문장이 있다고 가정하자. 파이썬은 이 문자열에서 각 문자에 숫자를 0부터 대응시킨다. 

 

인덱싱된 문장을 어떻게 확인할 수 있을까?

 

0번째 글자를 출력하는 코드

 

대괄호 안에 숫자를 입력하면 그 숫자에 대응되는 글자를 찾게 된다.

 

 

또한, -기호를 사용하여 뒤에서부터 글자를 셀 수도 있다.

 

문자열 슬라이싱

 

슬라이싱이란 말 그대로, 한 문자열에서 부분을 잘라낸다는 것이다. 

 

대괄호에 : 기호를 삽입하여 활용할 수 있다. 

 

a[0 : 5]

 

라고 한다면 0번째부터 4번째까지 문자를 추출할 수 있는 것이다.

 

  • 주의 : 마지막 숫자에 해당되는 문자는 출력되지 않는다.

 

 

4번째 문자열까지 추출되었다.

 

문자열 포매팅

 

같은 문장에서 변화하는 부분을 보다 쉽게 표현할 수 있도록 포매팅을 사용한다. 

 

format 함수를 사용할 경우 문장 끝에 .format()을 붙이면 된다.

 

 

 

[02-3 리스트 자료형]

 

파이썬에서 리스트는 여러 값을 순서대로 저장하는 자료형이다. 리스트는 대괄호 []로 둘러싸여 있으며, 각 값들은 쉼표로 구분된다. 

 

리스트의 인덱싱

 

리스트의 인덱싱은 문자열의 인덱싱과 유사하다. 

 

리스트의 슬라이싱

 

슬라이싱 또한 문자열과 유사하다.

 

 

 

리스트 관련 함수

 

리스트 관련 함수로 append, index, insert 등이 있지만 대표적인 함수 del을 다뤄보겠다.

 

del[숫자]

 

이 코드를 활용하면 숫자에 해당되는 요소가 삭제된다. 

 

0번째에 해당하는 '가' 가 삭제된 모습이다.

 


 

작성자: 박지호

작성일: 24/03/11

진도: 02-4 튜플 자료형, 02-5 딕셔너리 자료형

 

[02-4 튜플 자료형]

 

튜플은 어떻게 만들까 ?

 

t1 = ()
t2 = (1,)
t3 = (1, 2)
t4 = 1, 2, 3
t5 = ('a', ('b', 'c'))

 

튜플은 위와 같이 ()로 둘러싼다.

요소가 하나일 때도 t2 = (1,) 와 같이 요소 뒤에 쉼표를 붙여야한다.

t4 = 1, 2, 3 처럼 소괄호()를 생략해 사용해도 된다.

 

🌟 리스트와의 차이점 !

튜플은 리스트와 유사한데 몇 가지 점에서 차이가 있다.

1. 리스트는 [], 튜플은 ()로 둘러쌓임

2. 리스트는 요솟값의 생성, 삭제, 수정 등 변화가 가능하지만, 튜플은 요솟값의 변화가 불가능함

(따라서 sort, insert, remove, pop과 같은 내장 함수가 없다.)

 

 

튜플의 요솟값을 지우거나 변경하려고 한다면 ?

 

  • 지우려고 한 경우

튜플은 한 번 입력한 요솟값을 제거할 수 없기 때문에 del 함수를 사용한 경우, 지울 수 없다는 오류 메시지가 뜬다.

 

  • 변경하려고 한 경우

튜플은 요솟값의 변경도 불가능하기 때문에 변경하려고 한 경우, 마찬가지로 오류 메시지가 뜬다.

 

 

 

튜플 다루기 !

 

튜플은 인덱싱, 슬라이싱, 더하기, 곱하기, 길이 구하기가 가능하다.

 

  • 인덱싱하기

t1[0], t1[1], t1[2]로 인덱싱이 가능하다.

 

 

  • 슬라이싱하기

슬라이싱도 가능한데, 위의 예시는 t2[2]전까지의 요소를 슬라이싱한 것이다.

 

 

  • 튜플 더하기

위의 예시는 t3와 t4 튜플을 더해 새로운 튜플 t5를 생성한 것이다.

 

 

  • 튜플 곱하기

t6 튜플을 두 번 곱해 새로운 튜플 t7을 만들었다.

 

 

  • 튜플 길이 구하기

튜플 t8의 길이를 구한 예이다.

 

[02-5 딕셔너리 자료형]

 

딕셔너리란 ?

 

말 그대로 사전이라는 뜻이다.

 

dog = 개, blue = 파란색, bear = 곰

 

위와 같이 하나의 단어에 각각의 뜻이 부합하듯이 딕셔너리는 Key와 Value가 한 쌍을 이루는 자료형이다.

위의 예시에서는 'dog, blue, bear'이 Key가 되고, '개, 파란색, 곰'이 Value가 된다.

 

 

딕셔너리는 어떻게 만들까 ?

 

{'name': 'Jiho', 'gender': 'Female', 'school number': 2020105026}

 

딕셔너리는 위와 같이 {}로 둘러싼다.

이때 {} 안에는 Key와 Value의 쌍 여러 개가 들어가게 된다.

Key: Value의 형태로 되어있고, 각각의 쌍은 ','로 구분한다.

따라서 위 예시에서는 'name', 'gender', 'school number'가 Key가 되고,

'Jiho', 'Female', 2020105026이 각각의 Key에 대응되는 Value가 된다.

 

딕셔너리에 쌍 추가하기

 

본래의 딕셔너리 a에 a[1] = 'a'와 같이 입력하면 새로운 딕셔너리 쌍인 {1: 'a'}가 추가된다.

 

딕셔너리 요소 삭제하기

 

딕셔너리 요소를 삭제하기 위해서는 del 함수를 이용하면 된다.

del 딕셔너리_변수_이름[Key]를 입력하면 해당 Key와 그에 대응하는 Value 한 쌍이 삭제된다.

위의 예시에서는 이와 같은 방식으로 {2: 'b'} 쌍이 삭제됐다.

 

 

딕셔너리에서 Value 얻어내기

 

딕셔너리에서는 Key를 활용해 단번에 Value를 얻어낼 수 있다.

 

Key에 대응하는 Value를 얻기 위해서는 딕셔너리_변수_이름[Key]를 사용하면 된다.

위 예시에서는 Key인 'pH-1'에 해당하는 Value를 얻기 위해 Job['pH-1']을 사용했다.

 

⚠️  딕셔너리에서는 리스트나 튜플에서 적용되는 인덱싱이 적용되지 않는다.

        만약 a = {1: 'a', 2: 'b'}의 딕셔너리에서 a[1]이라는 값을 입력하게 되더라도

        이는 Key 1에 해당하는 Value를 찾기 위한 방법일뿐, 이를 인덱싱과 헷갈려서는 안된다.

 

딕셔너리를 만들 때 주의해야 할 점

  • Key가 중복되었을 때는 1개만 남고 나머지는 모두 무시되기 때문에 동일한 Key가 하나의 딕셔너리 내에 존재하지 않도록 주의 !
  • Key에는 리스트를 쓰지 못한다 ! 리스트는 변하는 값이기 때문 .. (단, 튜플은 가능 + Value에는 뭐든 다 가능)

 

 

딕셔너리 관련 함수

 

1. Key 리스트 만들기 - keys

딕셔너리_변수_이름.keys()를 사용하면 해당 딕셔너리의 Key들만 모아 dict_keys 객체를 리턴한다.

 

2. Value 리스트 만들기 - values

마찬가지로 딕셔너리_변수_이름.values()를 사용하면 해당 딕셔너리의 Value들만 모아 dict_values 객체를 리턴한다.

 

3. Key, Value 쌍 얻기 - items

딕셔너리_변수_이름.items()를 사용하면 해당 딕셔너리의 {Key: Value} 쌍을 튜플로 묶어 리턴한다.

 

4. 딕셔너리 요소 모두 지우기 - clear

딕셔너리_변수_이름.clear() 함수는 딕셔너리 안의 모든 요소를 다 삭제한다.

 

5. Key로 Value 얻기 - get

딕셔너리_변수_이름.get(Key) 함수는 위에서 다뤘던 딕셔너리_변수_이름[Key]와 동일한 결괏값을 리턴한다.

이때, 차이는 ! 딕셔너리에서 존재하지 않는 키를 사용했을 시, 딕셔너리_변수_이름[Key] 방식은 오류를 발생시키고

딕셔너리_변수_이름.get(Key) 방식은 None 즉, 거짓을 리턴한다.

 

6. 해당 Key가 딕셔너리 내에 있는지 조사하기 - in

in 함수는 해당 Key가 딕셔너리 내에 존재하는지 아닌지를 알 수 있는 함수이다.

Key in 딕셔너리_변수_이름을 했을 때의 결괏값이 True/False 인지에 따라 해당 Key가 존재하는지 아닌지 알 수 있다.