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

[김이김이나] python 스터디

by 23 김한세 2024. 3. 10.

<by 김한세 정현석 김민혁 김서현 김민정 이나은>


  • 작성자: 김한세
  • 작성일: 3/10
  • 진도: [1-1]~[1-3] 파이썬은 무엇일까

📌  파이썬은 무엇일까  ?

     요즘 파이썬을 안 쓰는 회사가 없다더라

     코딩을 시작할 때는 파이썬이 가장 쉽다더라

 

 모두 맞는 말이다.

        ' 파이썬은 무엇일까'라는 설명은 파이썬의 쉽고 광범위한 사용과 관련되어 있다.

 

   파이썬은 *인터프리터 언어이며

      인스타그램(instagram), 넷플릭스(netflix), 아마존(amazon), 구글(google) 등

많은 기업들이 파이썬을 사용한다.

                                         뿐만아니라 공동작업과 유지보수가 쉬우며 사람의 사고체계와 매우 닮아 있어 배우기 쉽다.                                                 

 

      *인터프리터 언어: 소스코드를 한줄 씩 해석한 후 바로바로 실행해 결과를 확인할 수 있는 언어

 

 

       그럼 파이썬이 무엇인지 본격적으로 알아보자.

 

 

           파이썬은 *오픈소스(open source)로 운영되는 무료 소프트웨어이다.              *오픈 소스: 누구나 제한없이 소스코드를 자유롭게 사용/복제/배포/수정할 수 있는 소프트웨어

 

 

 

 

 

 


 

  📌 파이썬으로 무엇을 할 수 있을까 ?

 

    < 웹 프로그래밍>

 

         파이썬을 통해 웹사이트, 웹페이지 제작이 가능하다.

 

 

         <인공지능-머신러닝 구현>

                      사이킷런, 텐서플로, 파이토치, 케라스와 같은 *라이브러리 제공을 통해 프로그래밍을 도움

             *라이브러리: 프로그램 작성 시 불러와 사용할 수 있도록 미리 만들어 놓은 파이썬 파일

 

 

        <수치 연산 프로그래밍>

            *넘파이라는 수치 연산 묘듈을 통해 빠른 수치 연산 가능

         *넘파이: C(빠른속도의 실행이 필요한 부분에 이용)로 작성되었기에 빠른 연산을 가능하게 함

 

 

        <데이터 분석>

          넘파이, *판다스, 맷플롯립과 같은 라이브러리를 이용하여 데이터 분석

               *판다스: 판다스 사용 시 데이터 분석에 있어 파이썬 사용의 강점이 드러남

 

                 

          <데이터베이스 프로그래밍>

                

파이썬은 데이터베이스에 접근하기 위한 도구를 제공

 

 

       <시스템  유틸리티 제작>

      *유틸리티성 프로그램을 하나로 합치는 것이 가능

        *유틸리티: 컴퓨터를 사용하는데 도움을 주는 소프트웨어

 

 

      <GUI프로그래밍>

.      프로그램을 동작시킬 수 있는 메뉴나 버튼을 추가하는 것이 가능

 

 

       <C/C++와 결합>

.       파이썬과 C/C++로 만든 프로그램들끼리 이동하며 사용 가능

 

 

       <사물인터넷에서의 높은 활동도>

     

         Ex) LED 에 불이 들어오게 하도록 파이썬을 통해 설계 가능

 

 


📌느낀점

 

 

 

 

 

 

 


 


  • 작성자: 정현석
  • 작성일: 3/10
  • 진도: [1-4]~[1-6] 파이썬 둘러보기

 

📌파이썬 맛보기

 

 

파이썬 프로그래밍을 실습하기 위해서는 파이썬 홈페이지에서 파이썬을 다운로드하고,

[시작] 메뉴에서 ‘Python 3. 12(64-bit)’를 찾아 실행한다. 

 

 

프로그램을 실행하면 다음과 같은 화면이 나타난다.

 

 

  • 파이썬 대화형 인터프리터를 간단히 ‘파이썬 셸’이라고 부르기도 한다.
  • 파이썬 셸 창에서 '>>>'는 프롬프트(prompt)라고 한다. 
  • 프롬프트(>>>)가 있는 곳이 사용자가 명령을 입력하는 부분이다. 

 

 

이제 파이썬에 간단한 수식을 입력해보자.

위처럼 입력에 따른 결괏값이 바로 출력된다.

 

우리가 입력을 하면 출력값이 제공되는 것이 대화하는 것과 유사하여 이 창을 '파이썬 대화형 인터프리터'라고 부른다.

 

*참고*

대화형 인터프리터를 종료할 때는 [ctrl+z]를 누르고 [Enter]를 누른다.

혹은 프롬프트(>>>)에 exit( ) 나 quit( ) 를 입력하여 종료할 수 있다.

 

 

📌파이썬  기초 문법 따라 해 보기

 


<사칙연산>

 

더하기와 빼기는 일반적인 계산기에 입력하듯 (+)나 (-)를 입력해주면 된다.

>>> 53 - 3
50

 

>>> 99 + 1
100

 

곱셈과 나눗셈은 일반적인 계산기와 입력하는 방법이 상이하다. 

곱셈의 (×)는 *로, 나눗셈의 (÷)는 /로 입력하면 된다.

>>> 3 * 9
27

 

>>> 81 / 9
9

 

<조건문 if>

 

 조건문 if를 이용하여 다음과 같은 예문을 작성해보자.

>>> a = 715 
>>> if a > 422: 
...    print("make code great again.")
...    
make code great again.

여기서 나타나는 '...'은 아직 입력 중인 문장이 끝나지 않았다는 것을 의미한다.

 

앞선 예제는 a가 422보다 크면 "make code great again." 이라는 문장을 출력하라는 뜻이다.

a는 715이므로 422보다 크기 때문에 "make code great again." 이라는 문장이 출력된다.

 

<반복문 for>

반복문 for을 이용하여 다음과 같은 예문을 작성해보자.

>>> for a in [2, 4, 8]
...   print(a)
...
2
4
8

 

반목문 for을 사용하여 실행해야할 문장을 여러 번 반복해서 실행할 수 있다.

위 코드는 [2, 4, 8] 리스트 앞에서부터 하나씩 꺼내 문자 a에 대입하고 print(a)를 수행하라는 의미이다.

우리는 이처럼 반복문 for을 이용하여 문장을 반복적으로 실행할 수 있다. 

 

<반복문 while>

반복문 while을 이용하여 다음과 같은 예문을 작성해보자.

>>> while i < 55:
...     i=i+1
...     print(i)
...
51
52
53
54
55

while이라는 단어의 뜻은 '~인 동안'이라는 것을 잘 알고 있을 것이다.

 

이것에서 알 수 있듯 반복문 while은 특정 조건이 충족'하는 동안' 문장을 반복해서 수행한다. 

위 예제는 i의 값이 55보다 작은 동안 i=i+1과 print(i)를 수행하라는 의미이다.

i 값이 55보다 커지면 이 문장을 빠져나간다. 

 

<함수>

파이썬에서 함수를 이용하여 다음과 같은 예문을 작성해보자. 

>>>def add(a, b):
...    return a+b
...
>>> add(36, 27)
63

def는 파이썬에서 함수를 정의할 때 사용하는 예약어이다.

 

위 함수는 add함수를 생성하여 어떻게 활용하는지를 알려준다.

add(a, b)에서 a, b는 입력값, a + b는 결괏값이다.

36과 27이 입력되면 36 + 27을 실행하고, 그 결괏값으로 63을 리턴한다. 

 

📌파이썬과 에디터

 

<파이썬 대화형 인터프리터의 단점>

파이썬 대화형 인터프리터는 다음과 같은 단점이 있다.

 

  • 여러 줄로 구성된 복잡한 소스 코드를 가진 프로그램을 생성하기 어렵다.
  • 한번 파이썬 셸을 닫으면 다시 사용하지 못한다.

 

<IDLE 에디터를 이용하기>

 

파이썬을 설치할 때 기본으로 설치되는 파이썬 IDLE의 에디터를 사용해보자.

파이썬 IDLE은 파이썬 프로그램 작성을 도와주는 통합 개발 환경이다. 

 

에디터란 소스 코드를 편집할 수 있는 프로그래밍 도구를 말한다.

 

IDLE 에디터를 실행하면 IDLE 셸 창이 나타난다. 

 

이제 IDLE 에디터를 실행해보자. 

 

IDLE 셸 창 메뉴에서 [File -> New file]을 선택한다. 

그러면 빈 창이 나타나는데, 바로 그 창이 IDLE 에디터이다. 

IDLE 에디터를 실행하여 프로그램을 작성했다면 [Run -> Run Module] 혹은 F5를 통해 프로그램을 실행할  수 있다.

 

<에디터 추천>

앞서 등장한 IDLE보다 다양한 기능을 수행할 수 있는 에디터는 다음과 같다. 

 

1. 비주얼 스튜디오 코드

                                                                             2. 파이참


📌느낀점

파이썬이라는 것을 처음 배워보니 조금은 낯설지만 계속 흥미와 끈기를 갖고 열심히 공부하다보면 어느새 익숙해지고

파이썬을 잘 다룰 수 있을 것 같다.

그리고 코드와 함께라면 더더욱.

 



  • 작성자: 김민정
  • 작성일: 3/11
  • 진도: [2-1]~[2-2] 문자열 인덱싱과 슬라이싱

📌자료형이란 무엇일까?

프로그램의 기본이자 핵심 단위가 되는 것으로
프로그래밍을 할 때 쓰이는 숫자, 문자열 등과 같이 자료 형태로 사용하는 모든 것을 뜻한다.

 

📌숫자형

숫자형이란 숫자 형태로 이루어진 자료형이다.

파이썬에서는 정수, 실수, 8진수와 16진수를 각각 어떻게 만들고 사용하는지 알아보자

 

<정수형>

정수를 뜻하는 자료형을 말한다. 다음은 정수를 변수 a에 대입하는 예이다.

>>> a = 2024
>>> a = -99
>>> a = 0

이때 등호는 일반적인 수식과 달리 양변이 같다는 의미를 포함하지 않는다.

 

<실수형>

파이썬에서 실수형은 소수점이 포함된 숫자를 말한다. 다음은 실수를 변수 a에 대입하는 예이다.

>>> a = 10.9
>>> a = -87.6

 

다음은 컴퓨터식 지수 표현 방식이다. 1.23에 10의 제곱을 곱한 값을 표현해본다고 하자.

>>> a = 1.23E2
>>> a = 1.23e2

대문자E와 소문자e 모두 사용 가능하다.

 

 

<8진수와 16진수>

8진수를 만들기 위해서는 숫자 앞에 '숫자0 + 알파벳 소문자o 또는 대문자O'를 붙이면 된다.

>>> a = 0o120
>>> print(a)
80

16진수를 만들기 위해서는 숫자 앞에 '숫자0 + 알파벳 소문자x'를 붙이면 된다.

>>> a = 0x14
>>> print(a)
20

 

 

📌숫자형을 활용하기 위한 연산자

 

<사칙연산>

계산기와 마찬가지로 +, -, *, /의 연산자를 사용해 사칙 연산을 수행한다.

 

<제곱을 나타내는 ** 연산자>

이 연산자는 x ** y 처럼 사용했을 때 x의 y제곱 값을 리턴한다.
연산자의 좌측에 있는 것이 밑, 우측이 지수에 해당되는 것이다.

 

<나눗셈 후 나머지를 리턴하는 % 연산자>

다음 예시를 통해 이해해보자.

>>> 10 % 7
3
>>> 4 % 9
4

 

<나눗셈 후 몫을 리턴하는 // 연산자>

다음 예시를 통해 이해해보자.

>>> 190 // 50
3

cf. 위의 예시에 포함된 연산자를 / 로 바꿔본다면?

>>> 190 / 50
3.8

 

<복합 연산자>

복합 연산자는 앞서 살펴본 산술 연산자와 대입 연산자 (=) 를 합쳐 놓은 것으로
+=, -=, *=, /=, //=, %=, **= 와 같은 것들이 복합 연산자에 해당된다.

복합 연산자가 무엇인지 예시를 통해 이해해보자.

>>> a = 5
>>> a = a + 5
>>> print(a)
10

이렇게 a = a + 5 식에 의해 a 값이 5만큼 증가된다.
이를 간소화한 연산자가 +=인 것이다.

위를 통해 추론할 수 있듯이, -= 복합 연산자는 값을 감소시키기 위해 사용된다.
이렇게 복합 연산자를 사용하면 코드를 간결하고 가독성 있게 작성할 수 있다는 장점이 있다.

 

📌문자열 자료형

문자열이란 연속된 문자들의 나열을 말하는 것으로, 이를 만드는 방법은 모두 4가지가 있다.

 

📌문자열 자료형을 만들고 사용하는 법

문자열 자료형을 만드는 방법은 4가지이다.

1. 큰따옴표로 양쪽 둘러싸기

2. 작은따옴표로 양쪽 둘러싸기

3. 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기

4. 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기

 

잠깐, 문자열을 만드는 방법은 왜 4가지나 있는 걸까?

파이썬의 장점은 간결함이라며...

상황에 따라 문자열 안에도 작은따옴표와 큰따옴표가 들어 있는 경우,
사용할 수 있는 문자열 생성 방법이 제한적일 수 있기 때문에 4가지인 것이다.

문자열 안에 작은따옴표가 포함된다면 문자열을 큰따옴표로 둘러싸고,
문자열 안에 큰따옴표가 포함된다면 문자열을 작은따옴표로 둘러싸면 되는 것이다.

이때 역슬래시를 사용하는 방법이 추가된다.

 

<역슬래시를 사용해서 작은따옴표와 큰따옴표를 문자열에 포함하기>

역슬래시를 따옴표 앞에 삽입하면 역슬래시 뒤에 위치하는 따옴표는
문자열을 둘러싸는 기호의 의미가 아닌, 따옴표 그 자체를 뜻하게 된다.

 

 

<여러 줄인 문자열을 변수에 대입하고 싶을 때>

문자열이 항상 한 줄짜리만 있는 것은 아니다.
여러 줄의 문자열을 변수에 대입하는 방법은 2가지가 있다.

1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기

이스케이프 코드란 프로그래밍 할 때 사용할 수 있도록 미리 정의해 준 문자 조합을 말한다.
이스케이프 코드를 이용하여 출력물을 보기 좋게 정렬할 수 있다.

2. 연속된 작은따옴표 3개 또는 큰따옴표 3개 사용하기

위의 두 경우 모두 결과가 동일하므로 이스케이프 코드보다 따옴표 3개를 사용하는 것이 더 깔끔할 수 있다.

 

 

📌문자열 연산하는 법

문자열을 더하거나 곱할 수 있는 것은 파이썬만의 장점이라고 할 수 있다.
문자열을 연산하는 방법에 대해 알아보자.

 

<문자열 더해서 연결하기>

>>> head = "I'm"
>>> tail = "craving pizza"
>>> head + tail
'I'm craving pizza'

 

<문자열 곱하기>

더하기와 달리 문자열에서의 곱하기는 숫자 곱하기의 의미와는 다르다.
이때 곱하기는 반복의 의미로 사용된다.

>>> a = "me"
>>> a * 2
'meme'

문자열 곱하기를 응용한다면 프로그램 실행 시 프롬프트 창에 프로그램 제목이 뜨게끔 만들 수도 있다!

 

<문자열 길이 구하기>

공백 문자가 포함된 문자열의 길이는 파이썬의 기본 내장 함수인 len 함수로 구할 수 있다.
아래 예시를 참고해보자.

>>> a = "We are CODE"
>>> len(a)
11

 

 

📌문자열 인덱싱

문자열 인덱싱에서 기억해야 할 점은
파이썬은 0부터 숫자를 센다는 것이다.

어떤 변수에 저장한 문자열의 각 문자마다 번호를 매기고, 해당 번호를 이용하여
문자열 안의 특정한 값을 뽑아 내는 작업이 바로 인덱싱이다.

이때, 음수인 번호를 인덱싱하면 어떤 의미를 가질까?

문자열을 뒤에서부터 읽을 때 마이너스 기호를 붙인다.
즉, a(-1)은 a라는 변수에 저장된 문자열의 가장 마지막 문자를 말한다.

 

 

📌문자열 슬라이싱

앞서 특정 문자를 뽑아 내는 문자열 인덱싱과 달리
문자열 슬라이싱은 특정 단어를 뽑아 낼 때 사용된다.

인덱싱을 통해 단어를 뽑아 낼 수도 있지만 슬라이싱을 이용하면 더 간단하다.

해당 단어를 구성하는 첫 문자의 인덱싱 번호를 x, 마지막 문자의 인덱싱 번호를 y라 할 때
슬라이싱에 쓰이는 번호는 x와 y+1이다. (y가 아님에 주의!)

>>> a = "We are CODE"
>>> a[8:12]
'CODE'

슬라이싱도 인덱싱에서와 마찬가지로 마이너스 기호를 사용할 수 있다.

슬라이싱에서 번호를 생략할 수 있는 경우들이 있다.

1. 해당 문자열의 끝까지 뽑아내고 싶을 때
: 끝 번호 생략 가능
>>> a[x:]

2. 해당 문자열의 시작부터 뽑아내고 싶을 때
: 시작 번호 생략 가능
>>> a[:y]

3. 해당 문자열의 전체를 뽑아내고 싶을 때
: 번호 모두 생략 가능
>>> a[:]

위의 1, 2번 생략법을 함께 활용하면 문자열을 간편하게 나눌 수 있다.


📌느낀점

아직 익숙하지 않은 개념에 대해 정리하는 일이 쉽진 않았지만 이 과정을 통해 이번주에 공부한 것들을 다시 한 번 되새기는 시간을 가질 수 있었던 것 같아 보람차다. 우리 김이김이나 조원들과 함께 더 열심히 공부해서 나중에 이 작성물을 다시 본다면 이걸 어려워했던 스스로를 부끄러워 할 정도로 실력을 쌓고 싶다 :)


  • 작성자: 김민혁
  • 작성일: 3/11
  • 진도: [2-2] 문자열 포매팅

<문자열 포매팅>

문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.

1. 숫자 바로 대입

>>> "I eat %d oranges." % 4

'I eat 4 oranges.'

문자열 안의 숫자를 넣고 싶은 자리에 %d 문자를 넣어 주고 삽입할 숫자는 가장 뒤의 %에 둔다.

여기서 %d는 '문자열 포맷 코드'라고 부른다.

2. 문자열 바로 대입

>>> "I eat %s oranges." %"six"

'I eat six oranges' 

문자열을 넣기 위해서는 %s를 써야한다.

3. 2개 이상의 값 넣기

>>> number = 4
>>> CODE = "six"
>>> "I ate %d oranges. so I was sick for %s days." %(number, CODE)

'I ate 4 oranges. so I was sick for six days.'

2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 쉼표(,)로 구분하여 각각의 값을 넣어 주면 된다.

 

<문자열 포맷 코드>

정수와 문자열 외에도 다양한 것을 대입할 수 있다.

여기서 %s 포맷 코드는 어떤 형태의 값이든 변환해 넣을 수 있다.

 

<포맷 코드와 숫자 함께 사용하기>

1.정렬과 공백

>>> "%10s" % "CODE"

'          CODE'

%10s는 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨 두라는 의미이다.

반대로 %-10s는 왼쪽정렬이다.

2.소수점 표현하기

>>> "%0.4f" % 2.324342

'2.3243'

'.'은 소수점 포인트, 그 뒤의 숫자는 소수점 뒤에 나올 숫자의 개수를 말한다. 소수점 포인트 앞의 숫자는 문자열의 전체 길이를 의미하는데 이 숫자가 0이라면 길이에 상관하지 않겠다는 의미이다.

 

<format함수를 사용한 포매팅>

문자열의 format함수를 사용하면 좀 더 발전된 스타일로 문자열 포맷을 지정할 수 있다.

1. 숫자 바로 대입하기

>>> "I eat {0} oranges" .format(4)

'I eat 4 oranges.'

2. 문자열 바로 대입하기

>>>"I eat {0} oranges." .format("six")

'I eat six oranges.'

3. 2개 이상의 값 넣기

>>> number = 10
>>> CODE = "six"
>>> "I ate {0} oranges. so I was sick for {1} days." .format(number, CODE)

'I ate 10 apples. so I was sick for three days'

2개 이상의 값을 넣을 경우, 문자열의 {0}, {1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.

4. 이름으로 넣기

>>> "I ate {number} oranges. so I was sick for {CODE} days." .format(number=10, CODE=3)

'I ate 10 apples. so I was sick for three days'

{0}, {1}과 같은 인덱스 항목 대신 {name} 형태를 사용하는 방법도 있다.

{name} 형태를 사용할 경우, format 함수에는 반드시 name=value와 같은 형태의 입력값이 있어야 한다.

5. 정렬

:<10을 사용하면 치환되는 문자열을 왼쪽으로 정렬하고 문자열의 총 자릿수를 10으로 맞출 수 있다.

:>오른쪽 정렬, :^가운데 정렬

6. 공백 채우기 

>>> "{0:?<10}" .format("CODE")

'CODE???????'

정렬할 때 공백 문자 대신 지정한 문자 값으로 채워 넣을 수도 있다. 채워 넣을 문자 값은 정렬 문자 <,>,^ 바로 앞에 넣어야 한다. 

7. 소수점 표현하기

>>> y = 2.32144242
>>> "{0:0.4f}" .format(y)

'2.3214'

 

 

<f문자열 포매팅>

문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있다.

>>> name = '김코드'
>>> age = 3
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'

'나의 이름은 김코드입니다. 나이는 3입니다.

f 문자열 포매팅은 표현식을 지원하기 때문에 다음과 같은 것도 가능하다.

>>> age =3
>>> f'나는 내년에 {age + 1}살이 된다.'

'나는 내년에 4살이 된다.'

 

<문자열 관련 함수들>

문자열 자료형은 자체적으로 함수를 가지고 있다. 이들 함수를 다른 말로 '문자열 내장 함수'라고 한다. 이 내장 함수를 사용하려면 문자열 변수 이름 뒤에 '.'를 붙인 후 함수 이름을 써 주면 된다.

문자 개수 세기 - count

위치 알려 주기 - find, index

문자열 삽입 - join

소문자를 대문자로 바꾸기 - upper

대문자를 소문자로 바꾸기 - lowe

왼쪽 공백 지우기 - istrip

오른쪽 공백 지우기 - rstrip

양쪽 공백 지우기 - strip

문자열 바꾸기 - replace

문자열 나누기 - split


  • 작성자: 김서현
  • 작성일: 3/11
  • 진도: [2-3] 리스트 자료형

📌리스트란 무엇일까?

데이터를 잘 관리하기 위해 묶어서 관리할 수 있는 자료형 중의 하나를 뜻한다.

그렇다면 리스트는 어떻게 만들고 어떻게 사용할까?

 

리스트명 = [요소 1, 요소 2, 요소 3 ...]

 

📌리스트의 인덱싱

 

a[0]은 리스트 a의 첫번째 요솟값을 의미한다.

a[0] : 서현 / a[1] : 민정 / a[2]: 나은,/ a[3]: 한세 / a[4]: 민혁 / a[5]: 현석

 

<리스트 안에 또 다른 리스트 만들기>

리스트 안에 [ ]를 사용하여 또 다른 리스트를 추가할 수 있다. 

 

a[-1]은 마지막 요솟값인 [서현”, “민정”, “나은”, “한세”, “민혁”, “현석”]을 나타낸다.

따라서, 위와 같은 방법으로 리스트 안에 또 다른 리스트를 계속해서 추가할 수 있다.

 

📌리스트의 슬라이싱

슬라이싱이란, 잘라낸다는 뜻으로 리스트의 일부만 꺼내어 출력하는 것을 뜻한다.


슬라이싱을 할 때에는 2가지의 방법이 있다. 

첫번째 방법: 
으로 0번째 순서부터 3번째 순서까지 슬라이딩한다로 [0:3]이라고 입력할 수 있다. 
두번째 방법:
으로 처음부터 3번째 순서까지, 3번째 순서부터 마지막까지 슬라이딩한다로 [:3]으로 입력할 수 있다.

 

따라서 슬라이싱을 할 때에는 >>:<< 를 사용하여 리스트 중 필요한 일부만 잘라내어 출력할 수 있다. 

 

<중첩된 리스트에서 슬라이싱하기>

리스트가 포함된 중첩 리스트 역시 슬라이싱 방법을 똑같이 적용하면 된다.

 

📌리스트 연산하기

 

a와 b의 리스트가 다음과 같다고 가정

<리스트 더하기 (+)>

+를 통해 리스트를 합치는 기능을 한다. 

 

<리스트 반복하기 (*)>

리스트가 입력하는 n회만큼 반복되어 새로운 리스트를 만들어 낸다.

 

<리스트 길이 구하기 (len)>

리스트의 길이를 구하기 위해서는 len 함수를 사용해야 한다.

 

⚠️주의사항⚠️

# 범하기 쉬운 리스트 연산 오류 

리스트에서 연산을 할 때 정수와 문자열은 서로 더할 수 없기 때문에, str을 사용하여 정수나 실수를 문자열로 바꾸어야 한다.


 

📌리스트의 수정과 삭제

 

리스트의 값은 수정하거나 삭제할 수 있다.

 

<리스트의 값 수정하기>

 

a[0]의 요솟값이 "group 1"에서 "group 2"로 바뀌었다.

<리스트 요소 삭제하기 (del)>

 

delete의 del을 사용하여 a[x] x번째 요솟값을 삭제하는 것이다. 위 예시에서는 a[1]의 요소인 >슬기<를 삭제했다.

 

위에서 살펴봤던 슬라이싱 기법을 사용하여 여러 개를 한꺼번에 삭제할 수도 있다.

del a[:2]라고 입력한다면, 처음부터 a[2]에 해당하는 리스트의 요소들이 삭제된다. 

 

이 외에도  remove와 pop 함수를 사용할 수 있다. 

 

📌리스트 관련 함수

<리스트에 요소 추가하기 - append>

append는 덧붙이다, 첨부하다의 뜻으로 리스트의 맨 마지막에 추가된다.

즉, append(4)라고 한다면 리스트의 맨 마지막에 4를 추가하는 함수이다. 

 

<리스트 정렬 - sort>

sort 함수는 리스트의 요소를 순서대로 정렬한다.

 

가나다 순뿐만 아니라, abc / 숫자 요소를 모두 순서대로 정렬한다.

 

<리스트 뒤집기 -  reverse>

reverse는 리스트를 역순으로 뒤집는다. 리스트 요소들을 순서대로 정렬한 후에 역순으로 정렬하는 것이 아닌,

현재의 리스트를 그대로 뒤집는다.

 

📌인덱스 반환 - index

index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값을 리턴한다.
리스트 내의 각각 데이터에는 순서가 있고 이것을 인덱스라고 한다. 

< 리스트 요소 삽입 -  insert >

a번째 위치에 b를 삽입하는 함수이다.

 

위 예시는 0번째, , 첫번째 순서에 “group 1”을 삽입하라는 뜻이다.

0번째 순서가 아닌 3번째 순서에 삽입하고 싶다면, a.insert(3, “group 1”) 라고 입력하면 된다.

 

< 리스트 요소 제거 -  remove >

Remove(x)는 리스트에서 첫번째로 나오는 x를 삭제하는 함수이다.

 

첫번째 리스트에서 “group 2”를 삭제하고 싶으면, a.remove(“group 2”)로 삭제할 수 있다.

 

< 리스트 요소 끄집어내기 -  pop >

pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.

 

맨 마지막 요소인 group 1을 리턴하고 group 1 요소를 삭제한다.

 

또는,

a.pop(1)을 사용하여 요솟값이 1인 group 2를 리턴 후 제거한다.

 

< 리스트에 포함된 요소 x의 개수 세기 - count >

count는 리스트 안에 요소가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수이다. 

 

"김"이라는 값이 리스트 a에 4개 들어있으므로 4를 리턴한다.

< 리스트 확장 - extend >

Extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.

 

한 숫자, 문자열만 추가할 수 있는 것이 아닌 리스트 자체를 추가할 수 있다. 


📌느낀점

 

 

 


  • 작성자: 김민혁
  • 작성일: 3/11
  • 진도: [2-4] 튜플자료형

튜플은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.

1. 리스트는 [], 튜플은 ()로 둘러싼다.
2. 리스트는 요소값의 생성, 삭제, 수정이 가능하지만, 튜플은 요소값을 바꿀 수 없다.

 

<튜플은 어떻게 만들까?>

 

튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있다.

t2 = (1,)처럼 단지 1개의 요소만을 가질 때에는 요소 뒤에 쉼표를 반드시 붙여야 한다.

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

 

프로그램이 실행되는 동안 요소값이 항상 변하지 않기를 바란다면 튜플을 사용해야 한다.

 

<튜플 다루기>

1. 인덱싱하기

2. 슬라이싱하기

3. 튜플 더하기

4. 튜플 곱하기

5. 튜플 길이 구하기


  • 작성자: 이나은
  • 작성일: 3/11
  • 진도: [2-5] 딕셔너리 자료형

📌딕셔너리

우리가 사전을 보면 단어와 뜻이 한 쌍으로 이루어져 있듯,

딕셔너리는 Key와 Value가 한 쌍인 자료형을 말한다.

리스트나 튜플과 달리 Key를 통해 바로 Value를 도출할 수 있다는 특징이 있다.

 

 

 

📌딕셔너리 생성

 <기본 딕셔너리 생성>

그렇다면 딕셔너리를 어떻게 생성하는지 알아보자.

{Key1: Value1, Key2: Value2, Key3: Value3 ... }

       

딕셔너리는 다음과 같이 Key와 Value 가 쌍을 이루어 {} 안에 들어가 있는 형태이다.

각 쌍은 쉼표로 구분한다.

 

그렇다면 예시로 딕셔너리를 하나 만들어 진행해보자.

 

이 딕셔너리는 Key에  'name', ' activity', 'date'가 들어가 있고

각각에 해당하는 Value는 'CODE', 'pythonstudy', '0310' 이다.

이 파트에서는 해당 딕셔너리를 이용해 설명을 이어간다.

 

* 참고로 Key에는 정숫값과 문자열, Value에는 정숫값, 문자열, 리스트도 사용 가능하며

dic 자리에는 본인이 원하는 문자를 입력하면 된다.

 

 

위와 같이 dic[Key1] = Value1 방식을 사용해 쌍을 추가할 수도 있으며

 

 

del dic[Key1] 방식을 사용해 쌍을 삭제할 수도 있다.

 

 

📌딕셔너리의 활용

그렇다면 딕셔너리는어떻게 활용될까?

이를 알기 위해 딕셔너리의 사용법을 조금 더 알아보자.

 

 

위와 같이 dic[Key1] 형식을 이용해 Key에 해당하는 Value를 반환할 수도 있다.

이때 []는 리스트와 튜플의 []와 완전히 다른 것이며 [] 안에 있는 것은

그저 Key를 표현한 것 뿐이다.

 

⚠️주의사항⚠️

# 중복되는 Key 사용

중복되는 Key를 사용하면 나머지가 모두 무시된다는 것에 주의하자.

위와 같이 '부원' 이라는 중복된 Key를 사용했더니 '나은' 이라는 Value는 무시된 것을 볼 수 있다.
# Key에는 리스트 사용 불가

위 사진을 보면 Key에 리스트를 넣었을 때 오류가 발생하는 것을 볼 수 있다.
잠깐 언급했듯 Key에는 리스트를 사용할 수 없다. 하지만 Value에는 변수를 제외한 아무 값이나 
넣을 수 있다.

 

 

📌딕셔너리 관련 함수

딕셔너리는 자체적으로 가지고 있는 함수들이 있다.

여기에서는 그 함수들에 대해 알아보도록 하자.

 

 <Key와 Value 리스트 만들기>

 

dic.keys()는 dic에 있는 Key만을 모아 dict_keys 객체를 리턴한다.

 

 

위와 같이 list(dic.keys())를 이용하여 dict_keys 객체를 리스트로

변환할 수도 있다.

 

 

마찬가지로 Value도 dic.values, list(dic.values()) 를 활용하여

dict_values 객체를 리턴하거나 리스트로 변환이 가능하다.

 

<Key와 Value 쌍>

이번에는 Key와 Value를 쌍으로 결과를 얻는 법을 알아보자.

위와 같이 items 함수를 사용하면 Key와 Value 쌍을 튜플로 묶은 값이

dict_items 객체로 반환되는 것을 볼 수 있다.

 

또, Key와 Value 쌍을 모두 지우고 싶을 때는 clear 함수를 이용하여 딕셔너리 안의

모든 요소를 삭제할 수도 있다.

 

<Key로 Value 얻기>

다음은 get(x) 함수이다. 이 함수는 Key에 해당되는 Value를 반환하는데,

앞에서 본 dic[key1]과 결괏값이 같은 것을 확인할 수 있다.

 

하지만 위 사진의 예제를 보자.

여기서는 nokey라는, 딕셔너리에 없는 Key에서 값을 가져오도록 하였는데

dic.get['nokey']는 None을 반환하고, dic['nonkey']는 오류가 발생한다는 특징이 있다.

 

<Key가 딕셔너리에 있는지 조사하기>

 

위 사진에서 'name' 문자열은 dic 딕셔너리의 Key 중에 하나이기 때문에

'name' in dic을 호출하였을 때 True가 반환되었다.

하지만 'member' 문자열은 Key가 아니기 때문에

'member' in dic을 호출하면 False가 반환된 것이다.

이처럼 in dic을 활용하면 원하는 Key가 딕셔너리에 있는지 조사할 수도 있다.


📌느낀점

뒤로 갈수록 다양한 자료형이 나오고 이해하기 어렵거나 중간에 코드를 작성해보면서 오류가 발생하는 등

힘든 점도 있었다. 하지만 제대로 코드를 입력했을 때 내가 원하는 결과값이 나와서 정말 뿌듯하고 흥미로웠으며, 이를

활용해 어떤 문제를 또 해결할 수 있을지 궁금해졌다. 1주차 스터디 내용을 복습하며 2주차 내용도 열심히 학습하고,

조원들과 함께 여러가지 내용을 공유하며 더 성장하고 싶다.