본문 바로가기
언어/Python

[유튜브 나도코딩 1분파이썬] 100분완성 강의 요약본 #24강~31강

by 바다의 공간 2024. 5. 9.

[24강. 자료형 비교]

  리스트(list) 튜플(t) 세트(s) 딕셔너리(d)
선언 list = [ ] t = ( ) s = { } d ={key:val}
순서보장 x
중복허용 x x
접근 list[idx] t[idx] x d[key]
d.get(key)
수정 d x x ㅇ(value)
추가 append()
insert()
extend()
x add()
update()
d[key] = val
update()
삭제 remove()
pop()
clear()
x remove()
discard()
pop()
clear()
pop()
popitem()
clear()

그래서 ? 이런 자료형은 언제 뭘써야해?

여러 값들을 순서대로 관리해야한다면 ▶ 리스트

값이 바뀔 일이 없거나, 바뀌면 안된다면 ▶  튜플

특정 값의 존재여부가 중요하고 중복을 허용하지 않는 데이터들이면 ▶ 세트

key를 통해서 효율적으로 데이터를 관리하고 싶다면 ▶  딕셔너리 

 

[25강. 자료형 변환]

앞에 적은 튜플은 값이 변경되면 안되는경우에는 튜플을 사용해야한다고 배웠지만

튜플도 수정할 수 있는 방법이 있습니다.

 

튜플을 수정하는 방법
my_tuple = ('오예스', '몽쉘') #기본형
my_list = list(my_tuple) #튜플은 수정할 수 없으니 수정가능한 리스트의 형태로 변경해준다
my_list.append('초코파이') #append메소드를 이용하여 추가,수정 해준다.
my_list = tuple(my_list) #리스트를 다시 튜플형태로 변경해준다.

다시 정리하면

튜플<-->리스트 로 변경하기위해 각 자료형을 감싸면 됩니다.

 

리스트는 중복값이 허용되지만 중복값을 제거해야하는 경우에 사용할 수있는 방법

my_list = ['오예스','몽쉘' ,'초코파이' ,'초코파이' ,'초코파이']

my_set = set(my_list)  #세트는 중복값을 허용하지 않음

my_set = list(my_set) #세트->리스트 변경

print(my_list) #리스트는 순서가 정해져있지 않아서 출력할때마다 다르게 값이 나옴.

 

 

순서가 중요하지 않은 리스트라면 그냥 사용가능하지만.....

순서가 중요한 자료라면? 딕셔너리를 사용 #딕셔너리는 중복x 순서o

my_list = ['오예스','몽쉘' ,'초코파이' ,'초코파이' ,'초코파이']

my_dic = dict.fromkeys(my_list)

print(my_dic) #리스트에서 중복이 제거된 오예스 몽쉘 초코파이를 키로 가지는 새로운 딕셔너리가 생깁니다.

이때 value는 모두 None입니다.

 

my_list = list(my_dic) #딕셔너리를 다시 리스트로 감싸면 key값만 뽑아서 리스트로 다시 변환됨

print(my_list) # ['오예스','몽쉘' ,'초코파이']


[26강. if 조건문1]

지금까지는 위에서 아래로 순서대로 하나씩 모든 문장을 수행했습니다.

그렇지만 프로그램을 만들다보면 모든 문장이 실행될필요는 없습니다. 필요할때만 쓸수 있게끔 만드는것이 바로 if입니다.

if는 만약~라면 조건에 따라서 분기를 태울 수 있습니다.

들여쓰기는 보통 스페이스 4번 or 탭 한번을 누르면 됩니다.

today='일요일'

if today == '일요일':

    print('게임 한 판')

else:

    print('폰 5분만')

print('공부시작')

# 게임한 판

# 공부시작 이 출력됩니다.

 

 

today='화요일'

if today == '일요일':

    print('게임 한 판')

else:

    print('폰 5분만')

print('공부시작')

 

#폰 5분만

#공부시작 이 출력됩니다.

 

[27강. if 조건문2]

elif

앞의 조건이 참이아닐때 다른 조건을 다시 한번 확인하기 위한 용도로 용합니다.

위의 사진처럼 진행된다는점을 알아야한다. 만약~

if today =='일요일'

    pirnt('게임 한 판')

elif today =='토요일'

   print('폰 5분만')

else:

    print('물 한잔')

print('공부시작') 일때

일요일에는 게임한판 공부시작, 토요일에는 폰5분만 공부시작 그외는 물 한잔 공부시작 이 프린트가 됩니다.

 

 

 

[28강. if 중첩]

중첩이란 말 그대로 if문 내에서 또 다른 if문을 사용하는 경우입니다.

축구경기중 옐로우카드가 2개가 된다면 경고누적으로 인한 퇴장이라는 코드를 작성해보려고 한다.

https://www.youtube.com/watch?v=eGEg98j4JQw

if중첩문에 대한 설명50

[29강. for 반복문]

for문의 형식은 이렇습니다.

 

for 변수 in 반복 범위 or 대상

    반복 수행 문장 

입니다. 이렇게보면 저도 나중에 다시볼대 헷갈릴거같아요. 예시에 나온걸로 다시 적어보겠습니다.

 

for x in range(10):  #  10번반복하라는 의미이다

    print('팔 벌려 뛰기 해!')

를 출력하게되면

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

 print('팔 벌려 뛰기 해!')

로 출력됩니다.

 

문장을 살짝 바꿔서

for x in range(10):  #  10번반복하라는 의미이다

    print(f'팔 벌려 뛰기 {x}회!')

for x in range(10):  #  10번반복하라는 의미이다

    print('팔 벌려 뛰기 해!')

를 출력하게되면

팔 벌려 뛰기 0회

팔 벌려 뛰기 1회

팔 벌려 뛰기 2회

팔 벌려 뛰기 3회

팔 벌려 뛰기 4회

팔 벌려 뛰기 5회

팔 벌려 뛰기 6회

팔 벌려 뛰기 7회

팔 벌려 뛰기 8회

팔 벌려 뛰기 9회

로 출력됩니다.

range()는 어떤 범위내의숫자들을 만들어주는 기능을 합니다.

 

[30강. range]

range(10) # 처음부터 ~9까지

range(start, stop) #start 이상 stop 미만

range(1, 10) #1이상 10 미만

range(start, stop, step) #start 이상 stop 미만 step 만큼 증가

range(1, 102) #1 이상 10 미만 2 만큼 증가 

출력값은 1,3,5,7,9

range(2, 10, 2) #2이상 10 미만 2 만큼 증가 

출력값은 2,4,6,8

range(3, 10, 3) #3이상 10 미만 3 만큼 증가 

출력값은 3, 6, 9

 

[31강. for 활용]

for 변수 in 반복 범위 or 대상  

    반복 수행 문장  

 

위에서는 range를 통해 반복 범위를 지정했었고

이번에는 반복 대상을 이용해서 for문을 활용해보겠습니다.

 

반복 대상에는 우리가 자료형을 공부할 때 배웠던 

리스트, 튜플, 딕셔너리가 쓰일 수 있습니다.

대상 list tuple dic
문법 my_list = [1, 2, 3]
for x in my_list:
    print(x)
my_tuple = (1, 2, 3)
for x in my_tuple:
    print(x)
person = {'이름':'나귀욤', '나이':'7', '키':120, '몸무게':23}
for v in person.values():
    print(v)
실행결과 1
2
3

1
2
3

나귀욤
7
120
23
  dic  
문법 person = {'이름':'나귀욤', '나이':'7', '키':120, '몸무게':23}
for k,v in person.items():
    print(k, v)
person = {'이름':'나귀욤', '나이':'7', '키':120, '몸무게':23}
for k in person.keys():
    print(k)
실행결과 이름 나귀욤
나이 7
키 120
몸무게 23
나귀욤
7
120
23

외에도 일반 문자열도 반복문의 대상으로 사용할 수 있습니다.

fruit = 'apple'

for x in fruit:

    prin(x)

실행결과는 

a

p

p

l

e