본문 바로가기
[챌린지]/[패스트캠퍼스] 파이썬 초격차

패스트캠퍼스 환급챌린지 21일차 미션 (2월 21일) : 파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 수강 후기

by 쿠키토끼 2024. 2. 21.

01. 제목

패스트캠퍼스 환급챌린지 21일차 미션 (2월21일) : 
파이썬으로 할 수 있는 모든 것 with 47개 프로젝트 초격차 패키지 Online 수강 후기
 

02. 포스팅 본문 (학습 일기) 가이드

 
1. 학습 인증샷 2장 이상 포함

카메라로 직접 촬영한 수강 인증 사진 (캡쳐X)

 

2. 학습 후기 700자 이상 (공백 제외)

오늘은 함수 실습문제(1)과 (2)를 풀어보았다. 총 3문제를 풀어보았고, 실습문제를 푸는 과정에선 딱히 후기라는 게 없기 때문에 챕처 7의 튜플까지 강의를 듣게 되었다. 아래에 실습과 설명에 대해 정리를 다시 해보았니 참고하고 강사님 말처럼 그냥 무지성으로 따라하기만 하면 얻어가는 게 없으니 코드를 다 지우고 다시 작성하고 문제를 푸는게 중요하다고 하셨지만 따로 복습은 못하였다.

다음 챕터7의 시작 튜플(tuple)의 학습 목표는 튜플의 특징, 튜플 만들기, 튜플을 리스트로 만들기(튜플과 리스트를 왔다 갔다 하는 법), 패킹과 언패킹, 튜플함수까지 알고 가는 시간이다.

튜플의 특징은 시퀀스 자료형(순서가 있는 자료형), 수정, 추가, 삭제가 불가능한 리스트(읽기 전용 리스트), 왜 읽기만 가능한 것을 쓰느냐 하면 첫번째로 메모리 사용이 효율적이고(리스트는 메모리 공간이 바뀌지만 튜플은 공간이 정해져있다) 두번째는 읽기만 가능하기 때문에 데이터 손실 염려가 없다.

튜플을 만드는 법은

튜플 = (데이터, 데이터, 데이터) # 튜플은 소괄호(), 리스트는 대괄호[] 차이가 있다.

튜플 = 데이터, 데이터, 데이터 # 튜플은 괄호도 생략가능하다.

괄호는 쓰임새가 있어서 헷갈리므로 개념 정리를 해보면

소괄호 ( ) 는 튜플에도 쓰이고, 함수를 정의할 때도 쓰이고 호출할 때 쓰인다.

대괄호 [ ] 는 리스트에 쓰이고, 인덱스 안에 쓰인다.

중괄호 { } 는 딕셔너리에 쓰이고, f-string 할 때 쓰인다.

튜플의 예시)

1) a = (3, 4, 5)

    a = "패스트캠퍼스", 3, True

 이런식으로 문자, 숫자, 불린형까지 튜플에 넣을 수 있고

2) a = (30,)

    a= 30,

 값 한 개짜리 튜플을 넣을 때는 반드시 콤마(,)를 넣어야 튜플로 인식하는데 콤마를 넣지 않으면 그냥 값으로 인식하기 때문에 반드시 콤마!!를 넣어주어야 한다. 이 부분이 좀 헷갈려서 관련자료를 찾고 설명을 듣다가 아 그래 값은 원래 그냥 집어넣잖아?! 하면서 갑자기 깨달았다. 왜 이게 헷갈렸는지 너무 하나만 집중해서 생각하다보니 이전에 배운걸 어처구니없게 까먹어버리곤 뭐가 콤마를 왜넣어?? 혼자 헷갈렸다. 뭔가 적다 만 느낌이라 어색한 부분이고 이런 하나만 적는 형식은 실무에서 가끔 쓰이는 데 튜플이 필요해서 사용한다기 보단 형태 유지를 위해 적는 느낌이라고 한다.

튜플을 리스트로 만들기의 예시)

1) a = tuple([5,6,7]) # 5, 6, 7 값을 가진 리스트를 튜플함수로 감싸면 튜플로 바뀐다. 자료형의 변환이 일어나게 된다. int 함수랑 같은 역할이 된다고 한다.

2) x = list(range(10))  # range 객체는 0~9 까지 숫자를 가진 range 객체가 나온다. 이 객체를 list로 감싸면 list 자료형이 된다. 즉 [0, 1, 2, ..., 9] 이런식으로 리스트 자료형이 되고

    a = tuple(x) # 여기서 위 변환된 리스트 자료형을 튜플로 감싸면 (0, 1, 2, ..., 9) 이런식으로 튜플이 된다.

3) x = 5 , 6, 7 # x 는 튜플이고

    a = list(x)  # x를 list로 바꿀 수 있다. [5, 6, 7] 나오게 된다.

패킹과 언패킹을 알아보자

numbers = 3, 4, 5 # 3, 4, 5 라는 데이터를 numbers 변수에 패킹한다. 패킹해서 튜플형태로 numbers 변수에 저장된다. 즉 과자봉지 묶음처럼 묶어주는게 패킹이다.

a, b, c = numbers # 언패킹, 위에 묶은 과자봉지를 하나하나 푸는게 언패킹이다. 여기서 numbers 변수에 저장된 (3, 4, 5) 가 a, b, c에 순서대로 들어가게 된다.

리스트의 패킹 언패킹도 같은 방식으로 

numbers = [3, 4, 5] # 패킹

a, b, c = numbers  # 언패킹

할 수 있다. 또 a, b = b, a 이런식으로 a 와 b 에 들어있는 값을 자리 바꿔주고 싶을 때 적용하면 된다. a 변수에 b 값이 들어가고 b 변수에 a 값이 들어가면서 체인지 되는 것이다.

정리하자면

패킹은 여러개의 데이터를 하나의 변수에 할당하는 것 이고 언패킹은 컬렉션(자료형들을 묶어서 표현하는 말)의 각 데이터를 각각의 변수에 할당하는 것이다.

튜플 함수는 예를 들어 a = 10, 20, 30, 40, 30 데이터가 있다면

1) 특정값의 인덱스 구하기는 a.index(20) # index 하고 특정값을 넣어주면 이 값이 몇번째 인덱스에 있는지 알수있다. 이렇게 적게되면 1 이 나오게된다 (10은 0부터 시작하기 때문에 20의 값은 여기서 1이다) 

2) 특정값의 개수는 a.count(30) # count의 특정값을 넣어주면 특정값이 몇 개 있는지 알려준다. 여기선 2개 나오므로 2가 나오게 된다.

3) 최대값, 최소값은 max(a), min(a) # 튜플아니고 리스트도 사용가능하다. 40, 10 이 나오게 된다.

4) 합계는 sum(a) # a 전부 더해서 130 나오게 된다.

 

 

아래는 실습 예제를 따라하고 강사님 설명 부분이다.

 

[실습문제 예제1]

# 실습문제 6.1.1
# 다음은 두수의 곱셈을 반환하는 multiply 함수이다. multiply 함수를 호출하는 방법으로 옳은 것을 고르세요.

# docstring : 설명문
  # (함수를 작성할 때 명령블록 위의 위치에 함수에 대한 설명을 적어줄 수 있다)
  # (쓰는법 : 큰따옴표 3번을 열고 닫아서 쓴다 """ 함수 설명 """)
# 정의하기 - 매개변수와 반환값이 있는 함수
def multiply(x, y):
    """
    두수의 곱셈 결과를 반환하는 함수
    매개변수 x : 숫자
    매개변수 y : 숫자
    """
    result = x * y
    return result

# 호출하기
# multiply() # error : arguments: 'x' and 'y' - 매개변수 x 와 y 의 값이 있으면 인자도 두 개가 있어야함(아무것도 없음)
# multiply(3) # error : argument: 'y' - 매개변수 x 와 y 의 값이 있으면 인자도 두 개가 있어야함(x만 있음)
# multiply("a", "b") # error : sequence by non-int of type 'str' - 인자호출까지는 된다. 다만 문자열은 곱셈 연산이 불가능하다.
multiply(3,4) # 12가 반환되게 되는데 print가 없으므로 출력해주면
print(multiply(3,4))

 

[실습문제 예제2]

# 실습문제 6.1.2

# 정의하기
def printSumAvg(x, y, z):
    """
    세개의 숫자를 받아 합계와 평균을 출력하는 함수
    """
    sum = x + y + z
    avg = sum / 3
    print("합계 :", sum, "평균 :", avg)
# 문자열 포매팅 : f-string 이용하기
    print(f"합계 : {sum} 평균 : {avg}") # 가독성 면에서도 좋다
   

# 호출하기
printSumAvg(10, 20, 30)

 

[실습문제 예제3]

# 실습문제 6.1.3
# 로또 번호 추출기
# 반복문, 조건문, 리스트, 함수 필요

import random

def get_random_number():
    number = random.randint(1, 45)
    return number

lotto_num = [] # 로또 번호를 저장할 리스트

count = 0 # 현재 뽑은 숫자 개수

# for i in range(6):
# 로또 번호를 중복되지 않게 하려면 반복이 정해진게 아니므로 while 반복문을 쓴다
while True:
    if count > 5: # 또는 if count == 6: 으로 쓴다(밑에 카운트 +1 해서 6이될 경우 탈출한다)
        break
    random_number = get_random_number()
    if random_number not in lotto_num: # 조건문 (뽑은 lotto_num이 리스트에 들어있지 않다면(not in 연산) 추가하라는 조건문)
        lotto_num.append(random_number)
        count += 1

lotto_num.sort() # 리스트 오른차순 정렬 sort
for num in lotto_num: # 리스트 표기를 하지 않고 숫자만 나열하게 for문 써서 num 변수안에 집어넣기
    print(num, end=" ") # 나온 숫자를 구분하기 위해 end 뒤에 띄어쓰기 넣어주기

 

[튜플]

# 튜플
# : 읽기 전용 리스트

a = (3, 4, 5)
b = 3, 4, 5

c = (3,)
d = 3,

e = tuple([3, 4, 5])
f = list(range(10))
g = tuple(f)

h = 3, 4, 5
i = list(h)

# 튜플 관련 함수
x = 5, 6, 7, 8
print(max(x))
print(min(x))
print(sum(x))
print(x.count(6)) # 6이 몇 개 있는가
print(x.index(7)) # 7은 몇 번째 자리에 있는가

 

 

03. 필수 본문 내용 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
 

04. 필수 해시태그 

#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
 

05. 필수 URL 

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

[수강 강의 클립] 

[특별 제공] 한 번에 끝내는 파이썬 필수 문법

-Ch 06. 함수

02. 함수실습문제(1)

03. 함수실습문제(2)

-Ch 07. 딕셔너리와 튜플

01. 튜플

 

[※ 기타사항메모 ※]
{100% 환급챌린지 미션 가이드 참조 : 

https://fastcampus.co.kr/event_online_challenge_2401_mission}

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr