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

[2조:ACE] Python 스터디 #1

by 문하진 2024. 3. 11.

 
2조 - 강수환 고정윤 문하진 박무준 최정우 최혜윤


3/11
작성자: 문하진
진도: ~02-5


01장 파이썬이란 무엇인가?

[01-1]~[01-3] 파이썬이란?
파이썬은 문법이 쉽고 간결하여 사람의 사고 체계와 닮아있다는 특징이 있다. 컴퓨터 프로그래밍을 교육할 때뿐만 아니라 기업에서 실무를 할 때도 파이썬을 많이 사용하는 추세다. 파이썬을 활용하면 웹 프로그래밍, 인공지능과 머신러닝 프로그래밍, 데이터 분석, 데이터베이스 프로그래밍 등을 할 수 있지만  시스템과 밀접한 프로그래밍이나 모바일 프로그래밍은 할 수 없다. 
 

[01-4]~[01-6] 파이썬 기초 문법 둘러보기

  • 사칙연산

(+, -, /, *) 의 기호를 활용하여 사칙연산을 수행할 수 있다. 

print(1 + 2)
3
print(2 * 8)
16
  • 변수 대입

변수에 문자, 숫자를 대입하여 계산/출력 할 수 있다. 

a = 1
print(a)
1
b = "Python"
print(b)
Python

 

02 파이썬 프로그래밍의 기초, 자료형

[02-1]~[02-2] 파이썬 문법
 

  • 숫자형(Number): 정수형(integer), 실수형(float), 8진수와 16진수 

x의 y 제곱을 나타내는 ** 연산자

print(3 ** 4)
81

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

print(7 % 3)
1

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

print(7 // 4)
1

 
복합연산자: +,-와 같은 산술 연산자와 대입연산자(=)를 합쳐 놓은 것이다. 
 

  • 문자열 자료형 : "문자열", '문자열', """문자열""", '''문자열''' 

문자열에 큰/작은 따옴표 포함하기

a = "Python's favorite food is perl"
b = '"Python is easy." he says.'
c = 'Python\'s favorite food is perl'

여러줄 문자열 만들기

multiline = "Life is too short\nYou need python"
multiline = '''
            Life is too short
            You need python'''
  • 문자열 인덱싱

*파이썬은 0부터 숫자를 센다

a = "Life is too short, You need Python"
print(a[0])
L
print(a[-2])
o
  • 문자열 슬라이싱
a = "Life is too short, You need python"
b = a[0] + a[1] + a[2] + a[3]
print(b)
Life

a[0:4]는 a 문자열에서 자리 번호 0부터 4까지의 문자를 뽑아낸다는 뜻이다. 이때 4 자리의 문자는 포함시키지 않는다. 
a[시작_번호:끝_번호]에서 끝 번호를 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아내며 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.

a = "Life is too short, You need python"
print(a[0:4])
Life
  • 문자열 포매팅

%d : 숫자 바로 대입
%s : 문자열 바로 대입

print("I eat %d apples." % 3)
I eat 3 apples.
print("I eat %s apples." % "five")
I eat five apples.

 format함수 사용한 포매팅

print("I eat {0} apples".format(3))
I eat 3 apples
print("I eat {0} apples".format("five"))
I eat five apples
  • f문자열 포매팅

문자열 앞에 f접두사를 붙이면 f문자열 포매팅 기능을 사용할 수 있다. 표현식(중괄호 안의 변수를 계산식과 함께 사용하는 것) 사용도 가능하다.

age = 21
print(f'나는 내년이면 {age + 1}살이 된다.')
나는 내년이면 22살이 된다.
  • 문자열 관련 함수들

1. 문자 개수 세기-count
a.count('b')
a 문자열 중 문자 b의 개수를 리턴한다
 
2. 위치 알려주기(1)-find
a.find('b)
a 문자열 중 문자 b가 처음으로 나온 위치를 반환한다. 찾는 문자가 없다면 -1을 반환한다.
 
3. 위치 알려주기(2)-index
a.index('b')
a 문자열 중 문자 b가 처음으로 나온 위치를 반환한다. 찾는 문자가 존재하지 않으면 오류가 발생한다. 
 
4. 문자열 삽입-join
",".join('abcd')
abcd 문자열의 각각의 문자 사이에 ,를 삽입한다.
 
[02-3] 리스트 자료형

  • 리스트는 어떻게 만들까?

리스트명 = [요소1, 요소2, 요소3, ...]
리스트는 숫자, 문자열을 요솟값으로 가질 수 있으며 숫자와 문자열을 함께 가질 수도 있다.

  • 리스트의 인덱싱과 슬라이싱

리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.

a = [1, 2, 3]
print(a[0] + a[2])
4
a = [1, 2, 3, 4, 5]
print(a[0:2])
[1, 2]
  • 리스트 연산하기

리스트 역시 +를 사용해서 더할 수 있고 *를 사용해서 반복할 수 있다

a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
[1, 2, 3, 4, 5, 6]
print(a * 2)
[1, 2, 3, 1, 2, 3]
  • 리스트의 수정과 삭제

del a[x]는 x번째 요솟값을 삭제한다. del a[2:]처럼 슬라이싱 기법으로 리스트의 요소 여러 개를 한꺼번에 삭제할 수도 있다.

a = [1, 2, 3]
a[2] = 4
print(a)
[1, 2, 4]
-------------
print(del a[1])
[1, 3]
  • 리스트 관련 함수

1. 리스트에 요소 추가-append
a.append(x)는 a라는 리스트의 맨 마지막에 x를 추가한다.
 
2. 리스트 정렬-sort
a.sort()는 a 리스트의 요소를 순서대로 정렬해준다.
 
3. 리스트 뒤집기-reverse
a.reverse()는 a 리스트를 역순으로 뒤집어 준다. 
 
4. 인덱스 반환-index
a.index(3)은 a에 있는 숫자 3의 위치를 리턴한다.
 
5. 리스트에 요소 삽입-insert
a.insert(0, 5) a의 0번째 위치에 5를 삽입한다.
 
[02-4] 튜플 자료형
튜플은 몇 가지 점을 제외하곤 리스트와 거의 비슷한데 다른 점은 다음과 같다
-리스트는 [], 튜플은()으로 둘러싼다
- 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만 튜플은 요솟값을 바꿀 수 없다.

  • 튜플은 어떻게 만들까?

t1 = (1, 2, 3)
튜플에서는 1개의 요소만을 가질 때에도 뒤에 ,를 붙여야하며 소괄호를 생략해도 된다.

  • 인덱싱/슬라이싱하기
t1 = (1, 2, 'a', 'b')
print(t1[0])
1
--------------------
print(t1[1:])
(2, 'a', 'b')
  • 연산하기

각 튜플의 요솟값이 바꾸는 것이 아닌 새로운 튜플을 생성한 것이다.

t1 = (1, 2, 'a', 'b')
t2 = (3, 4)
t3 = t1 + t2
print(t3)
(1, 2, 'a', 'b', 3, 4)
---------------------------
t4 = t2 * 2
print(t4)
(3, 4, 3, 4)

 
[02-5] 딕셔너리 자료형
딕셔너리는 key와 value를 한 쌍으로 가지는 자료형이다. 
딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 key를 통해 value를 얻는다. 

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

{Key1: Value1, Key2: Value2,...}
Key와 Value의 쌍 여러 개가 {}로 둘러싸여 있다. 

  • 딕셔너리 쌍 추가/삭제
a = {1: 'a'}
a[2] = 'b'
print(a)
{1: 'a', 2: 'b'}
----------------
del a[1]
print(a)
{2 : 'b'}
  • 딕셔너리에서 Key를 사용해 Value 얻기

리스트나 튜플, 문자열은 요솟값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했지만 딕셔너리는 1가지 방법뿐이다. Key를 사용해서 Value를 구하는 방법이다. 

a = {1: 'a', 2:'b'}
print(a[1])
a

a[1]이 의미하는 것은 리스트나 튜플에서와 전혀 다르다. 딕셔너리 변수에서 [] 안의 숫자 1은 두 번째 요소를 나타내는 것이 아니라 Key에 해당하는 1을 나타낸다.

  • 딕셔너리 관련 함수

1.  Key 리스트 만들기-keys
a.keys()는 딕셔너리 a의 key 만을 모아 dict_keys 객체를 리턴한다.
 
2. Value 리스트 만들기-values
a.values()는 Key를 얻는 것과 마찬가지로 value 만을 모아 dict_values 객체를 리턴한다.
 
3. Key로 Value 얻기-get
a.get('name') 는 a['name']을 사용했을 때와 동일한 결괏값을 리턴한다. 
 


#1주차 질문 및 소감

  • 질문

Q1. 01-2 c언어가 파이썬이랑 뭐가 다른가?
c언어는 시스템 프로그래밍, 임베디드 시스템, 게임 개발 등에 활용되거 파이썬은 웹 개발, 데이터 분석, 인공지능, 스크럽팅 등에 주로 사용된다. 파이썬은 들여 쓰기를 사용하여 코드 블록을 나타내지만 C언어는 중괄호를 사용하여 정의하고 ;을 사용하여 문을 구분한다. 또 파이썬은 스크럽트 언어로 프로그램을 실행할 때 한 줄씩 해석하고 실행하여 사용자가 바로 결과를 확인해볼 수 있지만 C언어는 복잡한 과정을 거치며 오류 발생 시 확인이 어렵다.

  • 소감

튜플은 삭제를 못하는 것이 리스트와 차별점이 있어서 신기했고 데이터를 다룰 때 딕셔너리를 유용하게 쓰고 싶다는 생각을 했습니다. 역슬래시를 입력하는 방법을 알게 되었고 파이썬의 기초 문법들을 익힐 수 있는 시간이었습니다.