안뇽하세오. 서루태에오~
오늘도 빡코딩 해보아요!!

시퀀스 데이터 타입 (Sequence Types)
1, '삼성' 처럼 하나의 값이 아니라 여러개의 값을 묶으면 수열, 문자열이 생성
시퀀스 데이터 타입 안에는 리스트(list), 튜플(tuple) 형식 등으로 분류돼요
리스트(list)
alpha = ['a', 'b', 'c']
abc라는 문자열 3개를 alpha라는 변수로 선언해요
type( )함수로 확인 해보면 list라는 형식을 가지겠죠?
하나만 짚고 넘어가죠!
iterable = 반복할 수 있는 값, 문자열도 리스트도 여기 속해요.
다시말해 "연달아 있는" 속성을 가진 값들을 칭해요
.append() 와 .extend()
.append는 리스트에 '값 하나'를 추가해요
.extend는 리스트에 '리스트'를 추가해요
인덱싱(indexing) 과 슬라이싱(slicing)
인덱싱 : list[0] 리스트의 0번 인덱스 출력해요 (하나 출력)
슬라이싱 : list[0:5:2] 리스트의 0번부터 5번에 다다르기 전까지 두스텝 마다 출력해요 (여러개 출력)
슬라이싱에 있어서 추가학습을 해 볼게요
슬라이싱은 list[start:end:step]의 문법을 가지고 있어요
이때 start와 end에 값이 주어지지 않는다면
"최대치"라고 생각하면 좋을 것 같아요
ex)
list[::1] : list의 처음부터 끝까지 1step으로 출력해라~
list[0::1] : list 0부터 끝까지 1step으로 출력해라~
*** 음수의 인덱스는 어떻게 출력 되는가 ? ***
list = [1,2,3,4,5]
list[-1]
인덱스가 -1이면 출력은 ?
=> [ 5 ]
역순으로 출력하게 된다 ! 인덱스는 다음과 같아요
0 1 2 3 4
-5 -4 -3 -2 -1
앞에서 배운 개념을 응용하면
list[::-1]은 어떻게 출력될까요?
[5,4,3,2,1] 이렇게 역순으로 출력된답니다!
심화 설명으로 넘어가 볼까요?
리스트의 동작 과정
a = [1,2,3]
위의 식처럼 a라는 변수를 선언하게 되면
프로그램 내부적으로는 다음과 같아요
a라는 변수는 리스트가 들어있는 첫번째 메모리를 가리키는 거에요
그러니 a[0]은 자기 자신에서 0만큼 떨어진 곳, 1을 가리켜요
a[1]은 똑같이 1만큼 떨어진 곳, 2를 가리키겠죠?
리스트 값의 수정 & 삭제
리스트 값의 수정을 먼저 알아볼게요
a = [1,2,3]으로 선언해줄게요
a[1]인 2를 4로 바꾸고 싶다!
단순하게 a[1] = 4 라고 선언 해주시면 돼요
a = [1,2,3]
a
=> [1,2,3]
#2를 4로 바꿔주세요
a[1] = 4
a
=> [1,4,3]
그러면 삭제도 배워볼까요?
삭제는 "del"이라는 연산자를 사용해요
사용법은 다음과 같아요
salary[1,2,3,4,5]
del salary[3] #salary의 인덱스3을 선택 -> 선택한 값을 del(삭제)
salary
=> [1,2,3,5]
salary[3]을 선택해서 단순하게 없애주는 과정이랍니다
[1,2,3,4,5] => [1,2,3,5]
손쉽게 삭제가 됩니다!
range( )를 활용한 수열 만들기
range(start,stop,step) , range(stop)
연속적인 수열을 만들때는 range() 를 활용해요
예시를 하나 들어볼게요
range(0,10,2)
라고 한다면
0부터 9까지 2step띄워진 수열을 가지는거에요
x = range(0,10,2)
list(x)
=> [0, 2, 4, 6, 8]
range는 그 자체로 출력하게 되면 값이 열거되지 않아요.
값을 나열하고 싶다면 list로 타입 변환을 해주세요!
list의 다양한 연산자
연산자 in, not in
in과 not in은 직관적이에요
3 in [1,2,3]
=> True
3 in [1,2,4]
=> False
주어진 리스트에 3이 있는가? 없는가?를 판단해서
"논리형 타입"으로 출력해줘요
다차원 리스트 이해하기
**리스트 안에 리스트가 들어갈 수 있어요!**
list = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
리스트 안에 리스트를 넣어 2차원 리스트가 되었답니다
그럼 2차원 리스트 안의 특정 값을 어떻게 뽑아낼까요?
list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
이렇게 있다면 기존 방식과 똑같이
list[0]은 첫번째 인덱스인 [1,2,3]이겠죠 ?
임의의 변수 x를 list[0]으로 선언할게요
x = [1,2,3] 이랑 같은 뜻이겠지요
x[0]은 1이라는걸 알 수 있어요
이를 종합하면
list[0][0]은 1이 나온다! 와 같은 말이에요
n차원 리스트에서의 인덱싱, 여러분도 할 수 있어요!
튜플(Tuple)
튜플은 리스트와 유사하지만
아주 특별한 특징이 하나 있어요.
한 번 선언된 튜플은 수정이 불가해요
salary = (5000, 6000, 7000, 6000, 9000)
salary[3:5]
=> (6000,9000)
salary[0] = 5000
=> TypeError: 'tuple' object does not support item assignment
우선 튜플은 소괄호로 묶어 선언합니다
리스트같이 인덱싱이나 슬라이싱도 가능해요
하지만 여기서 수정이나 삭제를 하려고 하면 TypeError가 나요
'튜플'은 수정이 불가하다고 나온답니다!
맵핑 데이터 타입 (Mapping Types)
딕셔너리
딕셔너리는 키(key) 와 값(value) 을 연결한 쌍 을 활용해서 여러 값을 구분해서 저장
딕셔너리는 중괄호 { }를 활용하고 아래와 같은 방법으로 생성합니다.
{'key1':'value1', 'key2':'value2', 'key3':'value3', ...}
리스트는 인덱스로 값을 출력했다면
딕셔너리는 key값으로 value를 불러와요
그 방법으로 두가지가 존재하는데요!
1. 대괄호를 활용한 선택
2. 메서드 get()을 활용한 선택
* get()은 틀린 key값이 입력되어도 오류가 발생 하지 않아요*
출력을 위해 대괄호 사용문법부터 볼게요
this_lecture = {'과정':'Python 기초', '도구':'Jupyter Notebook', '기간':'4일'}
this_lecture['과정']
=> 'Python 기초'
대괄호 안에 key값을 넣어서 출력합니다
출력을 위해 .get()은 어떻게 쓰는지도 볼게요
this_lecture = {'과정':'Python 기초', '도구':'Jupyter Notebook', '기간':'4일'}
this_lecture.get('과정')
=> 'Python 기초'
메소드 형식으로 get('key')를 써주시면 돼요
딕셔너리 쌍을 수정하고 싶다면 어떻게 할까요?
this_lecture['기간'] = '5일'
this_lecture
=>{'과정': 'Python 기초', '도구': 'Jupyter Notebook', '기간': '5일'}
앞서 선언한 딕셔너리에 key값의 value를 재선언 해주는거에요
기간의 value가 '4일'에서 '5일'로 바뀌었죠?
딕셔너리 쌍을 추가할 수도 있어야겠죠?
this_lecture['수강인원'] = 20
this_lecture
=> {'과정': 'Python 기초', '도구': 'Jupyter Notebook', '기간': '5일', '수강인원': 20}
기존에 없었던 key값을 선언해주면
딕셔너리에 새로운 key값과 value가 생겼어요
딕셔너리에 쌍을 삭제하고 싶을땐 이전에 배운 del 연산을 써요
del this_lecture['수강인원']
this_lecture
=> {'과정': 'Python 기초', '도구': 'Jupyter Notebook', '기간': '5일'}
아까 추가했던 '수강인원' key가 없어진 걸 확인할 수 있어요
딕셔너리에서 key값만을 출력하고싶다면?
this_lecture.keys()
=> dict_keys(['과정', '도구', '기간'])
this_lecture.values()
=> dict_values(['Python 기초', 'Jupyter Notebook', '5일'])
this_lecture.items()
=> dict_items([('과정', 'Python 기초'), ('도구', 'Jupyter Notebook'), ('기간', '5일')])
.keys() 메소드를 사용해서 key값들을 불러올수 있어요
value만 불러올수도, key와 value모두 불러올 수도 있답니다!
제어문 - if 조건문
if 조건문
if를 활용하여 특정 상황에서만 명령을 실행하려고 할때
사용할 수 있는 문법은 if , elif, else 이렇게 세가지에요.
모든 조건문의 주의사항은 들여쓰기를 맞춰줘야 해요
score=80
if score >=80: #score가 80이상이면 ~ 아래꺼 실행.
print('합격')
=> '합격'
if로 조건을 걸어주는 거에요
score=10
if score >=80: #조건이 참일때~ 아래꺼 실행
print('합격')
else: #조건이 거짓일때~ 아래꺼 실행
print('탈락')
=> '탈락'
if와 else를 같이써서 조건이 참일때와 거짓일때 모두 명령 해줘요
score = 100
if score == 0: #0이면~ 이거
print('미응시')
elif score >=80: #0이 아니고 80보다 크면~
if score == 100: #그중에서도 100이면~
print('Ex')
else: #0이 아니고 80보다 크고 100은 아니면~
print('합격')
else: #위에 있는 조건 모두 아니면~
print('탈락')
=> 'Ex'
if, elif, else 모두 써줄게요
그럼 조건들을 여러개 달아줄 수 있겠죠!
물론 조건 안에 조건을 넣을 수도 있답니다
제어문-match
match는 반복적인 '==' 연산을
보다 쉽게 수행하기 위해 사용해요
num = 4
match num:
case 1: # num==1
print('1번 선택')
case 2: # num==2
print('2번 선택')
case 3: # num==3
print('3번 선택')
case _: # num이 1,2,3 모두 아닐때
print('잘못된 입력입니다.')
(참고로 match문은 3.10버전 이후에 새로 생겼어요)
반복문
반복문에는 for, while이 있어요
반복하려는 대상과 구간을 지정하고
반복하려는 명령을 실행해주면 끝!
개념은 매우 쉬워요 ,,^^,,
반복하려는 횟수가 늘수록 함수를 n번 호출하는건 힘들겠죠...!
그래서 반복문을 사용하는거에요
기본적인 for문의 문법은 다음과 같습니다
for i in [1,2,3]: #i에 1을 저장,출력 / 2를 저장,출력 / 3을 저장,출력
print(i)
=> 123
for문을 이용하면 리스트나 일련의 값들의 합도 쉽게 구할 수 있어요
total = 0
for i in [11,12,13]:
total += i
print(f'합계는 {total}입니다.')
=> 합계는 36입니다.
for문에는 반복되는 대상의 수가 한개 이상이어도 된답니다
my_data = {'이름': '설우태', '나이': 23, '지역': '대전'}
for key,value in list(my_data.items()):
print(f'{key} : {value}')
=>
이름 : 설우태
나이 : 23
지역 : 대전
my_data.items 메소드는
dict_items([('이름', '설우태'), ('나이', 23), ('지역', '대전')])
이렇게 key값과 value값 전부를 포함하는 데이터랍니다
그렇기에 key에는 '이름', '나이', '지역'이 들어가고
value에는 '설우태', '23', '대전'이 들어가게 돼요
여기까지가 2일차 파이썬 기초강의였습니다!
다들 글에서 봐요~~!

'ABC 부트캠프' 카테고리의 다른 글
[5일차] ABC 부트캠프 - 파이썬 기초 #4 (재귀함수,내장 함수, 표준 라이브러리) (1) | 2024.06.28 |
---|---|
[4일차] ABC 부트캠프 - 파이썬 기초 #3 ( 제어문 & 연습 예제, 함수) (2) | 2024.06.27 |
[2일차] ABC 부트캠프 - 파이썬 기초 #1 (변수와 타입, 함수와 메서드) (2) | 2024.06.25 |
[1일차] ABC 부트캠프 - OT (0) | 2024.06.24 |
ABC 부트캠프 - 면접 후기 (0) | 2024.06.23 |