파이썬 무료 강의 100분 완성 (1분 파이썬 모음) — Transcript
Full transcript
- 0:00안녕하세요 나도 코딩입니다네 파이썬
- 0:02공부를 하고 싶은데 기본표 영상이
- 0:03너무 길어서 부담스럽거나 바빠서
- 0:05시간을 내기 어려운 분들을 위해서
- 0:07새로운 강의를 준비했습니다 이번
- 0:09콘텐츠의 제목은 1분 파이썬인가
- 0:111분이라는 짧은 시간을 투자해서
- 0:13파이썬 언어에 대해서 전반적으로 키고
- 0:15시험 문제를 풀어보는 방식으로
- 0:16진행합니다네 파이썬은 프로그래밍 언어
- 0:18중 하나인데요 문법에 간결하고 굉장히
- 0:21배우기 쉬우면서도 활용할 수 있는
- 0:22분야가 다양해서 많은 사람들이 사랑을
- 0:24받고 있습니다 꼭 컴퓨터 관련 학과를
- 0:26전공하지 않으신 분들도 다양한 분야
- 0:28영어에서 쓸 수 있고요 코딩 공부를
- 0:29하고 싶은 학생분들에게도 강력하게
- 0:31추천드리는 언어입니다 나도 코딩은
- 0:34아주 쉽고 재미있게 강의를
- 0:35진행하겠습니다 아무런 준비 없이 그냥
- 0:37믿고 따라오시면 이미 많은 분들이
- 0:39그랬듯이네 어느새 파이썬에 익숙해져
- 0:41있는 여러분들 1분 파이썬은 각
- 0:43강의마다 1분간 해당 주지에 대해서
- 0:44핵심만 쏙 뽑아서 개념을 설명드리고
- 0:47배운 내용을 확인할 수 있도록 시험
- 0:48문제를 출제합니다 시험 문제는 5초
- 0:50동안 보여주고 나서 정답 및 해설이
- 0:52공개되기 때문에 문제가 보여질 때
- 0:54화면을 잠깐 멈추신 다음에 스스로
- 0:56문제를 풀고 나서 계속 진행해 주시면
- 0:58되겠습니다네 한번 해 볼까요
- 1:11파이썬을 공부하기 위해 필요한 환경
- 1:12설정을 먼저 진행하겠습니다 일본
- 1:14파이썬에서는 마이크로소프트 비주얼
- 1:16스튜디오 코드를 사용하도록 하겠습니다
- 1:18먼저 파이썬을 설치해 구글에서
- 1:19파이썬을 검색하고 공식 홈페이지에
- 1:21방문합니다 설치 파일을 다운로드
- 1:23받으시고 실행하고 애 파이썬 3.
- 1:26얼마 2 패스 부분 커스터마이즈
- 1:28인스톨레이션을 선택하시고요 넥스트를
- 1:29를 클릭하고 c 드라이브 바로 밑에
- 1:31파이썬 3 얼마 버전 정보로 인스톨
- 1:34클릭하고 설치가 완료되면 클로즈를
- 1:36클릭 이번에는 비주얼 스튜디오 코드를
- 1:37설치해 볼 구글에서 vs 코드로
- 1:39검색을 하고요 홈페이지에 가셔 가지고
- 1:41설치 파일을 다운로드 받습니다 실행
- 1:43하시고요 계약의 동의함 선택하시고
- 1:45다음 버튼을 계속 클릭해 줍니다네
- 1:47설치 클릭하시고 종료 버튼을
- 1:48클릭합니다 원민 파이썬 폴더를 하나
- 1:51만들어 주고요 오픈 폴더를 클릭합니다
- 1:53원민 파이썬 폴더를 선택해 주시고요
- 1:55뉴파일 버튼을 클릭하셔 가지고
- 1:56네프티스 . 파이네 오른쪽 밑에
- 1:58나오는 팝업에서 파 선 익스텐션을
- 2:00설치해 줍니다 똑같이 적어 주세요네
- 2:02프린트 괄호 열고 작은 따옴표
- 2:04헬로우디 저장을 해주 삼각형 버튼
- 2:06클릭하셔 가지고네 이렇게 헬로우
- 2:07월드라 글자가 잘 표시가 되면은 항경
- 2:09설정은 준비가 된
- 2:21거예요 우리가 앞에서 프린트 헬로
- 2:23월드라는 문장을 입력을 하고이 버튼을
- 2:25클릭해서 실행했을 때 헬로 월드라고
- 2:27표시되는 걸 봤었는데요이 코드의
- 2:29의미는 괄호 속에 있는 내용을 프린트
- 2:31쭉 출력해 달라는 겁니다 이때
- 2:33따옴표로 감싸서 있는 헬로 월드라는
- 2:35부분이 여러 자료형 중에 하나인 문자
- 2:37자료 형이라는 건데요 프로그래밍
- 2:39언어에는 여러 형태의 자료형이
- 2:40있습니다 우리가 어떤 사이트에 회원
- 2:42가입을 하기 위해서 이름 주소
- 2:43전화번호 생년 월리를 입력한다고
- 2:45가정하겠습니다 그리고 동의 업으로
- 2:47선택할 수 있는 체크 박스도 있겠죠
- 2:49만약에 이런 식으로 정보를 입력했다고
- 2:50했을 때 글자로 이루어진 이름 주소는
- 2:52문자 자료형 숫자로 이루어진 전화번호
- 2:54생면 어리는 숫자 자료형 그리고로
- 2:57중에서 하나를 선택할 수 있는 동의
- 2:58여부는 불리한 자료 자료 형이라고
- 3:00파이썬에서 숫자 자료형은 정수 또는
- 3:02실수를 읽는 그대로 쓰면 됩니다 문자
- 3:04자료형은 헬로 월드나 안녕하세요 같은
- 3:06한글 영어등의 문자를 의미하는데 작은
- 3:09따옴표 또는 큰 따옴표로 앞뒤로
- 3:11감싸면 됩니다 참고로과 같은 숫자
- 3:13자료형도 따옴표로 감싸게 되면은 문자
- 3:15자료형이 된다는 점 주의해 주세요
- 3:17불리한 자료형은 트루와 포스가
- 3:18있습니다 이때 단어의 시작 부분인 t
- 3:21f n 반드시
- 3:33변수란 어떤 값을 저장하는 공간입니다
- 3:35만약에 여러분이 어른이고 조카 분들이
- 3:37설날에 세배를 하면은 세배 돈을
- 3:39주겠죠 보통은 봉투를 미리 마련해
- 3:41두고 거기에 적당한 금액을 넣어 두곤
- 3:42합니다 여러분에게 세 명의 조화가
- 3:44있다고 가장 할게요 설날에 만나게 된
- 3:46거예요 그래서 여러분은 순서대로 봉투
- 3:48세 개를 준비하고 적당한 금액을
- 3:50계산해서 넣은 다음에 각각 봉투 1
- 3:522 3이라고 적어 둡니다 직장인은 돈
- 3:55버니까 그냥 편지로 그러면 여러분은
- 3:56세배를 받고 나서 준비한 봉투를 그냥
- 3:58순서대로 주면 되겠죠 봉투에 얼마가
- 4:00들어 있는지는 기억할 필요가 없습니다
- 4:02이미 봉투에 들어가 있으니까요 이렇게
- 4:04어떤 값을 저장하는 공간이 바로
- 4:05변수입니다 즉 앞이 예제에서 봉투는
- 4:08변수가 되는 것이고 세배 돈이 값이
- 4:10되는 거예요 변수를 만들고 거기에
- 4:12어떤 값을 넣는 것을 변수 선언이라고
- 4:14하는데 왼쪽에 변수 이름을 먼저 적고
- 4:17등호를 적은 다음에이 변수에 놓고
- 4:19싶은 값을 적어주면 돼요 공초 세
- 4:21개에 해당하는 변수를 만들고 각각 만
- 4:23원 2만 원 그리고 파이팅이라고
- 4:25편지를 넣기 위해서는 이렇게 해주면
- 4:27됩니다 그리고이 변수에 있는 값을
- 4:28출력하려면 이렇게 프린트 함수를
- 4:30통해서 각 변수를 괄호 속에 넣어
- 4:32주면
- 4:43됩니다 변수는 여러분이 원하는만큼
- 4:45얼마든지 만들 수 있지만 변수 이름을
- 4:47지을 때 지켜야 하는 몇 가지 규칙이
- 4:49있는데요 먼저 이름은 반드시 문자
- 4:51또는 밑줄 언더바로 시작해야 합니다
- 4:53이렇게 시작한 뒤에는 문자나 숫자
- 4:55또는 밑줄로 구성해야 되고요 변수명에
- 4:58공백이나 특수 문자는 사용할 수 가
- 4:59없습니다 그리고 대소 문자가 구분하기
- 5:01때문에 소문자로 이루어진 네임
- 5:03첫글자만 대문자인 네임 그리고
- 5:06대문자로만 이루어진 네임은 모두 서로
- 5:08다른 변수로 인식됩니다 키워드 또는
- 5:10예약어 아고 하는게 있는데요 특정
- 5:11기능을 수행하도록 미리 예약해 둔
- 5:13단어를 의미합니다 우리가 불리한
- 5:15자료형을 공부할 때 트루와 스가
- 5:17있었죠 이것들도 키워드이다 배울 4
- 5:20while if 등등 약 30개가
- 5:21넘는 키워드들이 있는데요 이런
- 5:23키워드는 이미 예약이 돼 있기 때문에
- 5:25변수 이름으로는 사용할 수가 없어요
- 5:27키워드는 공부를 하다 보면 자연스럽게
- 5:28익혀질 거라서 굳이 외우실 필요는
- 5:30없습니다 그리고 반드시 지켜야 하는
- 5:32것은 아니지만 가독성 즉 코드를 쉽게
- 5:34읽을 수 있도록 하기 위해서 권장되는
- 5:35부분이 있는데요 일반적으로 변수는
- 5:37소문자로 된 단어 하나 또는 I
- 5:39언더바 name your 언더바
- 5:40임처럼 밑줄로 구분 단어들의 조합으로
- 5:43만드는게
- 5:54좋습니다 자료형은 필요에 따라 서로
- 5:56변환할 수가 있습니다 이것을 형
- 5:58변환이라고 하는데요 산수에서 우리가
- 6:002 + 1을 했을 때 결과는 당연히
- 6:023이 되겠죠 그런데 만약에 2 +
- 6:04꿀과 백이라고 한다면 결과는 어떻게
- 6:06될까요 이에다 꿀과 배기를 더
- 6:08있으니까이 꿀과 배기 산수에서는 이런
- 6:10계사는 불가능하지요 파이썬에서
- 6:11똑같습니다 2는 숫자 자료 형이고
- 6:14이에다 앞뒤로 다운 표를 붙이면 문자
- 6:15자료형이 된다고 했습니다 그래서 숫자
- 6:17자료 형의 2와 문자 자료 형의 2는
- 6:19서로 다르기 때문에 둘을 더하는 것은
- 6:21불가능한데요 이때 형 변환이라는 것을
- 6:23이용할 수가 있습니다 형 별하는
- 6:25크게이 세 가지를 알아두시면 되는데
- 6:26각각 정수 실수 그리고 문자로 바꾸는
- 6:28동작을 해줍니다 으로 숫자 자료형은
- 6:30정수 실수 등으로 구분 지을 수
- 6:31있는데 인트는 정수네 플로트는
- 6:34소수점이 있는 실수를 의미합니다
- 6:35이렇게 적고 나서 괄호 속에다가 내가
- 6:37변화를 하고 싶은 값 또는 변수를
- 6:39넣으면 변환이 되는데요 예를 들어서
- 6:412라는 문자를 정수로 바꾸고 싶다면
- 6:43요렇게 적어 주시면 되고요 1.5라고
- 6:45바꾸 오 있다라고 하면은네 플러트
- 6:471.5라고 하면 됩니다 반대로 숫자
- 6:49자료형의 2를 문자로 바꿔 오
- 6:50있다면은 strr 괄호 속에다가 2를
- 6:52넣어 주시면 되는 거예요 이때
- 6:54주의할게 있는데 괄호 속에 들어가는
- 6:55값은 반드시 변환하려는 자료형이 알
- 6:57수 있는 형태여야 합니다 예를 들어서
- 6:59영어 문자 2인 경우에는 정수로
- 7:01알아볼 수가 없기 때문에 변화를
- 7:02불가한 거예요 또는 2.5와 같은
- 7:04실수 값의 다음표를 감싸서 문자로
- 7:06되어 있는 경우에는 바로 정수로
- 7:07변화는 불가능하고 플로트를 통해서
- 7:092. 5라는 문자를 먼저 실수 형태로
- 7:11바꾼 뒤에 인트로 감싸서 정수로
- 7:13변환을 해야 합니다 참고로 실수를
- 7:14정수로 변환할 때 소수점 이하는
- 7:16반올림이 아닌 버림이 되어서이 예제의
- 7:18결과는 3이 아닌 2가 돼요
- 7:31파이썬에서 사용할 수 있는 다양한
- 7:32연산자에 대해서 공부를 해 보겠습니다
- 7:34먼저 산술 연산자가 있는데 우리가
- 7:36더하기 빼기 곱하기 나누기를 해서
- 7:38어떤 값을 계산해 줄 수가 있습니다
- 7:40더하기 빼기는 기호가 똑같지만
- 7:42곱하기는네 곱표 대신에 별표를 쓰고
- 7:45나누기는 나누기 기호 대신에 슬래시를
- 7:46쓴다는 점 주의해 주세요 그리고
- 7:48나머지를 구할 수 있는 퍼트라
- 7:49연산자도 있는데요 5% 2를 하게
- 7:52되면은 5를 2로 나눴을 때 나머지
- 7:54즉 1이 결과로 나오게 되고 또 몫을
- 7:56구하는 것도 있어요네 몫은 슬래시를
- 7:58두 번 적어 주시면 됩니다 이렇게 5
- 8:00/ 2를 하게 되면은 5를 2로
- 8:02나눴을 때 목 즉 2만 나오고 나머지
- 8:041은 그냥 버리는 거예요 그리고
- 8:06곱셈을 의미하는 별을 두 번 적으면
- 8:08거듭 제곱이 됩니다 즉 5 별별 2를
- 8:11하게 되면은 5의 2제곱 즉 5 *
- 8:135를 해 가지고 25가 나오게 돼요
- 8:16값을 비교할 수 있는 비교 현산도
- 8:17있습니다 왼쪽과 오른쪽을 비교해
- 8:19가지고 왼쪽이 오른쪽보다 큰지 또는
- 8:21크거나 같은지 또는 작은지 자거나
- 8:23같은지를 비교할 수 있는데 비교
- 8:25연산자는 결과가 트루 또는 스인
- 8:27분리한 형태로 나오게 되는데요 예를
- 8:28들어서 5 가 2보다 크다는네 참이
- 8:31그래서이 결과는 트루가 나오게 됩니다
- 8:33그리고 왼쪽과 오른쪽이 같은지 같지
- 8:35않은지를 비교할 수 있는데네 같다라고
- 8:37할 때는 등호를 두 번 적어 주시면
- 8:38돼요 이거는 수학과는 좀 다르죠 예를
- 8:40들어서 5는 2와 같은지를 비교하기
- 8:42위해서는 5 넣는 2로 적어 주시면
- 8:44되고 그리고 같이 한타를 비교할 때는
- 8:46느낌표 는을 적어 주시면 되는데 5
- 8:48느낌표는 2를 하게 되면은 5는 2와
- 8:51같지 않기 때문에 트루가 나오게 되는
- 8:52거예요 볼리 상자도 있는데요 엔드를
- 8:55쓰게 되면은 왼쪽과 오른쪽이 둘 다
- 8:57참이면 트루의 경우에는 왼쪽과 오른쪽
- 9:00둘 중 하나라도 참이면 트루 그리고
- 9:01나은 어떤 값을 반전시켜 주는 거예요
- 9:04예를 들어서 3이 5보다 작다는
- 9:06트루저 그런데 7은 5보다 작다가
- 9:08포스기 때문에 이거 둘 다 참이
- 9:10아니라서 플스가 나오는 거고의
- 9:12경우에는 3이 5보다 작은 건 트루
- 9:147은 5보다 작은 건 포스인데 둘 중
- 9:16하나라도 트루기 때문에 트루 그리고
- 9:18여기에서는 지금 3이 5보다 작은 건
- 9:20트죠 그런데 트루 앞에다가 날이
- 9:22있으니까 트루를 반전시켜서네 포스가
- 9:24나오게 됩니다 그리고 어떤 값이
- 9:26포함되어 있는지 업을 확인할 수 있는
- 9:27즉 멤버인지 확인할 수 있는 멤버
- 9:29현상 도 있는데요네을 쓰게 되면은
- 9:31어떤 값이 여기 뒤에 있는 것에다가
- 9:33포함이 되어 있는지를 확인할 수 있는
- 9:35거예요 C 아는 글자가 지금 란
- 9:37단어에 포함돼 있으니까 이때 결과는
- 9:39트가 되는 거고 not in 하게
- 9:41되면은 포함이 되어 있지 않다라는
- 9:42의미가 되는 겁니다 그래서 C not
- 9:44in cas 하게 되면은 케이란
- 9:46단어에는 포함되어 있지 않아라는
- 9:47말인데 이건 틀렸죠네 c n 여기
- 9:50있으니까 그래서 결과가 스가 되는
- 9:51거예요
- 10:03분리한 자료형은 트루와 폴스 중에서
- 10:05하나의 값을 가집니다 비교 연산자에서
- 10:07이런 거 출력하면 트루 또는 스가
- 10:09나오는 거를 같이 해 봤었지요 그리고
- 10:11형변환을 배울 때 인트 플로트
- 10:13스트링으로 값을 바꾸는 걸 해
- 10:14봤었는데 사실은 분리안 바꾸는 형
- 10:16변환도 있습니다 이때는 분리안 중에서
- 10:18bool 아지만 쓰면 되는데요 불은
- 10:21값이 있으면 트루로 값이 없으면 스로
- 10:23변환됩니다 값이 있다 없다를 판단하는
- 10:25기준은요 문자 자료형의 경우에 a
- 10:27변수의 헬라는 문자를 넣 이렇게 되면
- 10:29이거는 값이 있는 거예요 그리고 B
- 10:31같이 따옴표 속에 빈칸이 여러 개
- 10:33들어 있는 경우에도 빈 칸이라는 값이
- 10:35있는 겁니다 하지만 C 같이 따옴표
- 10:37사이에 아무것도 넣지 않으면 값이
- 10:39없는 거예요 이렇게 적고 나서 실행을
- 10:41해 보면의 경우에만 플스가 나오는 걸
- 10:43알 수 있죠 숫자의 경우에는 0이
- 10:45아닌 모든 수는 트루 0은 플스가
- 10:47됩니다 0은 말 그들로 없는 거니까요
- 10:49예제에서 a b 각각 1과 - 2라는
- 10:52값이 있으므로 트루인 c n 0이라서
- 10:54플스가 되는 거예요 그리고 파이썬의
- 10:56키워드 중에서 값이 없음을 의미하는
- 10:58논이라는게 있습니다
- 10:59눈치 채셨겠지만 불 논을 하게 되면
- 11:02값이 없으므로 스가 되는 거예요 다시
- 11:04정리하면 분리하는 참이면 트루
- 11:06거짓이면 폴스 값이 있으면 트루
- 11:08없으면 스가
- 11:20됩니다 결혼식을 할 때 사회자는
- 11:22실수를 줄이기 위해 즉흥적으로 진행을
- 11:24하기보다는 이미 작성된 대본을 그대로
- 11:26잃는 경우가 많습니다 그리고 대분
- 11:28사이사이에 애는 어디서 시 멈춰야
- 11:29할지 또 언제 다시 시작해야 할지
- 11:31흐름을 조절하기 위한 부연 설명이
- 11:33적혀 있는데요 예를 들어서 양과
- 11:34부모님께 인사를 드리는 순서라는
- 11:36대부분은 이렇게 준비가 되어
- 11:37있습니다이 중에서 실제로 소리내
- 11:39열리는 부분은 바로 여기가 되는
- 11:40거고요 대본에 적혀 있지만 일지 않고
- 11:42참고만 하는 부분은 이곳입니다
- 11:44결혼식이 진행되는 과정에서 하객들은
- 11:46이런 부연 설명을 듣지 못하죠 만약
- 11:48부연 설명이 없는 대본일 때 사회자가
- 11:50경험이 많아서 결혼식에 대해서 잘
- 11:51알고 있다면 문제가 없겠지만 처음
- 11:53사회를 보는 경험이 있다면 어쩌면
- 11:55실수를 할 수도 있을 겁니다 이처럼
- 11:57실제로 잃지는 않지만 참고하기 위해
- 11:58적어두는 는 부연 설명 또는 메모를
- 12:00프로그래밍에서는 주석이라고 부릅니다
- 12:02작성된 소스 코드를 주석 처리
- 12:04한다라고 표현을 하는데요 파이썬에서는
- 12:06두 가지 방법으로 주석 처리를 할 수
- 12:08있습니다 먼저 하나의 문장 즉 한
- 12:09줄을 주석 처리하려면 문장 앞에 샵을
- 12:12적어주면 되고요 예를 들어서 코드가
- 12:14이렇게 적혀 있었다라고 하면 두 번째
- 12:15문장은 주석이 그냥 무시하고 진행하게
- 12:17됩니다 하나 이상의 여러 문장을 주석
- 12:19처리하려면 영역 앞 뒤에 다음표를 세
- 12:21개씩 적어서 감싸주면 됩니다 이렇게
- 12:24하게 되면 프로그램이 실행될 때이
- 12:25초록색 부분 두 줄은 그냥 무시하고
- 12:27넘어가게 되는 거예요 주석 은 복잡한
- 12:29코드의 부연 설명이 필요할 때 다른
- 12:31개발자에게 매물를 남길 때 또는
- 12:33테스트 목적으로 잠깐 실행을 막아야
- 12:34할 때 사용하시면
- 12:46좋습니다 한 빌라의 주차장이 이렇게
- 12:48마련되어 있습니다이 주차장은 빌라
- 12:50입주민들만을 위한 공간이고 세대별로
- 12:52주차 위치가 지정되어 있는데요
- 12:54여러분이 사무에 살고 있다고 하면
- 12:55주차는 왼쪽에서 세 번째 하시면
- 12:57됩니다 한번은 친구가 찾아 어요
- 12:59친구가 볼 때는 두 번째 이후로 모두
- 13:01비어 있으니까 아무 곳에나 주차해도
- 13:03될 거 같지만 여러분은 세 번째 칸의
- 13:05주차라인 여러분이 알려준 곳에 주차를
- 13:07무사히 잘 했고요 실제로는 아무것도
- 13:09적혀 있지 않은 주차 장이지만 몇
- 13:11번째라는 정보를 통해서 친구와 대달
- 13:13할 수 있었는데요 파이썬에서 동일한
- 13:15개념이 있습니다 바로 인덱스라고 하는
- 13:16건데요 파이썬의 문자열에서 또는
- 13:18뒤에서 배울 리스트라는 것에서도 몇
- 13:20번째라는게 있어요 다만 여기서는 처음
- 13:22시작이 1이 아니라 0부터 시작한다는
- 13:24점을 꼭 기억해 주세요 예를 들어서
- 13:26레이라는 변수를 이렇게 선언했을 때
- 13:28첫 번째 글자는 가 되겠죠 p
- 13:30출력하기 위해서는 랭을 적고 대괄호
- 13:31속에 찾으려는 위치를 적어주면 되는데
- 13:33여기서는 인덱스 값이 0이니까 대괄호
- 13:350 이렇게 적어주면 되는 거예요
- 13:37마지막 문제를 출력하려면 마지막의
- 13:39인덱스 값은니까 랭 대가로 5라고
- 13:41하면 되겠죠네 이렇게 해도 되지만
- 13:42파이썬에서는 마지막을 -1로 쓸 수도
- 13:45있습니다 즉 0부터 시작해서 일씩
- 13:47증가하는 인덱스 값을 써도 되고
- 13:49마지막을 -1로 시작해서 -2 -
- 13:513과 같이 일식 감소하는 인덱스도
- 13:53가능해요 슬라이싱이란 것도 있는데요
- 13:55이거는 인덱스 값 기준으로 어디부터
- 13:57어디까지를 잘라주는 역할을 합니다
- 13:59앞에서 친구가 볼 때는 두 번째부터는
- 14:01모든 자리가 다 비어 있었지요 이거를
- 14:03파이썬에 대입해서 두 번째부터 여섯
- 14:05번째까지 즉 인덱스 기준으로는 1부터
- 14:075까지 구하려면 레인 대가호 속에
- 14:09시작 인덱스 콜론 그리고 끝 인덱스에
- 14:111을 더한 값을 넣어 주면 됩니다
- 14:13이렇게 하면 인덱스 1부터 6
- 14:15직전까지 6은 포함되지 않고 5까지의
- 14:17값을 잘라 주는 거예요 참고로
- 14:19파이썬에서는 어떤 시작 인덱스로 터
- 14:21끝까지를 자르고 싶으면 뒷부분을
- 14:23이렇게 생략할 수도 있습니다 즉 1
- 14:24콜론 아지만 적으면 1부터 끝까지를
- 14:26자르는 역할을 해 줍니다 끝을
- 14:28포함해서 말이죠 반대로 맨 처음부터
- 14:30어떤 인덱스까지 자르려면 처음 부분을
- 14:32비워주면 돼요 대가로 콜론 4를 하게
- 14:35되면 처음부터 인덱스 4 직전까지
- 14:373까지의 값 pyth 아지를 잘라
- 14:40주게 됩니다 조금 더 응용해서
- 14:41처음부터 끝까지 하려면네 시작과 끝
- 14:43모두 인덱스 없이 그냥 콜로만 적어
- 14:45주면
- 14:56돼요 숫자 2에 꿀과 배를 더하는
- 14:59거는 불가능하다고 했던 거 기억하시죠
- 15:01그런데이를 숫자가 아닌 문자로 형
- 15:03변환하면이 꿀과 배기가 가능해집니다
- 15:05스액이라는 변수의 꿀과 배기란 글자가
- 15:07들어 있고 2라는 변수에 두 개라는
- 15:09글자가 들어 있을 때 둘을 합쳐서
- 15:10꿀과 배이 두 개라고 만들고 싶다면
- 15:12더하기를 써서 둘을 서로 합쳐 주면
- 15:14간단히 처리가 됩니다 여기에다가
- 15:16주세요라는 글자를 붙여 볼까요
- 15:17주세요라는 변수는 주세요 더하기
- 15:19주세요라는 글자인데 이렇게도 되지만
- 15:21주세요라는 변수가 두 번 쓰였죠
- 15:23파이썬에서는 보다 간편하게 하기
- 15:25위해서 이런 식으로 더하기 는으로
- 15:27표현할 수도 있어요 즉 주세요라는
- 15:29변수에 주세요라는 글자를 더한 값을
- 15:32주세요 변수에 넣게 되는 겁니다
- 15:33주세요 변수에 들어가는 최종 값은
- 15:35이렇게 되고요 사실은 문자가 아닌
- 15:36다른 자료 행해도 사용 가능합니다
- 15:38놈이라는 변수의 3이 들어가 있을 때
- 15:40넘 변수에가 2을 더하려면 이렇게
- 15:42하면 되지요 그런데 더하기 는을 써서
- 15:45넘 더하기는 2 이렇게 표현해도 위
- 15:47문장과 완전 똑같은 동작을 하게 되는
- 15:49거예요 더하기 말고 다른 것도 쓸 수
- 15:51있습니다 지금 넘은 3 + 1 해서
- 15:525가 되었는데이 상태에서 1을 빼고
- 15:54싶다면 넘 빼기 = 1을 하면 되고요
- 15:572을 곱하고 싶다면 넘 곱하기는 2
- 16:004로 나누고 싶다면 나누기는 4
- 16:02이렇게 하면 됩니다 다시 문자로
- 16:03돌아와서 문자를 몇 글자인지 길이를
- 16:05구하는 방법이 있습니다 바로 랭스를
- 16:07의미하는 레이라는 함수인데요네 함수는
- 16:09뒤에서 배울 거니까 일단은 렌 괄호
- 16:11속의 길이를 알고 싶은 문자열을
- 16:12집어넣으면 몇 글자인지 알 수 있게
- 16:14됩니다 꿀까 배기는네 글자네 때로는
- 16:16여러 줄에 해당하는 문자열이 필요한
- 16:18경우도 있습니다 이럴 때는 변수를
- 16:20선언할 때 문자열 앞뒤로 다음표를 세
- 16:22개씩 감싸면 됩니다 여러 줄을 주석
- 16:24처리할 때와 비슷하지요
- 16:37메소드라는 것이 있습니다 메소드는
- 16:39클래스에 정의된 어떤 동작 또는
- 16:40기능을 하는 코드들이 묶음을
- 16:42의미하는데 그냥 쉽게 기능이라고
- 16:43이해하시면 돼요 문자열을 다루기 위한
- 16:45여러 기능들이 있는데요 사용 방법은
- 16:47문자열 점 메소드 이름 그리고 괄호를
- 16:49열고 다으면 됩니다 때로는 괄호 속에
- 16:51어떤 내용이 들어가기도 해요 예를
- 16:53들어서
- 16:55레터라이브대 문자네 그런데이 문자를
- 16:58전체를 소문자 로 바꾸고 싶다면
- 16:59로라는 메소드가 있습니다 레터 점
- 17:01로워 괄로 열로 닫 고라고 하면은
- 17:03모든 문제를 손쉽게 소문자로 바꿀 수
- 17:05있는 거예요 반대로 모든 내용을
- 17:06대문자로 바꾸고 싶다면 퍼라 메소드를
- 17:08쓰면 되고요 첫 글자만 대문자로 하고
- 17:10나머지는 모두 소문자로 하고 싶다면
- 17:12캐피털 아이라는 메소드를 쓰면 됩니다
- 17:14이러 일반적인 영어 문자 형태가 되는
- 17:15거죠 각 단어들이 첫 글자만대
- 17:17문자라고 싶다면 타이틀이란 메소드를
- 17:19쓰면 되는데요 마치 신문 기사
- 17:21제목처럼 각 단어들이 첫 글자만
- 17:22대문자로 바뀐 걸 알 수 있죠 배소
- 17:24문자를 서로 뒤바꾸는 방법도 있습니다
- 17:26레터 점 스와 케이스라는 메소드를
- 17:28쓰면 되고요 그러면 소문자는 대문자로
- 17:30대문자는 소문자로 바뀐 걸 알 수
- 17:31있죠 문자열을 나누고 싶다면
- 17:33스플릿라운드 쓰면 되는데 띄어쓰기를
- 17:35기준으로 나눠진 결과를네 리스트
- 17:37형태로 반환해 줍니다 리스트는 뒤에서
- 17:39배울 거니까 일단은 그냥 넘어갈게요
- 17:41문자를 내에서 어떤 글자가 몇 번
- 17:42쓰였는지 즉 예제에서 하우가 얼마나
- 17:44많이 쓰였는지 보려면 카운터라는
- 17:46메소드를 쓰고요 찾으라는 글자를
- 17:48이렇게 넣어 주면은 횟수를 쉽게
- 17:49확인할 수가 있습니다 이번 시간에는
- 17:51이런 것들을 배웠고 메소드는 종류가
- 17:53너무 많아서 다음 시간에 계속되
- 18:05메소드는 기능이라고 했죠네 계속해서
- 18:07주요 메소드들을 배워 볼게요 S 아는
- 18:09변수에 나도 고등학교라는 글자가 들어
- 18:11있는데이 문자열이 어떤 문자로
- 18:13시작하는지 나도로 시작하는지
- 18:15확인하려면 스치 위드가 있습니다 여기
- 18:17괄호 속에 확인하려는 값을 넣어주면
- 18:18되고요 결과는 분리한 형태로네 트루
- 18:21또는 스로 나오게 됩니다 어떤 값으로
- 18:22끝나는지 확인하려면 엔 위드가
- 18:24있습니다네 사용법은 스 위드와
- 18:26동일해요 만약에 앞뒤로 이런 점과
- 18:28같은 불필요한 부분이 있다면
- 18:29스트립이란 메소드를 쓰고 괄호 안에
- 18:31제거하려는 문자들을 넣어두면 문자를
- 18:33앞뒤로 불필요한 부분들을 제거할 수
- 18:35있습니다 참고로 괄호 속에 아무것도
- 18:36넣지 않으면 문자를 앞뒤로 불필요한
- 18:38공백들이 제거가 됩니다 문자를 일부로
- 18:41바꿀 수도 있는데요 리플레이를 써서
- 18:43찾으라는 문자와 바꾸려는 문자를
- 18:44입력하면 손쉽게 바꿀 수 있습니다
- 18:46이에서는 고등학교를 찾아서 고교로
- 18:48바꾸는 거죠 특정 글자가 어디에
- 18:50있는지 확인하려면 파인드 메소드를
- 18:51통해서 값을 넣어주면 인덱스 기준으로
- 18:53어느 위치에 있는지 알려줍니다 학교는
- 18:550 1 2 3 4에 있으니까 지금 4
- 18:58값이 나오게 된 거예요 문자열을 다른
- 19:00문자들 사이에 가운데로 집어 놓고
- 19:02싶다면 센터 메소드의 총 길이
- 19:04여기서는 열 글자라고 정의을 해 뒀고
- 19:06하이픈을 적어서 나도 고등학교를 내
- 19:08하이픈으로 감싸는 총 열 글자에
- 19:10해당하는 결과를 낼 수 있습니다
- 19:12지금까지 이런 것들을 배워 봤고요
- 19:13아직 훨씬 많은 메소드들이 있는데
- 19:15구글에서 파이썬 내장 형이라고 검색을
- 19:18하고요 공식 홈페이지 들어가셔 가지고
- 19:20컨트롤 F 하시고 파드로 검색을 해
- 19:22보시면은 이렇게 나오는데요 스크롤
- 19:24조금 올려 보시면은네 문자 매수
- 19:26들라고 있습니다 여기 밑에 보시면
- 19:28서로 다른 다 다양한 메소드가 있고
- 19:29각각 어떤 기능을 하는지 설명이
- 19:31있으니까이 부분을 참고하시면
- 19:43좋겠습니다 파이썬이란 변수의 파이썬
- 19:46그리고 자바라는 변수의 자바라는 값이
- 19:47있을 때 프린트를 이용해서 둘 다
- 19:49출력하려면 더하기를 이용해서 이렇게
- 19:50하면 됐었죠 분을 위해서 중간에
- 19:52띄어쓰기도 하나 추가해 줬고요 이거
- 19:54말고 다른 방법이 있는데요 바로
- 19:56콤마를 유하는 겁니다 출력하고 싶은
- 19:57변수 또는 값 을 콤마로 구분서 넣게
- 20:00되면은 자동으로 띄어쓰기까지 해서
- 20:02출력을 해 줘요 그런데 이렇게
- 20:04변수값을 있는 그대로가 아닌 내 다른
- 20:05문장 속에 포함시키려면 어떻게 할까요
- 20:07예를 들어서 이런 문장과 같이 만들어
- 20:09보는 거예요 먼저 더하기를 이용해서
- 20:11이렇게 할 수 있겠네요 이때 각각
- 20:12색칠된 부분이 문자의 값들이 더하기를
- 20:15통해서 서로 합쳐진 겁니다 또는
- 20:16앞에서 배운 콤마를 이용해서 이렇게
- 20:18해 줄 수도 있어요 그런데 더하기는
- 20:20콤마를 통해서 출력하다 보니까 다운
- 20:22표도 많고 뭔가 복잡해 보이죠 이럴
- 20:24때 우리는 문자 포맷이라 걸 이용할
- 20:25수 있는데요 먼저 중괄호와 포맷을
- 20:27이용하는 방법이 있습니다 이런 식으로
- 20:29문장이 있을 때 문장 내에 괄호를
- 20:30넣어 주고 문자를 뒤에 점을 찍고
- 20:32포맷이라고 한 뒤에 괄호 속에다가
- 20:34출력하라는 값을 넣어 주면 돼요
- 20:36그렇게 하면 포맷 속에 있는 값들이
- 20:38순서대로 문제에 내 중괄호의 대입이
- 20:39됩니다 두 번째 방법은 첫 번째는
- 20:41비슷한데 중괄호 속에 숫자가
- 20:43들어가요네 이때 숫자는 0부터 1 2
- 20:45이렇게 커지는데 이렇게 문장을 적으면
- 20:47포맷 속에 있는 값들이 순서대로
- 20:48중괄호 0 중괄호 1의 위치에
- 20:50들어가게 됩니다 첫 번째 방법과 다른
- 20:52점은 중괄호 안의 순서를 내 숫자를
- 20:54통해서 정의해 줄 수가 있는 거예요
- 20:55예를 들어서 중괄호 0 중괄호 1이
- 20:57아니고 중괄호 로 1 중가로
- 20:590으로는면 1 부분에 자바가 들어가고
- 21:010 부분에 파이썬이 들어가서 순서가
- 21:03바뀌는 걸 알 수 있죠 마지막으로 F
- 21:05스트링이란게 있는데요 문자열 앞에를
- 21:07붙이고 문자를 내에서 중괄호로 적는데
- 21:09여기 안에 출력하고자 하는 값을 바로
- 21:11정의해 주면 됩니다 즉 이렇게 파이썬
- 21:13잡아라고 적으면 파이썬 변수의 값
- 21:15자바 변수의 값을 바로 출력해 주는
- 21:16거예요 엄청 간편하죠
- 21:29이런 문장이 있어요 친구가 파선
- 21:31배우기 쉬워 하고 물었다인데 여기
- 21:33보면 큰 다운 표가 있죠네 프린트를
- 21:35통해서이 문장을 출력하려면 앞뒤로
- 21:37작은 다운 표를 이용하면 잘 출력이
- 21:39되겠네요 이런 경우는 어떨까요 나는
- 21:41속으로 엄청 어려운데라고 생각했다인데
- 21:44여기는 작은 따옴표가 이렇게 있죠
- 21:46이때는 작은 따옴표를 통해서
- 21:47출력하려고 하면 에러가 발생합니다
- 21:49문자열은 작은 따옴표와 큰 따옴표를
- 21:51감싸진 부분이기 때문에 나는
- 21:53속으로라도 생각했다는 부분이 각각
- 21:56문자로 인식이 되어 버리는 거예요 즉
- 21:58중 간에 엄청 어려운 데라는 부분이
- 22:00혼자서 알 수 없는 녀석이 되는 거죠
- 22:01이럴 때는 작은 따옴표 대신 큰
- 22:03따옴표로 문장 전체를 감싸주면 해결이
- 22:05됩니다 그런데 이런 경우는 어떨까요
- 22:07하지만 나만 당할 수 없지라는 생각에
- 22:09엄청 쉽지고 했다이 문장은 작은 다운
- 22:12표도 있고 큰 다운 표도 있어요 일단
- 22:14큰 다운 표를 먼저 적고 시작을
- 22:15살라다 보니까 뒤에 엄청 쉽질
- 22:17부분부터 문제가 생기게 되는 거죠
- 22:18이럴 때 탈출 문자를 쓸 수 있습니다
- 22:20탈출 문자는 역 슬래시와 특정 문제의
- 22:22조합으로 표현할 수 없는 기능이나
- 22:24문제를 표시하는 건데요 문제를 내에서
- 22:26가까운 표현을 역슬래시 다음에 이렇게
- 22:27적으면 되는 거예요 즉이 문장은
- 22:29이렇게 작성하면 아무런 문제 없이
- 22:31작은 따옴표 큰 따옴표 모두 잘
- 22:32출력이 됩니다 이때는 프린트 문리
- 22:34시작과 끝도 작은 따옴표 또는 큰
- 22:36따옴표 아무거나 써도 되는 거예요
- 22:37탈출 문제를 이용해서 역 슬래시를
- 22:39표현할 수도 있는데요 윈도우에서 어떤
- 22:40폴더의 경로는 이렇게 생겼는데 이도로
- 22:42값을 출력하려면 에러가 발생합니다
- 22:44이럴 때는 역시를 두 번씩 적어 주면
- 22:46이런 형태로 잘 출력기 됩니다 /
- 22:48NL 이용해서 줄 바꿔도 할 수
- 22:49있는데요 여러 줄에 해당하는 문자를
- 22:51만들 때 다음표를 이용해서 이렇게 할
- 22:53수 있었죠 이거를 탈출 문자 역을
- 22:55이용해서 이렇게 바꾸면 탈출 문자
- 22:57부분에서 줄 바꿈 된 결과를 확인할
- 22:59수가
- 23:09있습니다 파이썬에 여러 개의 데이터를
- 23:12한꺼번에 관리하기 위한 내장 자료형을
- 23:13제공합니다 그중에서 하나가 이전
- 23:15강의에서 몇 번 한것 된 리스트인데네
- 23:17우리가 편의점에 가서를 산다고
- 23:19가정하겠습니다 OS 하나 정보는
- 23:21가볍게 들고 갈 수 있지요 그런데
- 23:22옆에 보니까 몽쉘이 있어요데 몽쉘도
- 23:24하나 사야 되겠죠 자 손은 두 개니까
- 23:26와 몽쉘 아직까지는 들고 가는데 크게
- 23:28문제가 없어요 그런데 옆에 보니까
- 23:30초코파이도 있네요 제가 군대에 있을
- 23:32때 생일 때 초코파이로 케이크을
- 23:34만들어서 축하하기도 했었는데요
- 23:35오랜만에 그 기억이 떠올라서
- 23:36초코파이는 세 개 정도 사도록
- 23:38하겠습니다 그런데 이렇게 총 다섯
- 23:39개를 다 들고 가려니까 손이 조금
- 23:41부족해 보이네요 이때 편의점 직원분이
- 23:43이렇게 물어봅니다 좋은 제 아이죠
- 23:45비닐봉투가 있으면 아무래도 들고 가기
- 23:46편할 거예요 그래서 비닐봉투에 모두
- 23:48다 집어넣고 한 손으로 편하게 들고
- 23:49갑니다 이번에 배울 리스트가 바로이
- 23:51비닐봉투 같은 건데요 우리가 변수를
- 23:53통해서 하나의 값을 저장할 수
- 23:55있었다면 리스트는 여러 개의 값을
- 23:57저장할 수 있는데요 일반적 적으로
- 23:58서로 관련 있는 연속적인 데이터들을
- 24:00관리하는데 사용합니다 리스트는 이렇게
- 24:02대가로 속개 넣고 싶은 값들을 콤마로
- 24:04구분서 선언할 수 있는데요 마이
- 24:05리스트라는 리스트에 순서대로 초코
- 24:07빵들을 넣어주면 됩니다 아 초코
- 24:08파일은 세 개라고 했죠 리스트는
- 24:11똑같은 값이 중복으로 들어가도
- 24:12허용하기 때문에 이렇게 초코 파일을
- 24:13그냥 세 번 적어주면 돼요 그리고
- 24:15리스트 안에는 숫자 분리한 문자
- 24:17자료형 등 아무 값이나 막 섞어서
- 24:18넣을 수도 있고요 만약에 아무 값도
- 24:20없는 내 비닐 리스트를 만들고 싶으면
- 24:22그냥 대가로 적어 주시면 됩니다 비어
- 24:24있는 비닐 봉토가 되는 거죠
- 24:37리스트는 여러 개의 값을 가질 수
- 24:38있는 비밀 봉투 같은 거라고
- 24:39말씀드렸죠 그러면 리스트를 어떻게
- 24:41사용할 수 있는지 알아볼게요 이렇게
- 24:42리스트가 선언되어 있을 때 어떤
- 24:44인덱스에 해당하는 값을 확인하려면
- 24:46문자열과 똑같은 방법으로 이렇게
- 24:48대가호 속에 인덱스를 넣어 주면 그
- 24:49위치에 해당하는 값이 바로 출력됩니다
- 24:51이게 가능한 이유는 리스트의 값들은
- 24:53순서가 보장된다는 특징 때문이에요 첫
- 24:55번째는 OS 두 번째는 몽실 이런
- 24:57순서 말이죠 그래서 엄밀히 말하면
- 24:59리스트는 마구잡이로 물건을 집어넣는
- 25:01순서 없는 비닐봉투가 아니라 내부에
- 25:03칸막이가 있어서 집어넣는 순서대로
- 25:04차곡차곡 관리가 되는 특수한 비닐
- 25:12봉투인데요 값을 넣어주면 됩니다 이때
- 25:15결과는 리스트 형태로 나오게 돼요
- 25:17리스트에 어떤 값이 포함되어 있는지
- 25:18보려면을 쓰면 됩니다네 결과는 분리한
- 25:20형태로 값이 있다면 트루 없다면 폴스
- 25:22이고요 리스트내 몇 개의 값이
- 25:24있는지를 보려면 랜 함수를 이용하면
- 25:26됩니다 여기에서는 값이 세 개가 들어
- 25:28들어가 있네요 리스트는 자유롭게
- 25:29수정이 가능한데요 값을 수정하려면
- 25:32이렇게 인덱스를 지정해서 마치 변수값
- 25:33변경하는 것처럼 새로운 값을 넣어
- 25:35주면 되고요 업 핸드라는 메소드를
- 25:37이용해서 리스트 맨 뒤에 새로한 값을
- 25:38추가하거나 리브를 이용해서 가로 속에
- 25:41지우라는 값을 입력함으로써 삭제할
- 25:42수도 있습니다 다른 리스트에 있는
- 25:44값을 합치려면 익스텐드 메소드를
- 25:46이용하면 됩니다 소개드린 것들 외에도
- 25:48이런 다양한 메소드가 있으니 참고해
- 25:50주세요
- 26:01리스트와 같이 여러 데이터를 관리할
- 26:03수 있는 또 다른 내장 자료형인
- 26:04튜플이 있습니다 리스트는 대가호 속에
- 26:06값들을 넣고 콤마로 구분 있었지요
- 26:08튜플은 대괄호가 아닌 소괄호 속에
- 26:10값들을 넣고 콤마로 구분 리스트와
- 26:12튜플의 가장 큰 차이점은 튜플을 한
- 26:14번 만들고 나면 수정이 불가하다는
- 26:16거예요 리스트를 공부할 때 편의점에서
- 26:18먼저 OS 몽실 mas 사서
- 26:20비닐봉투에 담고 집에 간다고 가정
- 26:21할게요 그러다가 갑자기 초코파이가
- 26:23먹고 싶어서 다시 편의점에 와서
- 26:25초코파이를 추가로 구매한다면 비닐봉투
- 26:27즉 리스트에 추가로 초코 파일을
- 26:29넣으면 되겠지요 하지만 튜플은 수정이
- 26:31불가하다고 했는데요 마치 계산하고
- 26:33나면 비닐봉투에 개봉 금지 스티커를
- 26:35붙이는 것과 같아서 와 몽쉘을 사고
- 26:37비닐 봉투에 스티커가 붙고 나면
- 26:39이후에는 초코파이를 사고 싶어도 못
- 26:40사는 거예요 심지어 와 몽쉘은
- 26:42봉투에서 꺼낼 수가 없으니 환불도
- 26:44불가능합니다 튜플은 이렇게 수정이
- 26:46불가능한데 이거 빼고는 리스트와 거의
- 26:47비슷해서 일기 전용 리스트 정도로
- 26:49이해하셔도 되겠습니다 소괄호를 써서
- 26:51이렇게 튜플을 정의할 수 있고요
- 26:53리스트와 동일하게 중복도 호용이
- 26:54됩니다 아무 자료 형이나 다 넣을 수
- 26:56있고요 사용법도 수정하 하는 것만
- 26:58제희 하고는 리스트와 비슷하게 쓸 수
- 27:00있는데요 원하는 위치의 값을 접근할
- 27:02수 있고 원소들의 순서 또한 보장이
- 27:03되고요 슬래싱 통해서 원하는만큼만
- 27:05출력하는 것도 가능합니다 포함
- 27:07여부도인 키워드를 사용하면 되고요
- 27:09길이 확인도 가능해요 튜플은 또 이런
- 27:11메소드들
- 27:22있어요 계속해서 튜플을 공부해
- 27:25보겠습니다 소괄호를 쓰고 콤마로 구분
- 27:27값들을 넣는 방 방법으로 튜플 선원이
- 27:29가능한데요 이런 작업을 패킹이 합니다
- 27:31비닐 봉투에 넣듯이 여기 오른쪽에
- 27:33주황색으로 되어 있는 값들을 왼쪽에
- 27:35있는 마이 튜플에 집어 넣는다는
- 27:36의미예요 그런데 파이썬에서는 이것의
- 27:38반대인 개념도 있습니다 이것을
- 27:40언패킹이란 하는데요 마이 튜플에 들어
- 27:42있는 내용들 하나씩 꺼내서 파이
- 27:441파이 2파이 3 변수에 각각
- 27:46저장하게 되는 거예요 마치 이런
- 27:48식으로 각각 변수의 값들을 집어넣는
- 27:49코드와 똑같아지는 거예요 언패킹는
- 27:52별을 이용할 수 있는데요 넘버스 아는
- 27:54튜플에 1부터 10까지 이렇게 정의가
- 27:55되어 있을 때 이렇게 코드를 작성하게
- 27:57되면 넘버 의 개수와 변수의 개수가
- 27:59안 맞죠 하지만 이렇게 별을
- 28:01적음으로써 넘버스 중에서 첫 번째
- 28:03값이 1은 원 변수에 2는 2 변수에
- 28:05넣고 나머지는 모두 아스에 집어
- 28:07넣으라는 의미가 되는 겁니다 이때
- 28:09아스는 여러 개의 값을 가지지만
- 28:10튜플이 아닌 리스트 형태로 된다는 점
- 28:12주의해 주세요 이거 시험에서 필요에
- 28:13따라 별의 위치는 바꿀 수 있습니다
- 28:15이렇게 맨 앞 변수의 별을 넣게 되면
- 28:179에는 9 10에는 10이 들어가고
- 28:19그 외의 값들 즉 1부터
- 28:2788까지가능 들 2부터 까지가 아들에
- 28:29들어가게
- 28:40됩니다 세트한게 있습니다 리스트
- 28:43튜플과 같이 여러 개의 데이터를
- 28:45저장할 수 있는데요 세트는 갑들이
- 28:47순서가 보장되지 않고 중복을 허용되지
- 28:49않는다는 특징이 있어요 여러분이
- 28:50친구들을 만나서 식사를 하기로
- 28:51했습니다 메뉴는 여러분이 정하기로
- 28:53했는데 일단 친구들이 어떤 음식을
- 28:54좋아하는지를 적어볼게요 친구 a
- 28:56돈가스 보쌈 그리고 덮밥을 좋아한다고
- 28:58합니다 친구 비는 짬뽕 초밥 제육
- 29:01덮밥을 좋아한다고 합니다 자 그러면
- 29:03어떤 메뉴를 고르면 아주 무난할까요
- 29:05그렇습니다 제육 떡밥을 고르면 아마
- 29:06두 친구 모두 맛있게 먹을 수 있을
- 29:08것 같아요 세트는 이렇게 선언할 수
- 29:10있습니다 중괄호 속의 값들을 콤마로
- 29:12구분 해서 넣는 거예요 먼저 친구 a
- 29:14제가 편의상 대문자 a 이름을 짓고
- 29:16좋아하는 음식을 세트로 만들어 볼게요
- 29:18친구 B 이렇게 선언하고 두 친구가
- 29:20공통으로 좋아하는 음식이 무엇인지
- 29:22우리는 답을 알고 있지만 한번 해
- 29:23볼게요 인터섹션이라는 메소드가 있는데
- 29:25이걸 이용하면 쉽게 재우도 밥을
- 29:27확인할 수 있어요 그런데 사실
- 29:28여러분은 여기에 적힌 모든 음식들을
- 29:30다 좋아합니다 그리고 오늘은 여러분이
- 29:32주인공인 자리라서 먹고 싶은 음식을
- 29:33고르라고 친구들이 말을 했어요 그러면
- 29:35두 친구들이 좋아하는 모든 음식들이
- 29:37다 후보가 될 수 있겠죠네 합집합을
- 29:39통해서 모든 음식을 합쳐 볼게요
- 29:41유니온이란 메소드로 이렇게 쓰면
- 29:42되는데요 세트는 순서를 보장하지 않기
- 29:44때문에 출력 결과는 이것과 조금 다를
- 29:46수는 있어요 그리고 중복은 허용하지
- 29:48않으므로 제육 덮밥은 한 번만 들어간
- 29:49것을 알 수 있네요 그런데 갑자기
- 29:51친구는 자기가 좋아하는 음식 빼고는
- 29:53다른 음식은 잘 못 먹는다고 해요
- 29:55그리고 최근에 제국도 밥은 너무 많이
- 29:57먹어서 그거는 빼고 먹고 싶다는
- 29:58의견을냅니다 그래서 어쩔 수 없이 a
- 30:00man 좋아하는 음식을 추리기 합니다
- 30:02B 공통으로 좋아하는 제율 떡밥은
- 30:04먹기 싫다고 했으니까 a 세트에서 b
- 30:06세트를 빼는 즉 차 집합을 이용하면
- 30:08되겠네요 이때는 디퍼런스는 메소드를
- 30:10쓰면 됩니다 그러면 a 세트에서 b
- 30:12세트의 값들을 뺀 순수 a 세트에만
- 30:14있는 값들을 뽑게 되는
- 30:26거죠 세트는 갑들이 순서가 보장되지
- 30:28않는다고 했는데요 순서가 보장되지
- 30:30않는다는 의미는 우리가 리스트에서
- 30:32이렇게 값이 있을 때 인덱스를 통해서
- 30:34첫 번째 값이라 둘을 수도 있고 0
- 30:35인덱스에 해당하는 값을 직접 바꿀
- 30:37수도 있었죠 튜플이 경우에도 값
- 30:39변경은 불가하지만 이렇게 인덱스를
- 30:41통해서 값을 접근하는 건 가능했습니다
- 30:43하지만 세트는 순서가 보장되지
- 30:44않으므로 인덱스를 통해서는 접근할
- 30:46수가 없어요 이게 리스트와 튜플과는
- 30:48다른 중요한 차이점인데 하지만
- 30:49그렇다고 해서 튜플 럼 일기 전용인
- 30:51것만은 아닙니다 예를 들어서 원래는
- 30:53친구가이 세 가지 음식만 먹을 줄
- 30:55알았는데 닭갈비를 한번 먹어 봤더니
- 30:57너무 맛있는 거예요 그러면 먹을 수
- 30:58있는 음식이 하나 늘어난 거죠 그럴
- 31:00땐 이렇게 애드 메소드를 이용해서
- 31:02값을 추가할 수가 있습니다 또는 제육
- 31:04덮밥을 너무 많이 먹어서 질려버려
- 31:05가지고 더 이상은 못 먹겠다고 하면
- 31:07리무브 메소드를 이용해서 값을 뺄
- 31:09수도 있어요 아니면 다이어트를 하기로
- 31:11마음먹어서 앞으로 모든 음식을 다 안
- 31:12먹겠다고 하면 클리어 메소드를
- 31:14이용해서 모든 값을 싹 지울 수도
- 31:16있습니다 참고로 이렇게만 하면 마이
- 31:17셋은 값이 비어 있는 세트가 되는
- 31:19거고요 딜리트 의미하는 D 띄우고
- 31:22세트를 적어 주면은 마이 셋이라는
- 31:24세트 자체를 완전 삭제해 버리게
- 31:25됩니다 그럼 이후에는 마이 셋을 아
- 31:27쓸 수가 없는 거예요 이거는 리스트와
- 31:29튜플로 동일합니다 세트에는 또 이런
- 31:32메소드들로
- 31:43있어요 마지막으로 배울 자료형은
- 31:46딕셔너리 있니다 사정이라는 뜻이죠
- 31:48우리가 사전에서 어떤 단어를 찾으면
- 31:49보통 이런 식으로 구성되어 있는데요
- 31:51단어가 있고 그 단어의 뜻이 항상
- 31:53함께 있습니다 파이썬에서 비슷한데요
- 31:55공부라는 단어의 뜻이 궁금하면
- 31:57사전에서 공부를 찾으면 되겠죠 이때
- 31:59공부를 키라고 하고요이 단어의 의미가
- 32:01설명된 부분을
- 32:03밸류라인 딕셔너리는 키와 밸류가 항상
- 32:05쌍으로 이루어지는 거예요 이때 키는
- 32:07중복이 허용되지 않습니다 딕셔너리는
- 32:10이렇게 중괄호로 쓰고 키와 밸류를
- 32:12콜론으로 구분니다 이게 하나의
- 32:13데이터가 되는 거예요 그리고 다음
- 32:15데이터는 콤마로 구분서 또 키 2
- 32:18밸류 2 이렇게 콜론으로 구분은
- 32:19데이터를 계속해서 쓰면 됩니다 예를
- 32:21들어서 이런 사람이 있다고 하면요
- 32:23이름 나이 키 몸무게는 각각 키에
- 32:24해당하는 것들이고 실제 값들은 밸류가
- 32:27되는 거예요 이거를 코드로 표현하면
- 32:29이렇게 할 수 있습니다 그런데 적고
- 32:31보니까 좀 길고 알아보기가 힘들죠 자
- 32:33그럴 때는 이렇게 줄 바꿈을 해서
- 32:34작성해도 괜찮아요 이에서는 모든
- 32:37키값이 따옴표를 포함한 문자 형태인데
- 32:39숫자 등 다른 형태로도 키를 정의할
- 32:41수 있습니다 다만 중복만 피하면
- 32:42되고요 그리고 밸류 부분도 나 귀염은
- 32:45문자이고 다른 값들은 정수인
- 32:47딕셔너리에 숫자 문자 분리한 리스트나
- 32:50튜플 등도 얼마든지 밸류로 사용될 수
- 32:52있습니다 이렇게 정의된 딕셔너리
- 32:54데이터에 접근하려면 대가호 속에
- 32:56키카를 집어넣으면 되는 거예요 즉
- 32:58이름이라는 키에 해당하는 것을
- 32:59출력하려면 이렇게 하고요 나라는 키에
- 33:01해당하는 것을 출력하려면 이렇게 할
- 33:03수
- 33:14있습니다 딕셔너리의 사용법에 대해서
- 33:16하나씩 알아볼게요 먼저 이렇게
- 33:18펄슨이라는 딕셔너리를 선언했을 때
- 33:20키에 해당하는 밸류를 확인하려면
- 33:22이렇게 대괄호를 통해서 키를 넣어주면
- 33:23그에 해당하는 값을 얻어오는 걸 해
- 33:25봤는데요 별명이라는 키에 접근 하로
- 33:27가면 에러가 상입니다 퍼슨 딕셔너리에
- 33:29별명이라는 키는 없기 때문이지요 이때
- 33:31겟 메소드라는 걸 쓰면 똑같이
- 33:33별명이라는 키에 접근을 시도하는데
- 33:35키값이 없어도 에러는 발생하지 않고
- 33:36그냥 논이 출력됩니다네 물론 키값이
- 33:39있으면 그에 해당하는 밸류가 나오게
- 33:40되고요 새로운 데이터를 추가하려면
- 33:42대가호 속에 새로운 키를 넣고 밸류를
- 33:44정용해 주면 되고요 특정 키에
- 33:46해당하는 밸류를 바꾸고 싶다면 똑같은
- 33:48방법으로 해 주면 됩니다 즉 새로운
- 33:49키이며 값 추가 이미 존재하는 키면
- 33:51값 수정이 되는 거예요 하나가 아닌
- 33:53여러 키에 해당하는 밸류드 바꾸려면
- 33:55업데이트 메소드를 이용하고 괄호 속에
- 33:57는 딕셔너리 형태로 바꾸려는 키와
- 33:59업데이트될 밸류드 정의해 주면 됩니다
- 34:02여기에서는 키를 130으로 몸무게를
- 34:0426으로 업데이트를 해 주는 거예요
- 34:06특정 키 밸류 데이터를 삭제하려면
- 34:08팝이라는 메소드를 사용하고 지우라는
- 34:09키 값을 넣어주면 됩니다 모든
- 34:11데이터를 삭제하려면 다른 자료형과
- 34:13마찬가지로 클리어를 쓰면 되고요
- 34:15딕셔너리 안에 어떤 키들이 있는지
- 34:16확인하려면 키스라는 메소드를 이용하면
- 34:19됩니다 어떤 값들이 있는지 확인하려면
- 34:21밸리라는 메소드를 쓰면 되고요 키와
- 34:23밸류를 쌍으로 모두 출력하는 방법이
- 34:25있는데 아이스라는 메소드를 쓰면
- 34:27이렇게 키 키와 밸류가 콤마로 구분은
- 34:29모든 데이터를 확인할 수 있습니다
- 34:31딕셔너리에 또 이런 것들도
- 34:43있어요 지금까지 우리는 여러 데이터를
- 34:45한 번에 관리하기 위한 네네 가지
- 34:47자료형을 배워봤는데요 각각의 자료형에
- 34:49가지는 특징을 비교해 보도록
- 34:50하겠습니다 먼저 리스트는 대괄호로
- 34:52선언을 하고 콤마로 값을 구분서
- 34:54넣으면 되고요 값을 넣는 순서대로
- 34:56그대로 들어가게 되면 중복값 얼마든지
- 34:58넣을 수 있습니다 순서가 보장되기
- 35:00때문에 대가호 안에 인덱스를 넣어
- 35:01주는 방식으로 접근이 가능합니다
- 35:03슬래싱 가능하지요 인덱싱을 통해서
- 35:05값을 직접 수정할 수도 있고 이런
- 35:07메소드들을 통해서 값을 추가할 수도
- 35:08있고요 삭제도 가능합니다 튜플은
- 35:11소괄호를 이용해서 선언할 수 있고요
- 35:13리스트와 마찬가지로 순서가 보정이
- 35:14되고 중복 값도 허용이 됩니다 접근도
- 35:16똑같이 하면 되지요 그런데 튜플은
- 35:18읽기 전용이라서 수정 추가 삭제가
- 35:20불가능합니다 튜플이 가지는 아주
- 35:22중요한 특징이에요 세트는 중괄호를
- 35:24이용해서 선언하고 리스트와 튜플과
- 35:26다르게 값의 순서가 보장되지 않습니다
- 35:28그리고 중복은 허용하지 않기 때문에
- 35:30같은 값을 여러 번 넣어도 세트 내
- 35:32그 값은 딱 하나뿐이에요 순서 보장이
- 35:34되지 않으므로 인덱스를 통한 접근은
- 35:36불가능합니다 접근이 불가능하기 때문에
- 35:38세트 내의 어떤 값을 직접 수정하는
- 35:40것도 안 돼요 하지만 세트 자체에
- 35:41새로운 값을 추가하거나 삭제하는 것은
- 35:43가능합니다 마지막으로 딕셔너리는
- 35:45중괄호로 선언 하대 키와 밸류가 항상
- 35:47쌍으로 따라다니 그리고 입력한 값들이
- 35:49순서가 보장이 됩니다 참고로 파이썬
- 35:513.7 버전부터 순서 보장이 되기
- 35:53시작했어요 키 값은 중복을 허용하지
- 35:55않고요 접근은 인덱스가 아닌 키로
- 35:57하면 되고요 접근한 뒤에는 밸류
- 35:59변경도 가능합니다 새로운 키와 밸류도
- 36:01이렇게 쉽게 추가가 가능하며 삭제도
- 36:03가능합니다 개발하다 보면 다양한
- 36:05경우가 있겠지만 각 자료형을 언제
- 36:06쓰면 좋을지 간략하게 정리해 보면요
- 36:08여러 값들을 순서대로 관리해야 한다면
- 36:10그냥 리스트를 쓰면 됩니다 한 번
- 36:12만들고 나면 바뀔 일이 없거나 아니면
- 36:14프로그램 동작 중에 실수로라도 값이
- 36:15바뀔 수 있는 상황을 막으려면 튜플을
- 36:17쓰고요 특정 값이 있는지 없는지
- 36:19여부가 중요하다면 그리고 중복을
- 36:21허용하지 않는 데이터들이 경우에는
- 36:22세트를 쓰고요 키를 통해서 효율적으로
- 36:24데이터를 관리하고 싶다면 키 밸류
- 36:26쌍으로 이루어진 딕션 래를 쓰시면
- 36:38됩니다 값이 바뀔 일이 없거나 바뀌면
- 36:41안 되는 경우 튜플을 쓰라고
- 36:42말씀드렸습니다 튜플은 수정 추가
- 36:44삭제가 모두 불가능한 일기 전용 자료
- 36:46형이니까 그런데 튜플로 사실은 수정을
- 36:49하는 방법이 있습니다 이렇게 튜플을
- 36:51선환 했는데 만약에 초코 파일을
- 36:52추가하고 싶다면요 리스트를 적고
- 36:54소가로 감싸면 리스트 형태로 바뀌게
- 36:56됩니다 일단 마일 리스트라는
- 36:58이름으로이 리스트를 저정해 고요
- 37:00리스트에서 제공하는 어펜드 메소드를
- 37:01이용해서 값을 추가하고 다시 튜플
- 37:03소괄호 마일 리스트를 감싸면 튜플로
- 37:05자료형이 또 바뀌는 거예요 이걸 마이
- 37:07튜플에 넣어 주면 되는 거예요 다시
- 37:09정리하면 튜플을 리스트로 리스트를
- 37:11튜플로 바꾸기 위해 각 자료형을
- 37:13이렇게 튜플 괄호 또는 리스트 괄호로
- 37:15감싸면 됩니다 리스트는 중복값이
- 37:17허용되는데 때로는 중복 값들을
- 37:19제거해야 할 때도 있습니다 그럴 땐
- 37:20이렇게 할 수 있는데요 초코파이가 세
- 37:22번이나 들어간 리스트가 있을 때 이런
- 37:24식으로 세트를 적고 괄호 속에
- 37:25리스트를 넣어서 세트로 바꿀 수가
- 37:27있어 있어요 세트는 중복을 허용하지
- 37:29않기 때문에이 과정에서 중복 값인
- 37:31초코파이는네 세 개 중에서 하나만
- 37:33남고 사라지게 됩니다 그런 다음에
- 37:34다시 리스트로 바꿔 주면 돼요 그런데
- 37:36세트는 중복도 허용하지 않지만 순서도
- 37:38보장하지 않지요 그래서 값을 찍어
- 37:40보면 이렇게 순서가 뒤죽박죽 섞일
- 37:42수도 있습니다 순서가 중요하지 않은
- 37:44리스트라는 그냥 써도 되겠지만 순서가
- 37:46중요하다면 세트로 변환을 하면 안
- 37:48되겠지요 그럴 땐 또 다른 방법이
- 37:50있습니다 바로 딕셔너리를 이용하는
- 37:51건데요 딕셔너리는 순서를 보장하면서
- 37:54키의 중복을 허용하지 않습니다 그래서
- 37:56이런 리스트가 있을 때 딕트 from
- 37:58키스라고 입력하고 괄호 속에 마이
- 38:00리스트를 넣어주면 리스트에서 중복이
- 38:02제거된 OS 몽쉘 초코 파일을 키로
- 38:04가지는 새로운 딕셔너리가 생깁니다
- 38:06참고로 이때 밸류는 모두 원이에요
- 38:08그리고이 딕셔너리를 다시 리스트로
- 38:10감싸면 키 값들만 뽑아서 리스트로
- 38:12다시 변환할 수가 있습니다 이렇게
- 38:13하면 처음 리스트를 선언했을 때이
- 38:15순서도 보장이 되는 거죠 이렇게 해서
- 38:17각각 다른 특징을 가지는 자료 형들을
- 38:19서로서로 바꿔 보는 방법을 공부해
- 38:21봤습니다
- 38:33지금까지 우리가 작성한 코드는 항상
- 38:35위에서 아래로 순서대로 하나씩 모든
- 38:37문장을 수행했습니다 물론 주석 처리를
- 38:39하면 그 문장은 무시가 되었지만요
- 38:41그런데 프로그램을 만들다 보면 반드시
- 38:43모든 문장이 실행될 필요는 없을 수도
- 38:45있습니다 어떤 경우에는이 코드가 또
- 38:47어떤 경우에는 저 코드가 실행되기를
- 38:49원할 수도 있고요 그럴 때 필요한
- 38:50것이 바로입니다 프는 만약 뭐
- 38:53뭐라면이라는 조건에 따라서 분기를
- 38:55태울 수 있는데요 조건이 참일 때만
- 38:57즉 즉 트일 때만이 문장을 수행하도록
- 38:59할 수가 있습니다 조건이 거짓이면 즉
- 39:01폴스이면이 문장이라는 부분은 실행되지
- 39:03않는 거죠 코드로 나타내면 이런
- 39:05형태로 쓸 수 있습니다 if 띄우고
- 39:07어떤 조건을 적고 끝에 콜론을 적어
- 39:09줍니다 그리고 다음 줄에는이 조건이
- 39:11참일 때 실행할 문장을 적어 주시면
- 39:13되는데 주의하실 점은 반드시 앞에
- 39:15들여쓰기를 해 주셔야 한다는 점이에요
- 39:17들여쓰기는 보통 스페이스 네번 또는
- 39:19키보드이 탭을 한 번 누르면 됩니다
- 39:20비주얼 스튜디오 코드의 경우에는 조건
- 39:22뒤에 콜론을 입력하고 나서 엔터를
- 39:23치면 자동으로 들여쓰기가 됩니다
- 39:25코드를 이렇게 적어봤어요 여러분이
- 39:27이라면 공부를 해야 될 텐데
- 39:28일요일이면 어떻게 하죠네 게임을 한
- 39:30판 하고 공부를 시작해야죠 그래서
- 39:32투데이 변수가 일요일이면이 조건이
- 39:34차임으로 게임을 먼저 한 판 하고
- 39:36나서 공부를 시작하게 됩니다 그런데
- 39:38오늘이 일요일이 아니라면 만약에
- 39:40화요일이라 men 프 조건이 거짓이
- 39:42게임을 하지 않고 바로 공부를
- 39:44시작해야겠네요 즉이 문장 부분네
- 39:46여기죠 여기는 실행되지 않고 바로
- 39:48다음 문장으로 넘어가게 되는
- 39:49거예요에는 이런 형태도 있는데요
- 39:51조건이 참이면이 문장을 조건이
- 39:53거짓이면 저 문장을 수행하는 방법도
- 39:56있습니다 조건에 따라서 둘 중 하나를
- 39:58선택하게 되는 거죠 코드로는 이렇게
- 40:00if 조건문 아래에다가 스를 적고
- 40:02콜론을 적으면 됩니다 그 밑에 저
- 40:04문장 부분을 역시나 앞에 들여쓰기를
- 40:06하고 나서 적어주면 되고요 이렇게
- 40:07하면 이프 조건이 만족하면이 문장을
- 40:10그렇지 않으면 저 문장을 수행하고
- 40:11나서 다음 문장으로 가게 되는 거예요
- 40:13예를 들어서 코드가 이렇게 있을 때
- 40:15오늘이 일요일이면 게임 한 판을 하고
- 40:17공부를 시작할 거고요 이때는 스
- 40:19부분은 아예 실행을 하지 않게 되는
- 40:21거예요 오늘이 일요일이 아니라면이
- 40:23부분은 무시되고 스 부분이 실행되어서
- 40:25스마트폰 딱 5분만 하고 나서 공부를
- 40:27시작하게 될 겁니다 앞에서 프가 만약
- 40:29뭐 뭐라면이라고 설명을 드렸는데요
- 40:32if는 이렇게 이해하시면 됩니다 만약
- 40:34뭐 뭐라면 if 네이 문장들이 그렇지
- 40:36않다면 L 네이 문장들이 실행되는
- 40:49거예요 잠깐 복습해 볼게요는 만약
- 40:52뭐뭐하면 if a 문장들이 실행되는
- 40:54거고요 if s n 만약 뭐뭐하면
- 40:56if a 문장들이 그렇지 않다면 L
- 40:58내입 문장들이 실행되는 거예요 그런데
- 41:00여기 한 가지가 더 있습니다 바로
- 41:01L이라는 건데요 l 이프는의 조건이
- 41:04참이 아닌 경우 다른 조건을 다시
- 41:06한번 확인하기 위한 용도로 사용됩니다
- 41:08프는 와 S 사이에 원하는만큼 여러
- 41:10개를 넣을 수 있는데요 처음 프의
- 41:12조건이 틀리다면 주황색 LF 조건을
- 41:14확인하고 주황색도 틀리다면 초록색을
- 41:16초록색도 틀리다면 파란색을 파란색도
- 41:19틀리다면가 실행되는 거예요 참고로 L
- 41:21이도 선택 사항이지만 문을 사용할 때
- 41:23스도 항상 같이 있어야 되는 건
- 41:25아니에요 그래서 필요 없는 경우에는
- 41:26스를 생략할 수도 있습니다 if l
- 41:28if를 플로로 그려봤는데요 만약 if
- 41:31조건이 참이라면이 문장 실행 후에
- 41:33다음 문장으로 거짓이라면 L if
- 41:36조건을 확인하고 이게 참이라면 저
- 41:38문장 실행 후에 다음 문장으로
- 41:40이마저도 거짓이라면 그 문장 실행
- 41:42후에 다음 문장으로 넘어가야 되는
- 41:44겁니다 코드를 보시면 맨 처음에는 첫
- 41:46번째 조건이 들어가게 되고요 그 밑에
- 41:48L 이프를 쓰고 동일한 형태로 두
- 41:50번째 조건을 적습니다 그 이후에 스를
- 41:52넣어서 위에 나열한 모든 조건이
- 41:54만족하지 않을 때의 동작을 처리할 수
- 41:55있어요 즉 코드가 이렇게 있을 때
- 41:57오늘이 일요일이면 이렇게 되는 거예요
- 41:59게임 한 판만 하고 나서이 품을 모두
- 42:02빠져나와서 공부를 시작하게 되고요
- 42:04오늘이 토요일이라 첫 번째 조건은
- 42:06만족하지 않으므로 다음 조건으로
- 42:08내려오고 다음 조건에서는 만족을
- 42:09하므로 l a 코드가 실행되고를
- 42:12빠져나오게 되죠 즉 이렇게 되어서
- 42:14폰을 5분만 만지고 나서 공부를
- 42:15시작하게 되고요 오늘 일요일도 아니고
- 42:17토요일도 아니라면 if l if 모두
- 42:20조건을 만족하지 않으므로 스 부분이
- 42:22실행되어서 물만 한자 마시고 바로
- 42:24공부를 시작해야 될 겁니다 와 스
- 42:26사이에 L if 얼마든지 추가될 수
- 42:27있다는 점 기억해
- 42:39두세요 프 중첩을 배워 보겠습니다
- 42:42중첩이란 말 그대로 이프문 내에서 또
- 42:44다른 부문을 사용하는 경우인데요
- 42:45그림에서 보시는 것처럼 첫 번째 프가
- 42:47참이라면 일단이 문장이 실행되고 나서
- 42:50노란색으로 차리진 두 번째 프를
- 42:52확인하게 되는 거예요 두 번째 프가
- 42:54참이면 저 문장이 실행되지만 만약 두
- 42:56번째 프가 거짓이라면 저 문장은
- 42:58실행되지 않고 바로 다음 문장으로
- 42:59넘어가게 될 거예요 코드로 나타내면
- 43:01프 문장 다음 줄에 뒤로쓰기 하고
- 43:03나서이 문장을 적고요이 문장 다음
- 43:06줄에 중첩된 이프 문은이 문장과
- 43:09동일한 크기만큼의 드레스를 하고 나서
- 43:10적고요 중첩된 이프가 참일 때 실행될
- 43:13저 문장은 또 중첩된 프를 기준으로
- 43:16이만큼 들여쓰기가 되어야 한다는 점을
- 43:18주의해 주세요 축구 경기를 하다가
- 43:20반칙을 하면은 경우에 따라서 냥
- 43:22주의만 주는 경우도 있지만 정도가
- 43:23심하면 옐로 카드 또는 레드 카드를
- 43:25주는 경우도 있습니다 레드 카드는
- 43:27받으면 바로 퇴장이 man 옐로
- 43:29카드도 두 번을 받으면 경고 누적으로
- 43:31레드 카드와 동일하게 퇴장이 되지요
- 43:33어떤 선수가 옐로우 카드를 받았을 때
- 43:34지금까지 누적 옐로 카드 개수에
- 43:36따라서 다르게 처리하는 방법을 프로
- 43:38한번 구현해 볼게요 먼저 한 선수가
- 43:40있습니다이 선수의 옐로 카드는
- 43:41처음에는 0이죠 한 번더 경고로 받지
- 43:43않았으니까 그런데 경기를 하다가
- 43:45파울을 해 버렸습니다 여기 트라고
- 43:47적혀 있지요네 편의상 옐로 카드에
- 43:49준하는 파울 정도라고 할게요 다음
- 43:51줄에서 부문을 통해서 파울 여으로
- 43:52확인을 하고요 파울이 맞다고 하면
- 43:54옐로 카드를 한 장 받겠지요 현재까지
- 43:56상황은 그림으로 나타나면 이렇게
- 43:57되고요 이때 옐로 카드가 총 몇
- 43:59장인지 확인해서 한 장이면 계속
- 44:01게임을 진행하고 두 장이면 퇴장을
- 44:03하는 코드를 추가해 보겠습니다 이때
- 44:05중첩 부문이 필요한데요 동일화
- 44:07위치만큼 들여쓰기를 한 상태에서
- 44:09부문을 하나 더 쓰고 옐로 카드가 두
- 44:11장이 맞다면 그다음 줄에 다시
- 44:13들여쓰기를 하고네 경고 누적으로 인한
- 44:16퇴장이라는 문구를 찍어 주겠습니다
- 44:17그림으로 나타내면 이렇게 되는 셈이죠
- 44:19옐로 카드가 두 장이면네 트일 때
- 44:21경고 누적 퇴장을 출력해 주는 거예요
- 44:24만약 옐로 카드를 처음 받는 경우라면
- 44:25퇴장은 아니지만 앞으로 는 조심해야
- 44:27되겠죠 그래서 스를 적고 옐로 카드가
- 44:29두 장이 아닐 때에 대한 처리를
- 44:31이렇게 해 줍니다 그림으로는 이렇게
- 44:33되겠고요 그런데 만약 파울이
- 44:34아니었다면네 파울 변수가 폴스 있다면
- 44:37여기 안에 있는 이프 문들은 아예
- 44:38실행이 안 되겠죠 즉 옐로우 카드를
- 44:40받을 만한 파울이 아닌 그냥 주위
- 44:42정도만 주는 파울이 때는 첫 번째
- 44:44프와 동등한 위치에 스 문을
- 44:45이용해서네 주라고만 찍어 주겠습니다
- 44:48그림으로는 이렇게 되는 거예요네
- 44:49파울이 아니면은 그냥 주위만 주는
- 44:51겁니다 그 이후에는 이제 이품 밖에
- 44:54있는 다음 문장들을 실행하게 될
- 44:56겁니다 이렇게 해서 어떤 조건이 맞을
- 44:58경우에 또 다른 조건을 확인할 수
- 45:00있는 프 중첩을
- 45:12배워봤습니다 채우 시간에 선생님이
- 45:14학생들이 몸을 풀기 위해서 8발
- 45:15뜨기를 시켰습니다 그런데 8발 뜨기를
- 45:18할 때마다 8발 뜨기 해 8발 뜨기
- 45:20해 8발 뜨기 해라고 계속 이야기
- 45:22하진 않죠 보통 8발 뜨기 10회
- 45:24시작 이렇게 합니다 그러면 학생들은
- 45:26동일한 뜨기 동작을 반복해서 열 번
- 45:28하게 되는 거죠 프로그램도
- 45:30마찬가지입니다 프린트 문을 이용해서
- 45:32문장을 하나 찍어 볼게요 똑같은
- 45:33문장을 열 번 출력하려면 복사
- 45:35부여하기를 10번 하면 되겠죠 그런데
- 45:3710열 번이 아니라 1,000번
- 45:38출력을 하려면 그냥 복부 가지고는 안
- 45:40될 것 같습니다 이때 필요한 것이
- 45:42방법 문입니다 반복 물에도 여러
- 45:44종류가 있는데 가장 기본적인 포을
- 45:46먼저 배워 볼게요 사용 문법은
- 45:47이런데요 포 변수인 반복 범위 또는
- 45:50대상을 적고 콜론을 한 뒤에 다음
- 45:52줄에 들여쓰기를 하고 나서 반복
- 45:54수행할 문장들을 적으면 됩니다 예를
- 45:56들어보 게요네 4x인 레인지 함수를
- 45:58이용해서 10을 넣은 뒤에 콜론을
- 46:00적고요 그다음 줄에 프린트 8머리
- 46:02뜨기 해를 적습니다 이때 레인지
- 46:0410은 총 열번을 반복하라 의미로
- 46:06사용이 된 거라서이 문장은 오른쪽에
- 46:08있는 문장과 100% 동일합니다데
- 46:10방범문 4를 이용해서 딱 두 줄 만에
- 46:12같은 출력 결과를 만들어 낸 거죠
- 46:14문장을 조금 바꿔 볼게요 여기에서
- 46:15제가 x고 적은 부분을 프린트문
- 46:17대에서 써 볼 건데요 x n 레인지
- 46:1910을 통해서 반복을 할 때마다 값이
- 46:21바뀝니다 실행을 해 보면 x 값은
- 46:23이렇게 0부터 9까지 변하는 걸 알
- 46:25수 있는데요 레인지는 어떤 범위 내의
- 46:27숫자들을 만들어 주는 기능을 합니다
- 46:28그래서 만약에 레인지 10을 하게
- 46:30되면 0 이상 10 미만 즉 0부터
- 46:329까지의 숫자들을 만든다고 보시면
- 46:34되고요 4x in 레인지 10을 하게
- 46:36되면 0부터 99까지의 숫자들을
- 46:38순서대로 x 하나씩 넣는다고
- 46:40이해하시면 됩니다 참고로 이때 x n
- 46:42그냥 제가 지어준 이름이고요 일반
- 46:44변수처럼 여러분들이 원하는 이름으로
- 46:45자유롭게 사용하실 수 있습니다
- 46:58포 방법으로 배울 때 레인지를
- 46:59사용했었는데요 레인지 10이라고
- 47:01적으면 0 이상 10 미만의 숫자들을
- 47:03만들어 준다고 했습니다 이때
- 47:0510이라는 값은 스톱을 의미합니다 즉
- 47:070부터 스톱 미만에 해당하는 숫자들을
- 47:09만드는 건데요 포 반복문에서 이렇게
- 47:11작성을 하고 실행을 해 보면 0부터
- 47:139까지 출력이 될 텐데 컴퓨터랑
- 47:15다르게 우리 실생활에서는 수를 셀 때
- 47:161부터 시작하죠 이럴 때는 레인지를
- 47:18조금 다르게 써서 이렇게 콤마로
- 47:20구분서 값을 두 개 넣어주면 첫 번째
- 47:22값이 시작 값이 되고 두 번째 값이
- 47:24종료 값이 되는 거라서 스타트 이상
- 47:26스타 미만까지 숫자들을 만들어 주는
- 47:28거예요 예를 들어서 레인지 함수의
- 47:301과 10을 차례로 넣어주면 0이
- 47:32아닌 1부터 시작해서 1 이상 10
- 47:34미만의 숫자들을 만들게 됩니다 그런데
- 47:36사실은 레인지를 쓸 때 한 가지 값이
- 47:37더 들어갈 수 있습니다 바로 스텝이라
- 47:39건데요 스텝 값을 지정하게 되면
- 47:41숫자들 사이에 그만큼을 증가하게 즉
- 47:43띄우게 됩니다 우리가 홀수 짝수 또는
- 47:463위 배수 등과 같이 규칙적인 간격의
- 47:48숫자들이 필요할 때도 있는데요 레인지
- 47:501마 10 2을 하게 되면 1 이상
- 47:5310 미만의 수를 만드는데 숫자마다
- 47:55이만큼씩 증가 하라는 의미가 되어서
- 47:571 3 5 7 9와 같은 홀수로 된
- 47:59숫자를 만들 수도 있고요 스타트 값
- 48:012로 바꾸게 되면 2부터 시작해서
- 48:032만큼 증가한 2 4 6 8 즉
- 48:06짝수들의 숫자들도 만들 수 있습니다
- 48:08레인지 3 10 3을 하게 되면
- 48:103부터 시작해서 10 미만의 숫자들을
- 48:133만큼 증가한 3의 배수로 이루어진
- 48:153 6 99라는 숫자들로 만들 수도
- 48:17있습니다
- 48:29포 반복문은 이런 형태로 쓸 수
- 48:31있는데 반복 범위 또는 대상을
- 48:32순회하면서 포문 내의 문장을 반복
- 48:34수행하게 되지요 앞에서 우리는
- 48:36레인지를 통해서 반복 범위를 지정해
- 48:37봤었는데 이번에는 반복 대상을
- 48:39이용해서 포을 활용해 보겠습니다 반복
- 48:41대상에는 우리가 자료형을 공부할 때
- 48:43배웠던 리스트 튜플 딕셔너리가 쓸 수
- 48:45있는데요 마일 리스트라는 리스트가
- 48:47있을 때 4포 반복으로 이렇게 쓸 수
- 48:48있어요 4x in 마일 리스트 콜론
- 48:50하게 되는 거죠 자 이때 마일 리스트
- 48:52안에 있는 1 2 3이라는 값들을
- 48:54순서대로 하나씩 꺼내 가지고 X
- 48:56집어넣 이렇게 되고요 실링에 보면
- 48:58결과는 1 2 3이 나오게 됩니다
- 49:00튜플로 리스트와 동일하게 사용할 수
- 49:01있고 예제의 결과도 마이 리스트와
- 49:03동일하죠 딕셔너리는 좀 달라요 이렇게
- 49:06퍼슨이라는 딕셔너리가 선되어 있을 때
- 49:08딕셔너리는 키와 밸류가 쌍으로
- 49:10이루어지기 때문에 퍼슨 . 밸류를
- 49:12반복 대상으로 하게 되면 펄슨이라는
- 49:13딕셔너리가 가지는 값에 해당하는
- 49:15부분이 출력이 되고요 밸류스 대신
- 49:17키스를 입력하면 키에 해당하는 부분이
- 49:19출력이 됩니다 또는 딕셔너리가 가지는
- 49:22아이템를 이용하면 키와 밸류가 함께
- 49:24발언이 되어서 모두 다 출력해 볼 수
- 49:26있지요 이때는 키와 밸류를 모두 받기
- 49:28위해서 포 뒤의 변수 부분에를 위한
- 49:31K 밸류를 위한 VGA 콤마로 구분
- 49:33어서 둘 다 들어간다는 점 주의해
- 49:35주세요 이런 자료형 외에도 일반
- 49:37문자열도 반복문이 대상으로 사용할 수
- 49:39있는데요 루이라는 변수에 애플이라는
- 49:41문자열을 선해 두고 반복문으로 실행해
- 49:43보면 이렇게 문자일 레의 글자들이
- 49:45하나씩 출력되는 것을 알 수 있습니다
- 49:58파이썬의 반복 물에는 일이란 것도
- 49:59있습니다 사전적으로는 뭐뭐 하는
- 50:01동안이라는 의미를 가지는데요 포와
- 50:03일은 성격이 조금 다릅니다 포는
- 50:05정해진 범위 또는 데이터를 순회하면서
- 50:07반복하는 것이라면 일은 조건이 참인
- 50:09동안 계속해서 반복하는 거예요 예를
- 50:11들면 이런 거죠 여러분이 비행기를
- 50:12타고 여행을 가기로 했습니다 그러면
- 50:14캐리어의 짐을 사야겠죠 항공권을 보니
- 50:15수화물로 붙이는 짐은 최대 25kg
- 50:18아지 허용한다고 해요 이런 경우
- 50:19우리는 보통 집에서 캐리어의 짐을
- 50:21넣으면서 무게를 체크합니다 25km
- 50:23초과하지 않는 범위까지 짐을 넣고
- 50:25캐리어를 잠그 있죠 상 여러분이
- 50:27가지고 있는 짐은 모두 3kg
- 50:28가정하겠습니다 그러면 최대 여덟 개의
- 50:30짐을 넣을 수 있겠네요 25kg
- 50:32초과하지 않는 범위 내에서는이 내용을
- 50:34코드로 구현해 볼게요 먼저 일을
- 50:36사용하는 방법은 일 뒤에 조건을
- 50:38입력하고 콜론을 적고요 그 밑에
- 50:40들여쓰기를 하고 나서 반복 수행할
- 50:42문장을 적어 주시면 됩니다 변수 세
- 50:44개를 먼저 사랑할게요 최대 허용
- 50:46무게를 의미하는 맥스에는 25를
- 50:47적고요 현재 캐리어 무게를 의미하는
- 50:49웨이트에는 일단은 영으로
- 50:51시작하겠습니다 그리고 각 짐의 무게는
- 50:53아이템 변수의 3으로서 그리고 일문을
- 50:56사용 하는데요 일 뒤에는 조건을
- 50:58넣으면 되는데 여기에서는 현재
- 51:00캐리어의 무게인 웨이트에 지무 무게인
- 51:02아이템을 더한 값이 최대 허용 무게
- 51:04이하인지를 보겠습니다 이렇게 적으면
- 51:06캐리어의 짐을 더 넣어도 되는지를
- 51:08확인하게 되는 거죠 그리고이 조건이
- 51:09참이라면 웨이트의 아이템을 더해주고
- 51:11나서 프린트 문을 통해서 짐을
- 51:13추가한다고 출력하 있습니다 그러면
- 51:15계속해서 일문을 수행하다가 더 이상
- 51:17짐을 넣지 못하는 순간이 오면 즉
- 51:19조건이 포스가 되면 일문은 벗어나게
- 51:21되고 마지막으로 총 무게를 출력하고
- 51:23프로그램을 종료할게요 코드를 실행시켜
- 51:25보니 최대여 덟 개의 짐을 추가할 수
- 51:27있고 그때의 총 무게는 24kg 것을
- 51:30알 수
- 51:40있지요 헬스장에 가면 보통 러닝
- 51:43머신이나 사이클 같은 유산소 운동을
- 51:45먼저 하고 나서 근력 운동을 합니다
- 51:46저는 20분 정도 러닝 머신을 하다
- 51:48보면 땀이 나더라고요 그런데 런닝
- 51:50머신에는 빨간색으로 된 비상 정지
- 51:51버튼이 있습니다 아직 20분이 되지
- 51:53않아도 비상 상황이 생기거나 해서
- 51:55갑자기 기계를 멈춰 할 때이 버튼을
- 51:57누르면 되는데요 반복문에 이런
- 51:59비상정지 버튼 같은게 있습니다 바로
- 52:01브레이크라는 건데요 브레이크는 반복문
- 52:03내에서 반복 수행 중인 동작을 즉시
- 52:05멈추고 방법문의 탈출하는 역할를
- 52:06합니다 보통 프 조건문과 함께
- 52:08사용해요 예를 들어서 시즌 1부터
- 52:105까지 있는 어떤 드라마가 있다고
- 52:12가정하겠습니다이 드라마는 리스트
- 52:13형태로 돼 있으니까 반복문을 이용해서
- 52:15시즌 1부터 순서대로 볼 수 있겠죠
- 52:18그런데이 드라마를 먼저 본 친구가
- 52:20시즌 1 2까지는 정말 재밌는데 시즌
- 52:223부터는 너무 재미가 없다며 보지
- 52:24말라고 합니다 이때 이프 조건문과
- 52:25브레이크를 이용해서 현재 드라마의
- 52:27시즌이 3이라면 반복문을 탈출하도록
- 52:29해 줄 수 있어요 즉이 문장들의
- 52:31의미는 if 어떤 조건이 참이면
- 52:34프린트물을 실행하고 나서 브레이크
- 52:35명령을 수행해서 현재 반복 중에
- 52:38포문을 즉시 탈출하라는 거예요 포문을
- 52:40이용하면 리스트 내의 항목들은
- 52:41순서대로 반복하게 되므로 아직 시즌
- 52:433이 아니라면 즉 시즌 1 2면
- 52:45시청을 하도록 하기 위해서 때
- 52:47프린트물을 하나 적어 줄게요 코드를
- 52:48실행시켜 보면 다음과 같이 시즌 1
- 52:502만 시청을 하고 이후에는 시청을
- 52:52하지 않는다는 것을 알 수 있습니다
- 52:54브레이크는 이런 식으로 반복문 내에서
- 52:56떤 조건이 참일 때 그 반복문을 바로
- 52:58탈출하고자 할 때 사용하는
- 53:10겁니다 시즌 1부터 5까지 있는
- 53:13드라마 기억하시죠이 드라마를 먼저 본
- 53:15친구가 시즌 3부터는 재미가 없으니까
- 53:17보지 말라고 해서 시즌 2까지만
- 53:18봤지요 그런데 나중에 알고 보니까
- 53:20친구가 의도한 말은 시즌 3부터 모두
- 53:22재미가 없는게 아니라 시즌 3만
- 53:24재미가 없다는 거였어요 즉 시즌 3은
- 53:26건너뛰고 시즌 4 5는 계속 보라는
- 53:28거죠 다행히 시즌 3을 보지 않아도
- 53:30스토리 전기는 크게 문제가 없다고
- 53:32합니다 파이썬 방문에서 어떤 경우에
- 53:34동작을 건너뛰고 싶을 때 사용할 수
- 53:35있는게 컨티뉴는 건데요 브레이크 때와
- 53:38동일하게 이런 드라마가 있습니다 역시
- 53:39반복문을 이용해서 하나씩 보도록 해
- 53:41줄 건데요이 부분이 달라집니다 이프
- 53:43조건은 시즌 3인지 업으로 확인하는
- 53:45거니까 똑같은데 시즌 3은 재미가
- 53:47없으니까 건너뛰고 시즌 4부터
- 53:50계속이어서 보도록 하기 위해서
- 53:51컨티뉴를 적어주면 돼요 즉 이렇게
- 53:53뭐뭐 시청이라는 프린트 문이 있음에도
- 53:55불구하고 컨티뉴를 만 하게 되면 그
- 53:57즉시 다음 반복으로 바로 넘어가게
- 53:59되는 거예요 그래서 밑에 있는 프린트
- 54:00문은 시즌 3일 때는 아예 실행이
- 54:02되지 않고 다음 반복 요소인 시즌
- 54:044로 넘어가게 되는 겁니다 코드를
- 54:06실행시켜 보면 시즌 1 2까지 시청을
- 54:07하고 시즌 3은 건너뛴 다음에 시즌
- 54:104 5까지네 끝까지 모두 보는 것을
- 54:12알 수
- 54:23있습니다 우리가 글 쓰기를 할 때
- 54:25새로운 문단을 시작되는 경우 그
- 54:27문단의 첫 문장은 이렇게 한 칸 띄어
- 54:29섰습니다 이런 걸 우리는 들여
- 54:30쓰기라도 하죠 다른 프로그래밍
- 54:32언어와는 다르게 파이썬에서는
- 54:33들여쓰기가 굉장히 큰 역할을 합니다
- 54:36우리가 프 조건문이나 4 또는 일
- 54:38반복문을 배울 때 이미 들여쓰기를 써
- 54:39봤었는데요 이렇게 들여쓰기를 하게
- 54:41되면 동일한 간격만큼이 들여쓰기를 한
- 54:43코드들은 모두 하나의 문단이 된다고
- 54:45보시면 됩니다 즉 들여쓰기가 적용된이
- 54:47세 개의 문장들은 이프 조건인 차일
- 54:49때 모두 함께 실행이 되는 거죠 만약
- 54:51그 문장 부분 앞에 있는 들여쓰기를
- 54:53없앤다면 더 이상 위 문장들과 같은
- 54:55문단이 아니게 되는 거예요 실행
- 54:57동작도 완전 달라지게 되는 거죠 if
- 54:59조건문 4 반복문 Y 반복문 그리고
- 55:01뒤에서 배울 함수 예외처리 클래스
- 55:03등과 같이 콜론으로 끝나는 부분이
- 55:04다음 줄은 반드시 들여쓰기를 넣어서
- 55:06문장을 작성해야 되고요 중첩된 이품
- 55:09문처럼 들여쓰기를 해서 문장을
- 55:10작성하다가 다시 문단의 구분이 필요한
- 55:12경우에는 동일한 가격만큼의 들여쓰기를
- 55:14한 번씩 더 해 줘야 합니다
- 55:16들여쓰기를 위한 공백의 개수는 따로
- 55:17정해지지 않았지만 파이썬에서는
- 55:19일반적으로 스페이스네 칸을 적용합니다
- 55:21들어서기도네 글자이기 때문에
- 55:34어떤 회사에서 만든 특정 제품들에
- 55:35문제가 생겨서 해당 제품들은 모두
- 55:37리콜 조치를 하기로 했어요이 회사에서
- 55:39만든 제품은 두 종류가 있는데 문제가
- 55:41되는 제품들이 모델명은 siro
- 55:44실로로 시작한다고 가정하겠습니다
- 55:46지금까지 출시된 모든 제품의 이름을
- 55:48리스트로 정리하면 이렇게 되고요이
- 55:49중에서 리콜 대상이 되는 시호로
- 55:51시작하는 제품들만 뽑아서 새로운
- 55:53리스트로 만들어 볼게요 먼저 리콜
- 55:55대상 제품 목록을 관리하기 위한
- 55:57콜이라고 포 방법을 이용해서네
- 56:00프로덕트 리스트를 순해 하는데 만약에
- 56:02if 조건문을 통해서 제품명이 시호로
- 56:05시작한다고 하면은 리콜 리스트에
- 56:07추가하는 식입니다 이렇게 하고 나서
- 56:09프린트 문을 통해서 결과를 확인해
- 56:11보면네 시호로 시작하는 제품들로
- 56:12이루어진 리스트를 확인할 수 있습니다
- 56:14그런데 여기 이만큼 해당하는 부분을
- 56:16딱 한 줄 만에 해결하는 방법이
- 56:17있어요 바로 리스트 컴프레션이 하는
- 56:19건데요 리스트 내에서 어떤 조건에
- 56:21해당하는 데이터만 뽑아내거나 아니면
- 56:23값을 바꿔서 새로운 리스트를 만들 때
- 56:24사용할 수 있습니다 적인 사용 문법은
- 56:27이런데요 좀 복잡하게 생겼죠 예시를
- 56:29통해서 설명드릴게요 마이 리스트가
- 56:31있습니다 값은 1 2 3 4 5가
- 56:32들어가 있고요 이때 리스트 컴프레션을
- 56:34이용해서 3보다 큰 숫자만 뽑아서
- 56:36새로운 리스트로 만들고 싶은 거예요
- 56:37그러면 먼저 마일 리스트를 순회하면서
- 56:39값이 3보다 큰지를 확인해야겠지요
- 56:41그렇게 하기 위해서 우리는 4
- 56:42반복문에서 했던 것처럼 4x인 반복
- 56:45대상 즉 마이 리스트를 먼저 적는데요
- 56:47리스트내의 값들이 순서대로 x 들어갈
- 56:49텐데이 XL 임의로 바꾸는 작업을 할
- 56:51수 있습니다 바로 4 앞에 이렇게
- 56:53XL 이용한 식을 적어주면 되는데요
- 56:55그냥 X 라고만 적으면 리스트의 값을
- 56:57변경 없이 그대로 쓰겠다는게 되지만
- 56:59X + 1을 하게 되면은 각 리스트의
- 57:011을 더한 값들 X * 3을 하게
- 57:03되면 각 리스트의 3을 곱한 값들
- 57:05그리고 XL 문자열로 바꾼 다음에
- 57:06번째라는 글자를 붙이면 1번째
- 57:082번째와 같이 문자열로 바뀐 새로운
- 57:10리스트가 만들어집니다 그리고 맨 뒤에
- 57:12프 조건문이 있는데요 이렇게 하면
- 57:14새로운 리스트를 만들 때 값이 3보다
- 57:16큰 경우에만 그 값을 사용하라는
- 57:18의미가 되는 거예요 즉 앞에서 x
- 57:20이렇게 다양하게 활용했을 때 연두색
- 57:22차론 결과가 나오는데 이건 사실 if
- 57:24조건문이 없는 경우에 대한 결과
- 57:25값이고 이렇게 조건문이 있게 되면 x
- 57:283보다 클 때 즉 4와 5에 대해서만
- 57:30새로운 리스트의 요소로 쓰게 되는
- 57:32거예요 그래서 x 이렇게 다양하게
- 57:33활용했을 때 실제 값은 이렇게
- 57:35됩니다이 코드를 문장으로 풀어보면
- 57:37마일 리스트에서 3보다 큰 값들만
- 57:41그대로 사용해서 새로운 리스트로
- 57:43만들어 달라는 의미가 되는 거예요
- 57:44앞에서 설명한 던 예시로 다시
- 57:45돌아올게요 포 반복문과 F 조건문을
- 57:48이용해서 작성했던이 코드들을 리스트
- 57:50컴프레션을 이용하면 이렇게 됩니다
- 57:52코드를 해석해 보면요 프로덕트는
- 57:54리스트에서 제품이 이름이 실로로
- 57:57시작하는 경우에만 그대로 가져와서
- 57:59새로 리스트를 만들게 되는 거죠
- 58:00이렇게 만들어진 리스트를 직접 출력해
- 58:02보면 다음과 같이 똑같은 결과가
- 58:04출력되는 거를 확인할 수 있습니다
- 58:06설명드린 것 외에도 리스트 컴프레셔는
- 58:08이렇게 다양하게 응용할 수
- 58:20있습니다 여러분은 미용실
- 58:22원장님입니다이 미용실에서는 커트만
- 58:24가능하며 가격은 만 원으로 고정이
- 58:26이에요 인건비 줄기 위해서 계산
- 58:27키오스크를 통해서 하는데 여기에
- 58:29들어가는 프로그램은 여러분이 직접
- 58:30자성을 합니다 처음 손님이 왔습니다
- 58:32나중에이 손님이 결제를 할 때 가격
- 58:34안내를 위해서 미리 코드를 적어
- 58:35두는데요 커스터머 원이란 변수에
- 58:37이름을 적고 프린트 분을 통해서
- 58:38가격을 출력하도록 할게요 조금 뒤에
- 58:40두 번째 손님이 또 찾아오셨네요
- 58:42커스터머 2라는 새로운 변수에이
- 58:44손님의 이름을 넣어서 동일하게 가격을
- 58:45출력하는 코드를 잡습니다 잠시 후에
- 58:47세 번째 손님도 오셨습니다 앞
- 58:49손님들과 동일하게 코드를 적어주면
- 58:51되겠네요 그런데 커트를 하다가 가만히
- 58:52생각해 보니까 만 원으로는 미용실
- 58:54운영이 힘들 것 같은 거예요 그래서
- 58:56커트 비용을 15,000원으로
- 58:57인상하기로 합니다 그러다 보니까
- 58:59지금까지 만들었던 프로그램도 수정을
- 59:00해야 되겠네요 손님들께 잠깐 양해를
- 59:02구하고 가격이 적힌 부분을 모두
- 59:04찾아서 일일이 수정을 합니다 그런데
- 59:05그냥 가격만 올리자니 손님들이 부담을
- 59:07느낄 수 있을까 봐 커트에 특별한
- 59:09이름을 붙이기로 해요 다시 코드에서
- 59:11커트 부분을 모두 찾아서 이렇게
- 59:12일일이 수정을 합니다 그런데 이렇게
- 59:14매번 변경 사항이 생길 때마다 여러
- 59:16곳에 흩어져 있는 동일한 코드들을
- 59:17일일이 바꿔야 하는게 굉장히 번거롭게
- 59:19느껴지네요 이때 필요한 것이 바로
- 59:21함수라는 건데요 함수는 어떤 동작을
- 59:23수행하는 코드들이 묶음입니다 특히
- 59:24여러 곳에서 반복해서 용되는 코드를
- 59:26하나의 함수로 만들면 굉장히 편리해요
- 59:28함수는 이렇게 정의합니다 디파인
- 59:30줄어서 def고 적고 한 칸 띄어서
- 59:32함수명을 적은 뒤에 괄호를 열고 닫고
- 59:34콜론을 적습니다 그리고 다음 줄부터는
- 59:36들여쓰기를 하고 나서 수행할 문장들을
- 59:38적어 주면 되는데요 미용실에서 가격을
- 59:40안내하는 코드를 함수로 만들면 이렇게
- 59:41할 수 있어요이 함수는 쇼
- 59:43프라이스라인 이름을 가지고 있고
- 59:45함수가 호출되면 여기에 정의된 프린트
- 59:47문이 실행됩니다 제가 호출이라는
- 59:49표현을 썼는데 함수는 정의만 했을
- 59:50때는 아무 동작을 하지 않아요
- 59:52함수내의 문장들을 실행시키기 위해서는
- 59:54호출이라는게 필요한데요 이렇게 코드
- 59:56어디 선가 함수의 이름 그리고 괄호를
- 59:58적어 줌으로써 함수를 호출할 수 있게
- 59:59되고이 문장이 실행되면 그제서야 해당
- 1:00:02함수의 문장들이 실행되는 거예요
- 1:00:04처음에 작성한 미용실 프로그램은 이런
- 1:00:06형태였는데요 공간이 좁아서 손님 두
- 1:00:08명분에 대해서만 남겨 둘게요이 코드에
- 1:00:10함수를 적용하면 이렇게 됩니다 가격을
- 1:00:11안내하는 쇼
- 1:00:16프라이스라인 수정이 필요한 경우에는
- 1:00:19여러분들을 찾아다니면서 수정할 필요
- 1:00:20없이 이렇게 함수 안에 있는 부분만
- 1:00:22딱 한 번 수정하면 끝입니다 어렵죠네
- 1:00:24함수를 사용했을 때 코드 자 순서는
- 1:00:26이렇게 돼요 먼저 위에서 아래로
- 1:00:28순서대로 도착을 하다가 쇼 프라이스
- 1:00:29함수로 호출하면 잠깐 함수로 이동해서
- 1:00:31함수 내이 코드가 순서대로 실행이
- 1:00:33되고요 함수 실행이 끝나면 다시 원래
- 1:00:34코드로 돌아와서 두 번째 고객님에
- 1:00:36대한 코드가 순서대로 실행되다가 함수
- 1:00:38호출 부로 만나게 되면 새롭게 함수
- 1:00:40부분이 코드가 실행되고 나서 원래
- 1:00:42코드로 돌아와서 계속 진행하게
- 1:00:54됩니다 앞에서 우리는 이렇게 함수를
- 1:00:56만들었습니다 그리고 호출은 이렇게
- 1:00:58했었는데요 커트 가격을 안내하는
- 1:00:59부분을 함수로 만들었기 때문에 수정이
- 1:01:01필요한 경우에는 함수 내부만 고치면
- 1:01:02되는데 코드를 다시 보니까 무슨무슨
- 1:01:04고객님을 출력하는 부분도 코드는
- 1:01:06비슷한데 여전히 여러 군데서 사용되고
- 1:01:08있지요 만약 무슨 고객님 앞에
- 1:01:10사랑하는이라는 글자를 추가하려면 역시
- 1:01:12여러 군데를 찾아다니면서 수정을 해야
- 1:01:14되는 불편함이 있습니다 이것도 함수
- 1:01:15내에서 함께 처리할 수 있도록 해
- 1:01:17볼게요 함수는 이런 식으로 쓴다고
- 1:01:18배웠는데요 함수명 뒤 괄호는 이렇게
- 1:01:20비워둘 수도 있지만 필요한 경우에는
- 1:01:22어떤 값을 전달할 수도 있습니다이를
- 1:01:24전달값 또는 파라미터 하 하는데요
- 1:01:26미용실 프로그램에서 무슨무슨 고객님을
- 1:01:28호출할 때 커스터머 1 커스터머 2와
- 1:01:30같은 변수값을 그대로 넣어서 사용하고
- 1:01:32있는데이 부분을 함수 안에서 처리해
- 1:01:34볼게요 첫 단계로 함수 정의부 내에
- 1:01:36프린트 문을 추가합니다 이때 고객의
- 1:01:37이름을 담고 있는 변수는 커스터머
- 1:01:39아지만 적을게요 두 번째 단계로 함수
- 1:01:42이름 뒤 가로 속에 커스터머를
- 1:01:43적어줍니다 커스터머는 쇼 프라이스
- 1:01:45함수를 호출하는 곳에서 보내주는 전달
- 1:01:46값이며 함수 내에서는 커스터머는
- 1:01:48이름의 변수를 사용할 수 있게 됩니다
- 1:01:50여기에는 사실 네임과 같이 여러분이
- 1:01:52원하는 이름 아무거나 사용하셔도
- 1:01:53상관없어요 세 번째 단계로 원래
- 1:01:55코드에서 무슨무슨 고객님을 출력해
- 1:01:57주던 부분은 필요 없기 때문에 이렇게
- 1:01:58삭제를 해 버리고요 마지막 단계로
- 1:02:00함수를 호출할 때 고객 이름을
- 1:02:02전달하기 위해서 쇼 프라이스 괄호
- 1:02:04안에 커스터머 1 커스터머 2를 각각
- 1:02:05적으면 끝입니다 이렇게 하고 나면
- 1:02:07이제는 고객님 이름 앞에
- 1:02:08사랑하는이라는 글자를 추가하려면
- 1:02:10이렇게 함수 내에서 한 번만 바꿔
- 1:02:11주면 되는 거예요 함수의 전달 값은
- 1:02:14원하는만큼 여러 개를 전달할 수도
- 1:02:15있고요 중요한 특징 중 하나가 전달
- 1:02:17값은 함수 안에서만 사용이 가능합니다
- 1:02:19함수 밖에서는 전압값을 쓸 수 없다는
- 1:02:22점 꼭 기억해 두세요
- 1:02:34함수로 출할 때 전달 값을 넘겨주면
- 1:02:36함수 내에서이 값을 사용할 수
- 1:02:37있었는데요 함수에는 반환 값이라 것도
- 1:02:40있습니다 함수 내에서 어떤 동작이나
- 1:02:42연산을 수행하고 나서 그 함수를
- 1:02:43호출한 쪽으로 결과를 반환해 줄 수
- 1:02:45있는데요 리턴이란 키워드를 적고 한
- 1:02:47칸 띄운 다음에 반환하라는 값을
- 1:02:49적어주면 됩니다 그러면이 함수를
- 1:02:50호출하는 곳에서이 값을 받아서 사용할
- 1:02:52수 있게 되는 거예요 미용실
- 1:02:54프로그램을 조금 수정해서 가격 정보를
- 1:02:56반환해 주는 함수를 이렇게 만들어
- 1:02:57보겠습니다 함수명은 겟 프라이스이고
- 1:03:00별다른 수행 문장 없이 바로 리턴
- 1:03:0115000을 적어 볼게요 그러면이
- 1:03:03함수를 호출하는 곳에서는
- 1:03:0515,000원이라는 값을 받아야
- 1:03:06되겠죠 밑에서 프라이스라인 변수 이꼴
- 1:03:09겟 프라이스 괄로 해 주겠습니다
- 1:03:11그러면 프라이스라인 리턴을 통해서
- 1:03:13반환된 15,000이라는 값이
- 1:03:15들어가게 되어서이 문장은 여기 밑에
- 1:03:17적혀 있는이 문장과 똑같은 동작을
- 1:03:18하게 되는 거예요 그리고 프린트 분을
- 1:03:20통해서 이렇게 값을 출력해 줄 수
- 1:03:21있겠죠 그런데 미용실을 하다 보니까
- 1:03:23한 가지 고민이 생겼습니다 바로 단골
- 1:03:25님인데요 아무래도 자주 미용실로 오다
- 1:03:27보니까 왠지 모르게 가격 할인을 해
- 1:03:29줘야 할 것 같고 막 그래요 그래서
- 1:03:31단골 손님인 경우에는 커트 비용을 만
- 1:03:32원만 받고 일반 손님은
- 1:03:3415,000원을 받도록 가격 정책을
- 1:03:36바꿔 볼게요 먼저 단골 여으로
- 1:03:37확인하기 위해서이 VIP 아는 전달
- 1:03:39값을 정의하겠습니다이 값은 불리한
- 1:03:41형태인데 트이면 단골 폴스이면 1만
- 1:03:44손님이라는 뜻이에요 그리고 프 조금을
- 1:03:46써서 이집 VIP 트루인 경우에는 만
- 1:03:48원을 그렇지 않은 경우에는 이제
- 1:03:49포스인 경우에는 15,000원을
- 1:03:51리턴하도록 하겠습니다 가격은 항상이
- 1:03:53둘 중 하나만 되는 거예요 그리고이
- 1:03:55함수 호출할 때 단골 여부를 전달하기
- 1:03:57위해서 트루 또는 포스를 여기 함수
- 1:03:59호출할 때 괄호 속에다가 적어 줍니다
- 1:04:01트이면 단골 손님이라서 만 원을
- 1:04:03폴스이면 일반 손님이라서
- 1:04:0415,000원을 반환 받아서 프라이스
- 1:04:06변수에 저장하게 되는 거죠 함수에서
- 1:04:07반환값은 보통은 한 개이지만 필요하면
- 1:04:10투표 형태로 여러 개의 값들을 반환할
- 1:04:11수도 있고요 리턴 키워드를 통해서
- 1:04:13값을 반환하게 되면 그 즉시 함수를
- 1:04:15탈출하게 됩니다 즉 리턴 밑에 다른
- 1:04:17문장들이 있다고 해도 실행이 되지
- 1:04:19않는 거예요
- 1:04:30여러분이 운영하는 미용실에서 커트
- 1:04:32비용으로 일반 손님에게는
- 1:04:3315,000원을 단골 손님에게는 만
- 1:04:35원을 받기로 했었는데요 보통 일반
- 1:04:37손님이 단골 손님보다는 훨씬 많지요
- 1:04:39우리가 이전에 가격 정보를 반환해
- 1:04:41주는 함수를 이렇게 말들고 보니까
- 1:04:42단골 손님에 비해서 상대적으로 많은
- 1:04:44수의 일반 손님들에 대한 가격을 알기
- 1:04:46위해서 항상 포스를 전달해 줘야
- 1:04:47하는게 번거로울 수도 있습니다 이럴
- 1:04:49때는 기본값이라는 걸 이용하면 함수의
- 1:04:51사용이 굉장히 편리해질 수 있어요
- 1:04:53기본 값이란 전달값에 기본으로 사용
- 1:04:55는 값입니다 예를 들어서 엄청 유명한
- 1:04:57짜장면 집이 있어요 여기에는 짬뽕이나
- 1:04:59우동과 같은 다른 메뉴도 팔긴 하지만
- 1:05:01손님들은 대부분 짜장면을 주문합니다이
- 1:05:04식당에서는 여러분이 짜장면 이인
- 1:05:05분이요고 주문을 하게 되면 종업원은
- 1:05:07주방에 두 개요 라고만 전달합니다
- 1:05:09뭐가 두 개라는 건지는 따로 말하지
- 1:05:11않았지만 주방에서는 암묵적으로 가장
- 1:05:12많이 팔리는 짜장면 이인 부를 만들게
- 1:05:15되는 거지요 즉이 짜장면 집에서의
- 1:05:17기본 메뉴 기본값은 바로 짜장면이
- 1:05:18것입니다 함수에서는 이처럼 전달값
- 1:05:20뒤에 등호를 붙이고 여러분이 원하는
- 1:05:22값을 기본 값으로 설정해 주면
- 1:05:24끝이에요 미용실 방문하는 손님들은
- 1:05:26많은 경우에 일반 손님이기에이 VIP
- 1:05:28값을 이렇게 스로 기본 값을 설정해
- 1:05:31두면 함수로 호출하는 곳에서는 일반
- 1:05:33손님인 경우에는 매번 스를 적을 필요
- 1:05:35없이 그냥 이렇게 괄호 안을 비운
- 1:05:37채로 함수로 호출하게 되면 자동으로
- 1:05:38e VIP 값은 기본 값인 스로
- 1:05:41설정이 되는 거예요 이제는 단골
- 1:05:43손님의 경우에만 전달 값으로 트루를
- 1:05:44넘겨 주면 됩니다
- 1:05:56함수를 만들다 보면 여러 개의 전달
- 1:05:58값이 필요한 경우가 종종 있습니다
- 1:06:00예를 들어서 미용실에서 가격 정보로
- 1:06:01얻어오는 개 프라이스 함수는 단골
- 1:06:03소님 옆으로 확인해서 할인 해 줄
- 1:06:04수도 있고 생일이거나 통신사 멤버십
- 1:06:07할인도 받을 수 있지요 그 외에도
- 1:06:08카드 할인 리뷰 할인 신규 방문 할인
- 1:06:11등등 다양한 조건에 따라서 가격이
- 1:06:12달라질 수 있습니다 그런데 이렇게
- 1:06:14다양한 전달 값이 있다면 함수로
- 1:06:15호출할 때마다이 많은 전달 값들을
- 1:06:17모두 확인해야 할 텐데 그렇게 되면
- 1:06:19함수를 사용하기가 꽤나 힘들겠죠
- 1:06:21어떻게 조금 더 편하게 함수를 사용할
- 1:06:23수 있을까요 그렇죠 기본 값으로
- 1:06:24설정을 해 면 일일이 전달 값을
- 1:06:26설정할 필요가 없을 겁니다 즉 모든
- 1:06:28경우에 대해서 일단은 해당 사항이
- 1:06:30없는 것으로 설정해 두는 거죠
- 1:06:31그랬다가 어떤 상황이 생긴다면 즉
- 1:06:33리뷰를 남겼다고 손님이 이야기를 하면
- 1:06:35그때 우리는 리뷰 전달 값을 트루로
- 1:06:37설정하면 될 거예요 그런데 만약에
- 1:06:39코드가 이렇게 적혀 있었다면 함수를
- 1:06:41어떻게 호출 해 할까요 지금 우리가
- 1:06:43필요한 건이 리뷰라는 전달 값만
- 1:06:44트루로 하고 나머지는 모두 기본값이
- 1:06:46스로 두는 거죠 이럴 때는 키워드
- 1:06:48값이라 걸 이용할 수 있습니다 전달
- 1:06:50값을 대상을 딱 정해 주는 거예요
- 1:06:52코드가 이렇게 있을 때 리뷰라는
- 1:06:53전달값 mas 트루로 하고 나머지 는
- 1:06:55그냥 두고 싶다면 바로 이렇게 하면
- 1:06:57됩니다 함수로 호출할 때 괄호
- 1:06:59안에다가 대상이 되는 리뷰와 전달의
- 1:07:01값인 트루를 이렇게 적어 주면 되는
- 1:07:02거예요 만약에 리뷰 할인과 동시에
- 1:07:04때마침 생일이라서이 버스데이 값도
- 1:07:06트루로 설정하고 싶다면 이렇게 콤마로
- 1:07:08구분서 키워드 값을 또 추가해 주면
- 1:07:10됩니다 이때 키워드 값의 순서는
- 1:07:12함수에 정리된 것과 달라도 아무
- 1:07:13상관이 없다는 점 참고로 알아두세요
- 1:07:26지금 여러분은 미용실 원장님이
- 1:07:28여러분은 매일 어떤 손님들이 미용실에
- 1:07:30방문했는지 이력을 관리하기로 합니다
- 1:07:33방문 이력을 바탕으로 일정 시간이
- 1:07:34지나서 다시 머리를 할 시간이 되면
- 1:07:36고객님께 미리 연락을 해서 할인을
- 1:07:38제공하는 식으로 재방문을 유도할
- 1:07:39예정인데요 먼저 오늘의 날짜와 방문한
- 1:07:42고객님들을 관리하기 위한 함수를
- 1:07:43만들어 볼게요 함수 이름은 비지로
- 1:07:45하고 오늘이 날짜를 전달받습니다
- 1:07:48그런데 생각해 보니까 문제가 하나
- 1:07:49있는데요 고객의 수는 매일매일 바뀔
- 1:07:51수가 있지요 이럴 때는 전달 값을
- 1:07:53미리 여유롭게 많이 만들어 두는
- 1:07:54방법도 있긴 하겠지만 혹시라도 전달값
- 1:07:57전체 수보다 더 많은 고객님이
- 1:07:58방문하게 된다면 문제가 생길 수 있을
- 1:08:00겁니다 이럴 때 아주 간편한 방법으로
- 1:08:02가변 인자라는 걸 사용할 수 있는데요
- 1:08:04가변 인자는 말 그대로 개수가 바뀔
- 1:08:06수 있는 인자를 의미합니다 즉이
- 1:08:07함수를 호출할 때 전달 값이 몇 개가
- 1:08:09될지 모르는 경우에 개수를 신경쓸
- 1:08:11필요 없이 함수를 쓸 수 있게 해
- 1:08:13주는 거예요 가변 인자를 쓰는 방법은
- 1:08:15아주 간단합니다 그냥 전달값 앞에 별
- 1:08:17하나만 찍어 주시면 돼요 앞에서 몇
- 1:08:18개의 전달 값을 만들어야 할지
- 1:08:20고민하던 함수를 이렇게 별 그리고
- 1:08:22커스터머는 변수로 아주 깔끔하게
- 1:08:24줄여버리면 됩니다 참고로 이때
- 1:08:25커스터머 스는 튜플 형태로 값들을
- 1:08:27받게 돼요 함수 내에서 오늘의 날짜를
- 1:08:29먼저 적어 주고요 모든 고객님의
- 1:08:31이름을 반복문을 통해서 출력하도록
- 1:08:33일단 만들어 둘게요 이렇게 가변
- 1:08:35인자를 사용하게 되면 고객 의수가 한
- 1:08:37명이 될건 세 명이 될건 상관없이이
- 1:08:39함수를 똑같이 사용할 수 있게
- 1:08:40됩니다이 문장들을 가까 실행해 보면
- 1:08:42한 명일 때는 이렇게 또 두 명일
- 1:08:44때는 이렇게 세 명일 때는 이렇게
- 1:08:46됩니다 고객의 수가 계속 바뀌죠 가변
- 1:08:48인자를 사용하실 때 한 가지
- 1:08:49주의하실게 있는데요 함수의 전달 값이
- 1:08:51여러 개 있다고 할 때 가변 인자는
- 1:08:53마지막에 딱 한 번만 쓸 수 있습니다
- 1:08:54예를 들어서 서 마이 펑션이라는
- 1:08:56함수의 전달값에 별이 이렇게 B C
- 1:08:59두 개 다 들어간다고 하면 이런
- 1:09:00식으로 함수로 출할 때 첫 번째 전달
- 1:09:02값이 1은 a 되겠지만 나머지 전달
- 1:09:04값들은 몇 개씩 끊어서 b c 넣어야
- 1:09:06할지 알 수 없기
- 1:09:18때문이에요 시크릿이라는 함수가
- 1:09:20있습니다이 함수에서는 메시지라는
- 1:09:22변수를 만들고 어떤 비밀 메시지를
- 1:09:24몰래 보관해 두는데 함수 밖에서이
- 1:09:26메시지라는 변수의 값을 이런 식으로
- 1:09:28출력할 수 있을까요
- 1:09:32없을까요네 정답은 x 있니다이 코드를
- 1:09:35직접 실행시켜 보면 이렇게 메시지라는
- 1:09:37변수가 정의되지 않았다면서 에러가
- 1:09:38나는데요 그 이유는 바로 메시지
- 1:09:40변수는 지역 변수이기 때문입니다 지역
- 1:09:43변수란 함수 내에서 정의된 변수를
- 1:09:44말하는데 지역 변수는 그 함수
- 1:09:46내에서만 사용이 가능합니다 그래서
- 1:09:48시크릿 함수 내에서 정의된 메시지는
- 1:09:50이렇게 값도 출력할 수 있고요 원하는
- 1:09:52대로 값을 수정할 수도 있습니다
- 1:09:54하지만 함수 밖에서 또는 다른
- 1:09:55함수에서는 절대 접근하거나 수정할 수
- 1:09:57없어요 만약에 이렇게 다른 함수
- 1:09:59내에서 똑같은 이름의 변수에 뭔가
- 1:10:01값을 넣는다면이 둘은 과연 같은
- 1:10:03변수일
- 1:10:06그요 정답은 아니오 둘은 이름만
- 1:10:09같을뿐 각각 시크릿 함수 내에서만
- 1:10:12또는 플리지 함수 내에서만 사용
- 1:10:13가능한 서로는 절대 만날 수 없는
- 1:10:15지역 변수들 있니다
- 1:10:28함수 내에서 정용이 되고 그 함수
- 1:10:30내에서만 사용 가능한 지역 변수를
- 1:10:31봤었는데요 함수 아이나 바뀌나
- 1:10:33상관없이 어디서든 사용 가능한 전역
- 1:10:35변수란 것도 있습니다 전역 변수는
- 1:10:37사실 여러분이 지금까지 많이 접해
- 1:10:38봤었는데요 사용 방법은 그냥 함수
- 1:10:40밖에서 만들면 그게 바로 전역
- 1:10:42변수입니다 그러면 함수 밖에서나 함수
- 1:10:44안에서나 어디서든 사용이 가능한데요
- 1:10:46한 가지 주의할 점은 함수 안에서
- 1:10:48전역 변수와 똑같은 이름의 메시지라는
- 1:10:50변수의 값을 할당하려고 하면 이때는
- 1:10:53전혀 변수가 아닌 노시크릿 함수내
- 1:10:55이의 지역 변수로 새로 만들어져서
- 1:10:57프린트를 통해서 출력해 보면 출력값이
- 1:10:59달라지게 되는 거예요 그래서 함수
- 1:11:00내에서 전역 변수의 값을 사용만 할
- 1:11:02때는 상관없지만 값을 직접 수정하려고
- 1:11:04할 때는 글로벌이라는 키워드를 써서
- 1:11:06글로벌 메시지라고 선언해 주면 됩니다
- 1:11:08이렇게 하면 전역 공간의 변수를
- 1:11:10사용하게 되고 만약 전염 공간에이
- 1:11:12변수가 없다면 메시지라는 이름의 전역
- 1:11:14변수를 만들게 되는 거예요 그래서
- 1:11:15이런 식으로 함수 내에서 전염 변수를
- 1:11:17선언을 하고 전염 변수의 값을 바꿔
- 1:11:19보면이 함수를 실행하고 프린트 분을
- 1:11:21통해서 메시지를 찍어 봤을 때
- 1:11:23처음에는 위에서 선언한 나는냐 전
- 1:11:25수라는 값이 출력되고 그다음에는 노시
- 1:11:28함수 내에서 값이 변경된 오 진짜
- 1:11:30전역 변수라는 출력값이 나오는 것을
- 1:11:32확인할 수 있습니다 어디서든지 사용될
- 1:11:34수 있는 전역 변수와 함수 내에서만
- 1:11:35사용될 수 있는 지역변수의 차이 잘
- 1:11:37기억해
- 1:11:48두세요 우리가 지금까지 만든
- 1:11:50프로그램은 뭔가 스피커를 통해서
- 1:11:52흘러나오는 방송처럼 일반적이었습니다
- 1:11:54작성한 들 이제 흘러갈 뿐이었죠
- 1:11:56이번에는 프로그램이 우리와 직접
- 1:11:57소통할 수 있도록 만들어 보겠습니다
- 1:11:59파이썬에서는 인풋이 아는 내장 함수를
- 1:12:01이용해서 사용자 입력을 받을 수
- 1:12:02있는데요 사용 방법은 아주 간단합니다
- 1:12:05햄버거가 갑자기 떠오르네요네 버거
- 1:12:07식당을 예약하기 위한 프로그램을 한번
- 1:12:08만들어 볼까요 햄버거 식당 직원이
- 1:12:11예약자분 성함이 어떻게 되나요라고
- 1:12:12물어보고 싶다면 이렇게 인풋 괄호
- 1:12:14속에 따옴표를 적고 문장을 적어 주면
- 1:12:17됩니다 그러면 사용자가 값을 입력할
- 1:12:19때까지 기다렸다가 입력된 값을 네임
- 1:12:22변수에 넣고 다음 문장으로 실행되는데
- 1:12:24확인을 위해서 프린트 네임을 해
- 1:12:26주겠습니다 코드를 실행시켜 보면
- 1:12:27이렇게 문장이 출력되고 나서 사용자
- 1:12:29입력을 되게 하는데요 여러분의 이름
- 1:12:31또는 저는 나도 코딩이라고 적고
- 1:12:32엔터를 치면 이렇게 네임에 저장된
- 1:12:35사용자 입력값이 잘 출력되는 것을
- 1:12:36확인할 수 있습니다 이번에는 예약할
- 1:12:38사람이 몇 명인지 물어볼까요
- 1:12:39마찬가지로 인풋을 쓰는데 이번에는
- 1:12:41놈이라는 변수의 입력값을 받아 볼게요
- 1:12:43그런데이 식당은 한 팀당 최대네
- 1:12:45명까지만 예약이 가능하다고 하네요
- 1:12:47그러면 넘으로 받은 값을 비교해 보면
- 1:12:49되겠죠이 품을 이용해서 너이 4보다
- 1:12:51크다 그러면은 이런 식으로 문장을
- 1:12:53적고 실행을 해 보겠습니다 좀 몇
- 1:12:55분이세요라고 하면서 사용자 입력을
- 1:12:56얘기하고 제가 입력값을 8로 한번 해
- 1:12:58볼까요네 8로 입력하고 났더니 어
- 1:13:00에러가 발생합니다 왜 그런지 봤더니
- 1:13:03스트링과 인트 사이의 비교 연산이
- 1:13:05불가능하다고 해요이 말은는 인트인
- 1:13:08우리가 입력받은 넘은 인트가 아니고
- 1:13:09스트링이라고 거죠 앞에서 봤듯이
- 1:13:11인풋으로 받은 사용자 입력값은 모두
- 1:13:13문자열 형태라서 4라는 숫자도 따옴표
- 1:13:164와 같이 문자열로 저장되어서 그런
- 1:13:18거예요 이럴 때는 우리가 앞에서 배운
- 1:13:19형 변환을 이용해서 인풋을 이렇게
- 1:13:21인트 괄호로 감싸 주면 입력값을 숫자
- 1:13:24자료형으로 바로 로 바꿀 수 있습니다
- 1:13:25코드로 바꾸고 실행해 보니 잘 되는
- 1:13:27걸 알 수
- 1:13:38있네요 제가 군대에 있을 때 수양
- 1:13:40록이란 걸 매이 썼습니다 수영 로은
- 1:13:41기장 같은 건데요 나름이 추억인 거
- 1:13:44같아서 제대로 하고 나서 모두 디지털
- 1:13:45파일로 전환을 했는데요 그중에 한
- 1:13:47장이 특히 기억에 남아서 예제로 한번
- 1:13:48써 볼까 합니다네 어떤 내용인지는
- 1:13:50말씀드리지 않을게요 파이썬에서는 몇
- 1:13:52줄 안 되는 코드로 파일에 텍스트를
- 1:13:53쓰거나 파일로부터 읽고 수 있는데요
- 1:13:55바로 오픈이라는 함수를 이용하면
- 1:13:57됩니다 오픈 괄호 열고 파일명 열기
- 1:13:59모드 그리고 필요하면 인코딩을 정해
- 1:14:01주면 되는데요 열기 모드는 크게
- 1:14:03이렇게 세 가지 정도를 기억해 주시면
- 1:14:04됩니다 파일 쓰기로 먼저 해 볼게요
- 1:14:06쓰기 모드로 파일을 하나 열기
- 1:14:08위해서는 오픈 괄호 열고 리스트
- 1:14:10텍스트란 파일을 여는데 뒤에 다운
- 1:14:12표로 가면서 wl 적어서 쓰기 모드로
- 1:14:15파일을 열겠습니다 그리고 한글을 쓰기
- 1:14:16위해서 인코딩 값은 utf 8로 적어
- 1:14:19줄게요 이렇게 하면 현재 경로에이
- 1:14:22파일이 있다면 더프 쓰기 없다면 새로
- 1:14:24만들어서 파일 를 열게 되는 거고이를
- 1:14:26통해서 이제 파일의 어떤 내용을 쓸
- 1:14:28수 있는 거예요 이렇게 하고 나서
- 1:14:29F.R 함수가 있습니다 f. 라이트를
- 1:14:31해 가지고 파일에 입력할 문장을 세
- 1:14:33개 정도 적어 주겠습니다 자 문장
- 1:14:35구분은 위해서 맨 뒤에는 역 / n
- 1:14:38줄바꿈을 해 줄게요 그리고 마지막으로
- 1:14:40f. 클로즈 함수로 호출해서 파일을
- 1:14:42닫아 줍니다 파일은 열었으면 반드시
- 1:14:44닫아 주셔야 해요 이렇게 하고 실행을
- 1:14:46해 보면 리스트 텍스트라 파일이
- 1:14:48생기고 내용들도 잘 들어가 있는 것을
- 1:14:50확인할 수 있습니다 이번에는 이렇게
- 1:14:51만든 파일을 읽어 와 보겠습니다 읽기
- 1:14:53모드로 파일을 열기 위해서는 는는
- 1:14:55오픈 그리고 파일명 똑같이 적어
- 1:14:57주는데 이번에는 열기 모드를로 해
- 1:14:59줄게요 똑같이 인코딩은 utf 8로
- 1:15:01설정하겠습니다 그리고 f. 리드
- 1:15:03함수를 통해서 파일 내용을 모두
- 1:15:06불러와서 컨텐츠라는 변수에 넣고
- 1:15:08프린트를 통해서 출력을 해 보면
- 1:15:10이렇게 아주 쉽게 파일 내용을 읽어올
- 1:15:11수 있습니다 아 이때도 f. 클로즈를
- 1:15:13통해서 파일은 꼭 닫아 주셔야 해요
- 1:15:15만약에 파일을 한 줄씩 읽어 와서
- 1:15:17뭔가 처리하고 싶은게 있다면 아주
- 1:15:18간단히 포 반복문을 이용해서 이렇게
- 1:15:20해 줄 수 있습니다 이러면 파일에서
- 1:15:22한 주씩 가지고 와서 라인에 넣게
- 1:15:24되는데요 이때 프린트 함수의 드라는
- 1:15:26속성이 있는데이 부분을 빈칸으로
- 1:15:28설정해 주지 않으면 이렇게 불필요한
- 1:15:30줄이 하나씩 들어가게 될 수도
- 1:15:32있으므로 필요하신 경우에는 엔드를
- 1:15:33활용하시면
- 1:15:45되겠습니다 요리를 하고 나면 불을
- 1:15:47꺼야 하고요 손을 씻고 나면
- 1:15:49수도꼭지를 잠가야 합니다 마찬가지로
- 1:15:51파이썬에서 파일을 열었으면 다 쓰고
- 1:15:53나서 파일을 닫아야 하는데요 한찬
- 1:15:55파일 작업을 하다 보면은 파일 닫는
- 1:15:56걸 깜빡할 수도 있겠죠 사람이니까
- 1:15:58그런데 이걸 자동으로 해 주는게
- 1:15:59있습니다 바로 위드라는 건데요 위드를
- 1:16:02사용하게 되면 위드 블록을 벗어났을
- 1:16:03때 사용 중이는 파일을 자동으로 닫아
- 1:16:05줘서 클로즈 함수를 따로 호출할
- 1:16:07필요가 없습니다 사용법도 간단한데요
- 1:16:08먼저 파일 쓰기를 위해서 앞에서
- 1:16:10이렇게 했던 거 기억하시죠네 위드를
- 1:16:12쓰게 되면이 코드는 이렇게 됩니다
- 1:16:14문장을 위드로 시작하고 나서 한칸
- 1:16:16띄우고 오픈 구문을 그대로 적어
- 1:16:17주고요 맨 뒤에 오픈을 통해서 연
- 1:16:20파일을 담을 변수 이름을 지정해
- 1:16:21줍니다 마치 위 문장에서 오픈한
- 1:16:23결과를 이제로 받는 것과 과 똑같은
- 1:16:25거예요 이때라는 이름은 F 대신 뭐
- 1:16:27파일이나 마이 언더바 파일이나
- 1:16:29여러분이 원하시는 형태로 바꿔서
- 1:16:31사용하실 수 있습니다 이렇게 하고
- 1:16:33나서 콜론을 적고 그다음 줄부터는
- 1:16:35들여쓰기를 한 뒤에 이렇게 문장들을
- 1:16:37적어 주면 되는 거예요 이제는
- 1:16:39클로우즈 함수를 따로 호출할 필요
- 1:16:40없이이 위드 구문을 빠져 나가면
- 1:16:42자동으로 파일이 닫힙니다 간편하죠
- 1:16:45파일을 읽을 때도 똑같습니다 이렇게
- 1:16:47적었던 문장을 이렇게 위드 문을
- 1:16:49사용한 뒤에 파일 읽기 작업을 해
- 1:16:51주시면 됩니다 이번에도 역시 파일
- 1:16:53닫기는 해 줄 필요가 없겠죠 파일이
- 1:16:55출력을 할 때는 가급적 위드 구문을
- 1:16:57사용하는 습관을 들으시는게
- 1:17:10좋겠습니다 최근에는 자동차에 대부분
- 1:17:12블랙박스가 설치되어 있습니다 새로운
- 1:17:14블랙박스를 구매한다고 하면 먼저
- 1:17:15블랙박스에 대해서 살펴봐야겠죠
- 1:17:17블랙박스의 정보를 변수로 만들어
- 1:17:19보겠습니다네 모델명은 먼저 네임은
- 1:17:22까망이 아고 할 수 있겠고요
- 1:17:23블랙박스는 해상도도 중요하 하지요
- 1:17:25레졸루션이라는 변수에 풀 HDL 넣어
- 1:17:27주겠습니다 자 가격은 프라이스라인
- 1:17:29변수에 20만을 넣고요 그리고 같은
- 1:17:31모델이라도 색깔이 다룰 수 있으니까
- 1:17:33색깔은 컬러라는 변수로네 블랙을
- 1:17:36지정해 줍니다 자 극히 적은 데이터인
- 1:17:38하지만 하나의 블랙박스 정보를 담기
- 1:17:40위해서 우리는네 개의 변수를 썼습니다
- 1:17:42자 그런데 블랙박스 모델을 하나 더
- 1:17:44변수로 관리하고 싶다면 어떻게 할 수
- 1:17:46있을까요 또 다른 변수네 개를
- 1:17:48만들어서 이렇게 값을 넣을 수 있겠죠
- 1:17:50여기에 또 블랙박스가 하나 더
- 1:17:51추가된다면 또 변수를 네개 만들면 될
- 1:17:54겁니다 자 그런데 이거를 좀 더
- 1:17:55편하게 효율적으로 관리할 수는
- 1:17:57없을까요네 그렇습니다 딕셔너리 키
- 1:17:59밸류 쌍으로 관리하는 딕셔너리로
- 1:18:01굉장히 유용할 수 있습니다 자 그런데
- 1:18:02만약에이 블랙박스가 운전을 하다가
- 1:18:05어떤 충격을 받았을 때 충격을
- 1:18:07감지해서 그 영상은 별도의 이벤트
- 1:18:10폴더로 관리하는 기능이 있다면 이런
- 1:18:12거는 변수만 가지고는 하기 힘든
- 1:18:14함수의 영역이죠데 딕셔너리 man
- 1:18:16가지고는 무리가 있어 보입니다 우리는
- 1:18:18이럴 때 클래스라는 걸 이용할 수
- 1:18:19있어요 클래스는 여러 변수들을 묶어서
- 1:18:21한 번에 관리할 수도 있고 클래스
- 1:18:23안에 어떤 기능을 하나 함수와 같은
- 1:18:24걸 만들어서 동작하도록 할 수도
- 1:18:26있는데요 클래스라는 개념은 처음
- 1:18:27만나게 되면 굉장히 굉장히 어렵습니다
- 1:18:30그래서 먼저 개념을 명확히 이해를
- 1:18:32하는게 중요해요 클래스는 설계도와
- 1:18:34설명서를 합친 정도로 이해를 하시면
- 1:18:36좋습니다 그러면 우리는이 설명서를
- 1:18:38따라서 블랙박스의 정보를 확인할 수도
- 1:18:40있고 설계도를 따라서 블랙박스를
- 1:18:42만들고 또 블랙박스가 가진 기능이
- 1:18:44어떻게 동작하는지 알 수 있을 거예요
- 1:18:46설계도는 하나만 가지고 있었도 여러
- 1:18:48블랙박스 제품을 만들 수 있겠죠 마치
- 1:18:50종이로 학을 접는 방법이 소개된 책이
- 1:18:52있으면 그 책을 따라서 여러 개의
- 1:18:53종이학을 만들 수 는 것처럼 말이죠
- 1:18:55이처럼 클래스는 한 번만 정의를
- 1:18:57해두면 그 클래스를 가지고 얼마든지
- 1:18:59많은 제품을 만들 수 있는데이
- 1:19:01제품들을 오브젝트 우리 말로는
- 1:19:02객체라고 합니다 그리고 이때 각
- 1:19:04객체는이 클래스의 인스턴스라고 표현을
- 1:19:07합니다 클래스 감이 조금 잡히시나요
- 1:19:21클래스 복습을 해보겠습니다 클래스는
- 1:19:23설계도와 설명서를 합친 정도의
- 1:19:25개념이고 클래스는 여러 변수들을
- 1:19:27포함시킬 수 있고 심지어는 기능도
- 1:19:28정의할 수 있습니다 클래스를 통해
- 1:19:30만들어지는 제품을 객체라고 하고요
- 1:19:32이때 각 객체는 그 클래스
- 1:19:34인스턴스라고 합니다 클래스는 이렇게
- 1:19:36정의할 수 있습니다 영어로 클래스라고
- 1:19:37적고 한 칸 띄운 다음에 클래스 명을
- 1:19:40적고 콜론을 한 뒤에요 그 다음 줄에
- 1:19:42들여쓰기를 하고 나서 클래스를
- 1:19:43정의하는 내용들을 적어 주면 됩니다
- 1:19:45블랙 박스라는 클래스를 이렇게 정의할
- 1:19:47수 있는데요 참고로 클래스 명은
- 1:19:48이렇게 대문자로 시작을 하는 단어들이
- 1:19:50조합으로 만들면 돼요 여기는 블랙과
- 1:19:53박스라는 두 개의 단어를 합 기
- 1:19:54때문에 B 부분은 대문자로 뒀습니다
- 1:19:57그리고 정의 부위에 일단 패스라고
- 1:19:58적어 뒀는데요 파이썬에서 패스는
- 1:20:00구현해야 하는 부분을 잠시 밀어 두기
- 1:20:02위해서 사용하시는 정도로 이해하시면
- 1:20:04됩니다 일단 친구하고 약속은 잡았는데
- 1:20:07만나서 뭘 할지는 아직은 정하지 않은
- 1:20:08거라고 생각해 주세요 우리가 함수를
- 1:20:10정의한다고 해서 그 함수가 실행되는게
- 1:20:12아니듯이 클래스도 정의만 한다고
- 1:20:14해서이 코드가 실행되는 건 아니에요
- 1:20:16클래스를 이용하기 위해서는 클래스
- 1:20:18객체를 만들어야 하는데 클래스 객체는
- 1:20:20이렇게 만들 수 있습니다 변수를
- 1:20:21선언하듯이 객체의 이름을 B1
- 1:20:23정의하고 등호를 넣은 다음에 클래스
- 1:20:26명을 적고 뒤에 가호를 열고 다으면
- 1:20:28돼요 그러면 B1이라는 객체가 생긴
- 1:20:30겁니다이 블랙박스 객체의 변수를 하나
- 1:20:33만들어 볼까요 점을 이용해서 B1
- 1:20:35에다가 우리가 일반적으로 문자열 값을
- 1:20:37넣듯이 까망이를 넣어주면 됩니다
- 1:20:39이렇게 하면 B1이라는 객체에 네이라
- 1:20:41변수를 선언해 준 거예요 값이 잘
- 1:20:43들어가는지 확인하려면 B1 네임을
- 1:20:46프린트를 통해서 찍어 보면 됩니다
- 1:20:47그러면 까망이고동이
- 1:20:54인스턴스란 함수를 써서 앞에는 객체인
- 1:20:57B1 뒤에는 클래스인 블랙 박스를
- 1:20:59넣어 주면 되는데 이때 결과가 트이면
- 1:21:02B1 블랙박스의 인스턴스가 맞다는
- 1:21:04거고 스이면 틀리다는
- 1:21:16거예요 우리가 클래스를 이렇게
- 1:21:18정의하고 B1이라는 객체를 만들고
- 1:21:21점을 통해서 네임 변수를 만들고
- 1:21:23까망이는 값을 넣어 줬었는데요
- 1:21:25B2 아는 새로운 객체를 만들어
- 1:21:26보겠습니다 그리고 B2 네임을 찍어
- 1:21:28보면 어떻게 될까요 그렇습니다 에러가
- 1:21:30발생합니다 b1 객체는
- 1:21:54in it 언더바 언더바 그리고 괄호
- 1:21:56속에 우리가 만들 제품에 필요한
- 1:21:58변수들을 적어주면 됩니다 예를 들어서
- 1:22:00우리 제품이 이름을 위한 네임과
- 1:22:02가격을 위한 프라이스를 가진다고 하면
- 1:22:04셀프 콤마 네임 콤마
- 1:22:06프라이스라인 셀프는 일단 그냥 적어
- 1:22:08주세요 이렇게 하고 나서 콜론을
- 1:22:10적고요 다음 줄에 드려 쓰기를 하고
- 1:22:12나서 셀프점 네임은 네임 셀프점
- 1:22:15프라이스는 프라이스 이렇게 해주면
- 1:22:16됩니다 이게 대체 뭐 하는 건가
- 1:22:18싶지요 자 이렇게 만들어진 설계도
- 1:22:20클래스를 이용해서 객체를 만드려면
- 1:22:22B1 블랙박스 그리고 괄호 안에
- 1:22:24이름과 가격을 순서대로 넣어 주면
- 1:22:26되는 거예요 마치 일반 함수 호출할
- 1:22:28때가 동일하지 이렇게 하고 나서
- 1:22:30프린트 B1 네임 B1
- 1:22:33프라이스라인 있던 값들이 잘 출력되는
- 1:22:35것을 알 수 있습니다 B 2도 해
- 1:22:36볼까요 B 2는 블랙박스라고 객체를
- 1:22:38만드는데 하양이 그리고 10만원이라고
- 1:22:40하고 나서 값을 찍어 보면 역시 값이
- 1:22:43잘 출력되네요 즉 우리가 만든 블랙
- 1:22:45박스라는 클래스는 네임과 프라이스라인
- 1:22:47두 개의 변수를 가지고 있는데 각각
- 1:22:49객체를 만들 때 네임을 여기에
- 1:22:52프라이스를 여기에 넣어주는 초기
- 1:22:54역할을 해주는게 바로 인잇 함수입니다
- 1:22:56자 이제 블랙박스 클래스 즉 우리
- 1:22:58설계도는 이런 형태로 제작이
- 1:22:59되었고요이를 통해 만들어진 B1 B2
- 1:23:02객체는 각각 이런 형태가 됩니다
- 1:23:03참고로 인니 함수는 객체가 생성될 때
- 1:23:06자동으로 실행된다는 거 기억해
- 1:23:18주세요 앞에서 우리가 닛 함수를
- 1:23:21통해서 네임과 프라이스를
- 1:23:22정리했었는데요 이때 네임과 프라이스를
- 1:23:25멤버 변수라고 합니다 멤버 변수는
- 1:23:27클래스 객체마다 서로 다른 값을 가질
- 1:23:29수 있어요 똑같이 생긴 책상이 있어도
- 1:23:31사람마다 책상을 사용하는 용도가 다른
- 1:23:33것처럼 똑같은 클래스로부터 만들어진
- 1:23:35객체라고 해도 그들이 가지는 멤버
- 1:23:36변수의 값은 얼마든지 달라질 수
- 1:23:38있어요 그리고 두 객체는 서로 완전
- 1:23:41독립적인 겁니다 그런데 어떤 객체에
- 1:23:43대해서만 멤버 변수가 하나 더
- 1:23:45필요하다 그러면 예를 들어서 B1
- 1:23:47블랙박스의 특별히 별명을 하나 지어
- 1:23:49주고 싶다 그러면 B1 닉네임은 1호
- 1:23:52이렇게 B1 객체에만 특별한 멤버
- 1:23:53변수를 추가해 줄 수도 있습니다 즉
- 1:23:55B1 객체의 형태는 이렇게 바뀌게
- 1:23:57되고 이건 설계도나 설명서 즉
- 1:23:58클래스에는 정의되지 않은 그래서 B2
- 1:24:01n 전혀 모르는 새로운 변수인
- 1:24:13거예요 클래스는 변수도 여러 개 가질
- 1:24:16수 있지만 기능을 하는 함수도 가질
- 1:24:18수 있다고 했었습니다 그리고 우리는
- 1:24:20이미 객체가 생성될 때 자동으로
- 1:24:21호출되는 닛 함수를 써 봤었는데요
- 1:24:24이렇게 클래스 내에 선언되는 함수를
- 1:24:26메소드라고 합니다 우리 공장에서
- 1:24:28만드는 블랙박스는 특별한 기능이 하나
- 1:24:30있는데요 사용자가 원하는 경우에 여행
- 1:24:32모드라는 버튼을 누르면 그 시점부터
- 1:24:34영상은 자동으로 별도의 폴더로
- 1:24:36관리합니다 그러니까 평소에 하는
- 1:24:38녹화는 혹시 발생할지 모르는 사고를
- 1:24:40대비해서 찍는 일반적인 영상이라서
- 1:24:42시간이 지나면 덮어쓰기가 되어
- 1:24:44버리는데 여행 모드를 켜면 그때부터
- 1:24:46녹화되는 영상은 별도의 폴더로 관리가
- 1:24:48되는 거예요 그러면 운전을 하다가
- 1:24:50마주치는 아름다운 산이라는 이런
- 1:24:51모습들을 보관할 수 있겠죠 자 이건
- 1:24:53변수가 아니라 기능은 영역이고 근데
- 1:24:56클래스는 기능을 가질 수 있다고
- 1:24:57했으니까 우리 블랙박스에이 기능을
- 1:24:59정의해 보겠습니다 클래스가 이렇게
- 1:25:01있고 여기인인 메소드 밑에 dfl
- 1:25:03통해서 하나 더 추가해 주면 끝이에요
- 1:25:06DF네 셋 트래블 모드라는 메소드를
- 1:25:08만드는데요 이때 전달받는 값이 하나도
- 1:25:11없다고 하면 그냥
- 1:25:14셀프만삭 그리고 메소드 대에서
- 1:25:16프린트를 통해서 여행 모드 온이라는
- 1:25:18값을 출력 하겠습니다 그런 다음에
- 1:25:20B1 객체를 만들고 멤버 변수 접근
- 1:25:23하듯이 점을 이용 해서 B1 세트
- 1:25:26모드 그리고 괄호를 적어주면 되는
- 1:25:28거예요 실행시켜 보면 여행 모드
- 1:25:30온이라는 글자가 잘 출력되는 것을
- 1:25:32확인할 수 있습니다 만약에 메소드의
- 1:25:34전달 값이 필요하다고 하면 이인
- 1:25:35메소드처럼 셀프 뒤에 이렇게 정의해
- 1:25:38주면 되는데요 우리가 여행 모드를
- 1:25:40여기에 전달받는 시간만큼만 적용하도록
- 1:25:42해 볼게요 그리고 몇 분 동안
- 1:25:44여행모드 오이라고 프린트 문을 바꾼
- 1:25:46다음에 지금부터 20분 동안만 여행
- 1:25:48모드로 녹화 하기를 원한다면 이렇게
- 1:25:50해줄 수 있겠네요 여기 괄호 속에
- 1:25:51지금 20만 넣은 겁니다 자 실행을
- 1:25:53해 보면 20분 동안 여행 모드
- 1:25:55오이라고 나오는 것을 확인할 수
- 1:26:08있습니다 클래스 내에서 메소드를
- 1:26:10정의할 때 셀프라는 걸 썼었습니다
- 1:26:12우리가 함수를 정의할 때 전달 값이
- 1:26:13두 개면 그 함수를 호출할 때도 전달
- 1:26:15값이 두 개야 하는데 클래스의
- 1:26:17메소드는 셀프를 포함해서 전달 값이
- 1:26:19두 개라고 해도 호출할 때는 셀프를
- 1:26:20제외하고 나머지 한 개에 대해서만
- 1:26:22전달 했었죠 이때 셀프는 체 자기
- 1:26:24자신을 의미합니다 우리 메소드를 조금
- 1:26:26바꿔 볼게요 세 트래블 모드 메소드의
- 1:26:28프린트 부분을 이렇게 바꿨습니다 앞에
- 1:26:31셀프점 네임이 추가된 건데요 여기
- 1:26:33윗줄은 지어 볼게요 자이 코드에서
- 1:26:35셀프점 네임을 통해서이 객체의
- 1:26:37네임이란 멤버 변수를 출력하는 건데
- 1:26:39셀프는 객체 자기 자신이라고 했죠
- 1:26:41그래서 B1 B2 아는 두 개의
- 1:26:43객체가 만들어져 있을 때 이렇게 각각
- 1:26:45메소드로 호출해 보면 각 객체의 네임
- 1:26:47멤버 변수를 포함한 출력 결과를 볼
- 1:26:49수 있습니다 즉이 문장을 실행할 때는
- 1:26:51셀프 부분에 B1 객체가 들어가게
- 1:26:53되고 아래 문장을 실행할 때는 셀프
- 1:26:56부분에 B2 객체 자기 자신이
- 1:26:57들어가게 되는 거죠 좀 헷갈리죠 자이
- 1:27:00문장을 잘 보세요 블랙박스 클래스의
- 1:27:02이름을 직접 적고 세 트래블 모드
- 1:27:03메소드로 호출합니다 그리고 첫 번째
- 1:27:05전달 값으로 B1 넣고 두 번째 전달
- 1:27:08값으로 20을 넣습니다 이렇게 하면
- 1:27:09마치 함수로 호출하는 것처럼 B1
- 1:27:12셀프로 20은 민으로 들어가게 되죠
- 1:27:15코드를 1번처럼 적거나 2번처럼
- 1:27:17적거나 결과는 똑같습니다 이렇게
- 1:27:19보니까 조금 이해가 되지요 결국
- 1:27:21우리는 블랙박스 클래스의 메소드를
- 1:27:23직접 호출하면서 객체와 전달 값을
- 1:27:25지정해도 되지만 보다 간편하게 B1
- 1:27:27객체를 통해서 메소드로 호출하는데
- 1:27:29이미 B1 객체라는 건 알고 있으니까
- 1:27:31셀프는 제외하고 나머지 전달 값들만
- 1:27:33지정해 주면 된다는 것으로 이해하시면
- 1:27:35되겠습니다 그래도 여전히 어렵게
- 1:27:36느껴지신다면 딱 두 가지만 기억해
- 1:27:38주세요 클래스 메소드를 정의할 때
- 1:27:40처음 전달 값은 반드시 셀프를 넣어
- 1:27:42줍니다 그리고 메소드 내에서는 셀프점
- 1:27:44네임과 같이 셀프 점을 이용해서 멤버
- 1:27:46변수를 사용합니다
- 1:27:58우리가 만드는 블랙박스는 어떤 버튼을
- 1:28:00누르면 그때부터는 여행용으로 따로
- 1:28:02영상을 관리하는 기능이 포함되어
- 1:28:04있는데요이 기능을 넣으면서 가격을 조
- 1:28:06올렸더니 오히려 매출이 떨어졌습니다
- 1:28:08생각보다 여행 모드를 사용하는 사람이
- 1:28:10많지 않았나 봐요 그래서 전략을
- 1:28:12바꿔서 기본적인 기능만 하는 블랙박스
- 1:28:14따로 여행 모드를 지원하는 블랙박스를
- 1:28:16따로 만들어서 판매하기로 했습니다
- 1:28:17기본 블랙박스는 우리가 앞에서
- 1:28:18만들었던 대로 그냥인인 메소드만 남겨
- 1:28:20두고요 여행 모드 지원 블랙박스는
- 1:28:22트래블 블랙 박스라는 새로운 클래 를
- 1:28:24만들고 이렇게 세 트래블 보드
- 1:28:25메소드가 추가된 채로 있으면 되겠네요
- 1:28:27그런데 가만히 보니까 뭔가 겹치는
- 1:28:29부분이 있습니다 두 클래스의이는
- 1:28:31메소드는 완전히 일치하지 멤버에서도
- 1:28:33똑같이 네임과 프라이스 가지고요 사실
- 1:28:36우리 블랙 박스들은 아주 작은
- 1:28:37클래스인데 클래스들이 규모가 조금만
- 1:28:40커져도 이렇게 중복되는 코드들이
- 1:28:42많아질 수 있습니다 새로운 클래스를
- 1:28:43만들 때마다 중복되는 내용들을 다시
- 1:28:45다 적는다는 거는 누가 봐도
- 1:28:47비효율적이죠 고맙게도 클래스에는
- 1:28:49상속이란 것이 있습니다 상속은 보통
- 1:28:51부모로부터 남겨진 재산을 자식이
- 1:28:53물려받는 것을 의미 하지요
- 1:28:54클래스에서의 상속은 어떤 클래스에서
- 1:28:56사용한 모든 코드를 그대로 물려받아서
- 1:28:58사용하고 거기에다가 추가로 필요한
- 1:29:00내용을 확장하는 개념으로 쓰일 수
- 1:29:02있습니다 다시 우리 코드로 돌아와서
- 1:29:03블랙박스와 트래블 블랙박스 모두
- 1:29:05동일한인인 메소드를 가지고 있지요
- 1:29:07거기다가 여행 모드 지원 블랙박스는
- 1:29:09셋 트래블 보드라는 메소드가 확장된
- 1:29:11형태입니다 이런 경우에는 클래스
- 1:29:13이름인 트래블 블랙박스 뒤에 괄호를
- 1:29:15써서 블랙박스라고 적어주면 블랙박스
- 1:29:17클래스의 모든 것을 그대로 물려받아서
- 1:29:19사용하겠다는 의미가 됩니다 즉 이랬던
- 1:29:20코드가 블랙박스 클래스로부터 모든
- 1:29:22걸을 상속받아서 메소드를 여기 거를
- 1:29:25갖다 쓰면 되니까이 부분을 없애
- 1:29:26가지고 이렇게 바뀔 수 있는 거예요
- 1:29:28이때 왼쪽에 있는 기본 블랙 박스를
- 1:29:30부모 클래스라고 부르며 이로부터
- 1:29:32상속받은 여행 모드 지원 블랙박스를
- 1:29:34자식 클래스라고 부릅니다 참고로 코드
- 1:29:36사용법은 동일해요 블랙박스 클래스를
- 1:29:37통해서 비원 객체를 만드는 것처럼
- 1:29:39트래블 블랙박스를 이용해서 B2
- 1:29:40객체를 만들면 됩니다 그러면 객체가
- 1:29:42만들어질 때 상속을 받은 블랙박스의
- 1:29:44인입 메소드를 통해서 하양이와 10만
- 1:29:47원이 각각 네임과 프라이스라인 멤버
- 1:29:49면수로 설정되는 거예요 그리고 B1
- 1:29:51객체는 사용할 수 없는 세 트블 모드
- 1:29:53메소드를 를 비투 객체는 사용할 수
- 1:29:55있게 되는
- 1:30:06거죠 기본 블랙박스와 여행 모두 지원
- 1:30:09블랙박스로 나눠서 제품을 판매하다
- 1:30:10보니까 다행히 매출이 다시 오리기
- 1:30:12시작했습니다 그런데 한 가지 고민이
- 1:30:14생겼는데요 여행 모드 지원
- 1:30:15블랙박스에서 여행 중에 녹화한 영상이
- 1:30:17계속 쌓이다 보니까 저장 공간이
- 1:30:19부족해진 거예요 그래서 영상을
- 1:30:21그때그때 부지런하게 PCR 옮기고
- 1:30:22지우는 사람이라면 64 기가를 그렇지
- 1:30:24않은 사람이라면 차라리 여유롭게
- 1:30:26사용할 수 있도록 128기가를
- 1:30:28구매하도록 옵션을 두기로 했습니다 자
- 1:30:30그럼 우리 코드도 바꿔야겠죠 여행
- 1:30:32모드 지원 블랙박스의 경우 멤버
- 1:30:33변수로 저장 공간이 SD 카드를
- 1:30:35의미하는 SD 추가해서 이렇게인인
- 1:30:38메소드를 새롭게 정의해 줍니다 앞에서
- 1:30:39우리는 기본 블랙박스로 터 상속을
- 1:30:41받아서이는 메소드를 생략할 수
- 1:30:42있었는데 다시 생겨 버렸네요 그러면
- 1:30:44굳이 부모 클래스로부터 상속을 받을
- 1:30:46필요가 있을까요네 당연히 필요가
- 1:30:47있으니까 제가 이러고 있겠 우리는
- 1:30:49상속을 이용해서 부모 클래스의 모든
- 1:30:50것을 이용하고 추가로 필요한 것에
- 1:30:52대해서는 확장을 할 수 있다고
- 1:30:53배웠습니다 그러면 여기에서도 부모
- 1:30:55클래스의 모든 것을 이용해야겠죠 자
- 1:30:57여기를 보시면 부모 클래스에서는
- 1:30:59네임과 프라이스를 받아서 멤버 변수를
- 1:31:01정의해 주고 있습니다 그리고 여행
- 1:31:02모드 지원 블랙박스에서는 여기에
- 1:31:04추가로 SD 카드 데이터만 정의해
- 1:31:06주고 있네요 그러면 최소한 네임과
- 1:31:08프라이스를 설정하는 부분은 기본
- 1:31:09블랙박스의 것을 사용하면 좋겠지요
- 1:31:11그럴 때는 이렇게 해줄 수 있습니다
- 1:31:13상속받은 블랙박스 클래스의이는
- 1:31:15메소드를 직접 호출하면서 셀프를
- 1:31:17명시하고 잔달 값으로 네임과
- 1:31:18프라이스를 넘긴 거예요 그러면 최소한
- 1:31:21네임과 프라이스는 블랙박스의이는
- 1:31:23메소드를이 이용해서 멤버 변수로
- 1:31:25설정을 하고 여기에서는 SD 카드
- 1:31:27부분에 대해서만 추가로 정의해 주면
- 1:31:28되겠죠 이렇게도 됩니다 문제 없어요
- 1:31:30그런데 보통 자식들 입장에서 부모님을
- 1:31:32아빠 엄마라고 부르지 이렇게 누구누구
- 1:31:34님이라고 부르지는 않지요 상수도
- 1:31:36똑같습니다 부모 클래스의 어떤
- 1:31:38메소드를 호출하고 자할 때 이렇게
- 1:31:39부모 클래스 이름을 그대로 적고
- 1:31:41메소드로 호출할 수도 있지만 슈퍼라
- 1:31:43것을 이용해서 메소드로 호출할 수도
- 1:31:44있어요 이때 슈퍼는 바로 부모
- 1:31:46클래스를 의미하는 거예요 그런데 이때
- 1:31:48슈퍼에는 이렇게 괄호를 감싸줘야
- 1:31:50한다는 부분 그리고 메소드의 전달
- 1:31:51값으로 셀프는 필요가 없다는 점
- 1:31:53주의해 주세요 그래서 여행 모드 지원
- 1:31:55블랙박스의 경우에는 이렇게 할 수도
- 1:31:56있지만 슈퍼를 이용해서 이렇게 해줄
- 1:31:58수도 있습니다이 세상 모든 부모님들이
- 1:32:00사실은 우리의
- 1:32:12슈퍼맨이 여행 모드 지원 블랙박스의
- 1:32:14새로운 기능을 추가하기로 했습니다
- 1:32:16바로 블랙박스에서 촬영한 영상을 멋진
- 1:32:17배경 맛과 함께 편집을 해서 추억용
- 1:32:20여행 영상을 만들어 주는 건데요 기능
- 1:32:22구현을 어떻게 할까 고민하던 차에
- 1:32:23우리 공장에서 만드는 또 다른 제품인
- 1:32:25360도 카메라에 그 기능이 이미
- 1:32:27구현된 것을 확인하였습니다 게다가
- 1:32:29클래스를 바로 제공해 줘서 상수
- 1:32:30받기만 하면 바로 기능을 쓸 수
- 1:32:32있다고 하네요 클래스 이름은 비디오
- 1:32:33메이커이고 이렇게 생겼다고 합니다
- 1:32:35메이크 메소드를 통해서 영상 제작이
- 1:32:37가능하고요 자 그러면 우리 여행 모드
- 1:32:39지원 블랙 파스의이 클래스를 상속받아
- 1:32:40볼게요 그런데 어 우리는 이미 기본
- 1:32:43블랙박스 클래스를 상속받고 있네요
- 1:32:45어떡하죠 그렇습니다 또 뭔가 방법이
- 1:32:47있으니까 제가 이렇게 밑밥을 깔고
- 1:32:48이런 경우에 필요한게 바로 다중
- 1:32:49상속됩니다 여러 클래스로부터 상속을
- 1:32:51받는다는 뜻인데요 사용 방법은 그냥
- 1:32:53클래스 명을 콤마로 구분서 여러 개를
- 1:32:55적어주면 끝입니다 이렇게 블랙박스
- 1:32:56클래스 뒤에 콤마를 찍고 비디오
- 1:32:58메이커 클래스를 적어주면 되는 거예요
- 1:33:00그럼 우리는 트래블 블랙박스를 통해
- 1:33:02B1 객체를 만들고 나서 아 참고로
- 1:33:03여기는 에스 카드의 용량이 64기가를
- 1:33:06의미합니다 이렇게 하고 나서 추억용
- 1:33:07영상 제작 기능을 사용하기 위해서
- 1:33:09B1 . 메이크 메소드로 호출해 보면
- 1:33:11이렇게 결과가 잘 출력되는 것을
- 1:33:12확인할 수 있습니다이 메소드는 바로
- 1:33:14비디오 메이커 클래스로부터 상속받은
- 1:33:16거죠 그런데 여기 기능이 또 하나
- 1:33:17추가된다고 합니다 이번 기능은 이렇게
- 1:33:19만들어진 영상을메일로 바로 전송하는
- 1:33:21거라고 해요이 클래스 이름은 메일
- 1:33:23샌더이고 이렇게 생겼습니다 샌드
- 1:33:24메소드로 호출하면 매일 발송이 되고요
- 1:33:26우리 클래스에서 이거를 또 갖다 써야
- 1:33:28되겠죠 다중 상속을 위해서 비디오
- 1:33:29메이커 뒤에 콤마를 입력하고 메일
- 1:33:31샌드를 넣어 줍니다 그러면 이렇게
- 1:33:32비용 객체를 만들고 메이크 메소드를
- 1:33:34통해서 추억용 여행 영상을 제작하고
- 1:33:36나서 메일 샌드 클래스의 센드
- 1:33:38메소드를 호출해서 메일 발송까지 쉽게
- 1:33:39할 수 있게 되는 거죠 트래블
- 1:33:41블랙박스는 지금까지 이렇게 세 개의
- 1:33:42클래스로부터 다중 상속을 받게
- 1:33:44되었습니다
- 1:33:56여행 모드 지원 블랙박스의 계산
- 1:33:58버전을 만들기로 했습니다 개선되는
- 1:33:59부분은 바로 세 트래블 모드 메소드의
- 1:34:01동작인데요 주어진 시간 동안 여행
- 1:34:03모드로 설정하는 것 그래서 여행용
- 1:34:05영상을 따로 관리하는 것은 좋은데
- 1:34:07시간이 되어서 여행 모드가 끝나면
- 1:34:08자동으로 추억용 영상을 제작하고
- 1:34:10메일까지 보내기를 원하는 거예요
- 1:34:12그래서 개선된 버전의 여행 모드 지원
- 1:34:14블랙박스인 어드밴스드 트래블
- 1:34:16블랙박스를 만들기로 합니다이 클래스는
- 1:34:18트래블 블랙박스의 기능을 그대로
- 1:34:19쓰면서 여행 모드일 때의 기능을
- 1:34:21확장하는 거니까 트래블 블랙박스를
- 1:34:23그대로 상속받아서 쓰면 되겠네요
- 1:34:25그런데 세 트래블 모드 메소드가
- 1:34:26호출되었을 때 단순히 여행 모드만
- 1:34:28설정하는게 아니라 영상 제작 및 매일
- 1:34:30발송까지 해야 하는 거죠 이때는 부모
- 1:34:32클래스의 세 트래블 모드 메소드를
- 1:34:34어드밴스 트래블 블랙박스 클래스
- 1:34:36내에서 다시 정의할 수 있습니다 즉
- 1:34:38이렇게 자식 클래스 내에서 똑같은
- 1:34:40이름의 세 트래블 모드 메소드를
- 1:34:42정의한 뒤에 여기 안에서 메이크
- 1:34:44메소드와 샌드 메소드를 통해서 영상
- 1:34:46재작 및 메일 발송까지 해버리는 거죠
- 1:34:48이렇게 하게 되면 부모 클래스인
- 1:34:50트래블 블랙박스의 셋 트래블 모드
- 1:34:52메소드를 자식 클래스에서 정의된이
- 1:34:54메소드로 더퍼 쓰게 되는 거예요 즉
- 1:34:56자식 클래스에서 같은 메소드를 새롭게
- 1:34:58정의하지 않으면 부모 클래스의
- 1:34:59메소드를 쓰게 되고 새롭게 정의를
- 1:35:01하면 이제는 자식 클래스의 메소드를
- 1:35:03쓰게 되는 겁니다 이거를 메소드
- 1:35:04오버라이딩이 합니다 메소드를 새로
- 1:35:06정의하는 거죠 그러면 트래블 블랙박스
- 1:35:08클래스로부터 만들어진 비원 객체를
- 1:35:10가지고 셋 트래블 모드 메소드로
- 1:35:12호출하면 실행 결과가 이렇게 되는
- 1:35:13반면에 어드밴스드 트래블 블랙박스
- 1:35:15클래스를 통해 만들어진 B2 객체를
- 1:35:17가지고 동일한 메소드로 호출하게 되면
- 1:35:19메소드 오버라이딩을 통해서 이렇게
- 1:35:21영상 제작과 메일 발송까지 동작을
- 1:35:23포함하는 코드를 수행하게 되는
- 1:35:35겁니다 이번에 배울 내용은 패스입니다
- 1:35:38우리가 앞에서 클래스를 정의할 때
- 1:35:39이미 이렇게 써 봤었는데요 패스는
- 1:35:41나중에 할테니까 일단은 네버 두라는
- 1:35:43의미로 쓰입니다 우리가 클래스를 만들
- 1:35:45때 어떤 메소드가 필요한지 미리
- 1:35:47구상한 것을 이렇게 나열할 수가
- 1:35:49있는데요 하다 보면 또 뭔가가
- 1:35:51필요한게 떠오를 수도 있겠죠 그런데
- 1:35:52다른 작업을 먼저 먼저 하느라
- 1:35:54지금은이 부분에 대한 코드를 작성하지
- 1:35:55못할 수도 있습니다 이런 경우에 그냥
- 1:35:57패스라고 만 적어두면 우선은 완성된
- 1:35:59형태의 코드가 되어서 포맷 메소드로
- 1:36:01호출해도 에러가 발생하지 않아요
- 1:36:03그래서 이렇게 패스들을 이용해서 우선
- 1:36:05클래스의 뼈대만 만들어 놓고 나서
- 1:36:07하나씩 메소드의 실제 동작을 구현할
- 1:36:08수도 있습니다 패스는 클래스
- 1:36:10메소드뿐만 아니라 와과 같은 반복문
- 1:36:12프 조건문 그리고 함수 등에도 사용될
- 1:36:14수 있습니다
- 1:36:26버스에서 교통 카드를 찍었는데 잔액이
- 1:36:28부족합니다 그래고 하면 어떻게 해야
- 1:36:29할까요 캠핑장에서 텐트를 치고 유리를
- 1:36:31해먹고 랬는데 깜빡하고 음식 재료로
- 1:36:33안 가졌다면 어떻게 할까요 또는
- 1:36:35스마트폰으로 중요한 연락을 기다리고
- 1:36:37있는데 배터리가 다 되어서 꺼지기
- 1:36:39직전이라면 우리는 살다 보면 이런
- 1:36:41다양한 종류의 예상하지 못한 상황을
- 1:36:43만나게 됩니다 컴퓨터도 마찬가지인데요
- 1:36:44가령 어떤 수를 영으로 나누려고
- 1:36:46한다거나 숫자로 바꿀 수 없는 걸
- 1:36:48인트로 바꾸려 한다거나 값을 두 개만
- 1:36:50가지고 있는 리스트의 999 인덱스에
- 1:36:52접근하려고 하면 안 되겠죠 이런
- 1:36:54상황을 프로그래밍에서는 오류 또는
- 1:36:55에러가 발생했다고 하고이 에러를
- 1:36:57처리해 주지 않으면 프로그램은 작동을
- 1:36:59멈추게 됩니다 이런 상황을 만났을
- 1:37:00때도 프로그램이 올바로 동작할 수
- 1:37:02있도록 해 주는 것을 예외 처리한다고
- 1:37:04하는데요 예외 처리는 이렇게 사용할
- 1:37:06수 있습니다 트라이 콜론을 입력하고
- 1:37:07나서 다음 줄에 드레 쓰기를 하고
- 1:37:08나서 수행할 문장들을 원하는만큼 적어
- 1:37:11주시면 됩니다 그 밑에 세트 콜론을
- 1:37:13하고 나서 만약에 앞의 문장들을
- 1:37:14수행하다가 에러가 발생하면 그때
- 1:37:16수행할 문장들을 적어주면 됩니다이
- 1:37:18문장은 에러가 나지 않으면 수행되지
- 1:37:20않는 거예요 그 밑에 엘스 콜론을
- 1:37:22적고 나서 적어줄 문장은 트라이
- 1:37:23위치에 있는 문장들이 아무 문제 없이
- 1:37:25잘 동작했을 때 수행되는 문장입니다
- 1:37:27그리고 파이널리 콜론을 적고 나서
- 1:37:29마지막으로 수행할 문장을 적어
- 1:37:30주는데이 문장은 트라일 영역에 있는
- 1:37:32문장들이 수행되고 에러가 발생하거나
- 1:37:34말거나 상관없이 항상 마지막으로
- 1:37:36수행되는 문장입니다 예를 들어 볼게요
- 1:37:38트라이 구문에 먼저 넘 1을 넘 2로
- 1:37:40나눈 값을 리트에 넣으려고
- 1:37:42시도하겠습니다 이때 넘 1은 3이고
- 1:37:44넘 2는 0이라고 가정할 이렇게요
- 1:37:45그리고 그 결과를 여기서 출력할 텐데
- 1:37:47모든 수는 0으로나누기 때문에이
- 1:37:49가정에 의해서 3 나 0은 에러가
- 1:37:51나겠죠 그래서 트 구문을 통해 서
- 1:37:53에러가 발생했다는 내용을 출력해
- 1:37:55주겠습니다 그런데 만약에 넘 2가
- 1:37:570이 아니고 3이라면 어땠을까요네 3
- 1:37:59나 3은 연산에 문제가 없겠지요 그런
- 1:38:01경우를 대비해서 스를 통해서 정상
- 1:38:03동작했다 구문도 적어 주겠습니다
- 1:38:05실제로 프로그램이 동작할 때는 넘
- 1:38:071과 넌 2의 값은 뭐가 될지 모르기
- 1:38:09때문에 이렇게 해 주는 거예요
- 1:38:10마지막으로 파이널을 통해서 수행
- 1:38:12종류라는 구문을 적어줍니다이 문장은
- 1:38:14앞에서 에러가 발생하곤 말건 상관없이
- 1:38:16무조건 수행되는 거예요 그래서 이렇게
- 1:38:18완성된 프로그램을 실행했을 때 넘
- 1:38:201이 3이고 넘 2가 0인 경우에
- 1:38:21대해서 실행을 해 보면 먼저이 문제
- 1:38:23실행하다가 에러가 발생하니까 셉트
- 1:38:25구문으로 가서 여기를 실행하고
- 1:38:27마지막으로 파이널리 수행하게 되므로
- 1:38:29실행 결과는 이렇게 나오는 것을 알
- 1:38:30수 있고요 넘 1이 3이고 넘 2도
- 1:38:333이라고 하면이 연사는 문제가 없을
- 1:38:34거고 따라서 아래 문장인 프린트 문도
- 1:38:36실행되고 나서 정상 동작했을 때
- 1:38:38처리되는 S 구물이 문장을 출력하고
- 1:38:41마지막으로 파이널리 구문을 타게 돼서
- 1:38:43실행 결과는 이렇게 되는 것을 확인할
- 1:38:44수 있습니다 참고로 예외 처리는
- 1:38:45크게네 가지 유형으로 쓸 수 있어요
- 1:38:47트라이 엑트는 에러가 발생하면 에러
- 1:38:49처리를 하게 되고 트라이 파이널은
- 1:38:51에러가 발생하면 에러 처리는 따로
- 1:38:52없이 그냥 냐 마지막으로 수행할 문장
- 1:38:54하고 넘어가게 됩니다 이렇게 트라이는
- 1:38:56반드시 트 또는 파이널리 구문과 함께
- 1:38:59쌍을 이루야 하고요 트라이 EX 스는
- 1:39:01에러가 발생하면 에러 처리를 에러가
- 1:39:03발생하지 않으면 정상 동작에 따른
- 1:39:05처리를 하게 되고 트라이트 S
- 1:39:06파이리는 거기에 더해서 에러가
- 1:39:08발생하거나 말거나 어쨌건 마지막으로
- 1:39:10뭔가 문장을 수행하고 마치게 되는
- 1:39:12겁니다
- 1:39:23100년 만에 도서관의 책을 빌리러
- 1:39:25갔습니다 빌리고 싶은 책을 찾고는
- 1:39:27사서 분에게 갔는데요 대출이 안
- 1:39:29된다고 합니다 황당하죠 그래서 왜 안
- 1:39:31되는지 물어봅니다 이렇게 물었더니
- 1:39:33돌아온 대답은 안 된다고 합니다 화가
- 1:39:35나지요 뭐 때문에 안 되는지 이유도
- 1:39:36알려주지 않고 그냥 안 된다고만
- 1:39:38하니까요 에러는 실생활에서 프로그램
- 1:39:40상에서 언제나 일어날 수 있습니다
- 1:39:42하지만 최소한 그게 무슨 에러인지
- 1:39:44또는 왜 발생한 상황인지를 알아야
- 1:39:46대처가 가능하겠죠 만약에 사서 분이
- 1:39:48대출이 안 된다고 하는 상황에서
- 1:39:50최대로 빌릴 수 있는 다섯권을 이미
- 1:39:51대출 중이라고 한다든지 연체 중인
- 1:39:53도서가 있다든지 회원 가입이
- 1:39:55필요하다던 등등 무슨 이유로 대출이
- 1:39:57안 되는지를 안내해 주면 그에 따라서
- 1:39:59뭔가 해결하거나 그에 맞는 처리를 할
- 1:40:01수 있을 겁니다 앞에서 예외 처리를
- 1:40:03공부할 때 다뤘던 소스 코드를 조금
- 1:40:04바꿨습니다 넘 1에서 넘 2를 나눈
- 1:40:07값을 리트에 넣은 뒤에 프린트 분을
- 1:40:09통해서 결과를 출력하는 코드인데 넘
- 1:40:111이 3이고 넘 2가 0이라고
- 1:40:13가정하면이 문장에서 에러가 발생하겠죠
- 1:40:15이대로 코드를 실행시켜 보니 에러가
- 1:40:17발생했다고 친절히 알려줍니다 그런데
- 1:40:19무슨 에러가 발생했을까요 그리고 그
- 1:40:21에러가 왜 발생했을까요 우리는 여기서
- 1:40:230로 나누러 했기 때문에 에러가
- 1:40:25발생했다는 것을 알 수 있지만 이렇게
- 1:40:26주석이 없는 상황이었다면 어쩌면
- 1:40:28에러의 원인을 알기 어려웠을 겁니다
- 1:40:30이때 에러가 무엇인지 왜 발생했는지를
- 1:40:32알기 위해서는 세트하고 콜론 사이에
- 1:40:35exception AS err이라고
- 1:40:37적은 뒤에 프린트를 통해을 출력해
- 1:40:39보면 이렇게 에러 내용을 확인해 볼
- 1:40:41수 있습니다 이때 익셉션을 모든
- 1:40:43에러의 기본이 되는 클래스라서 그냥
- 1:40:45이렇게 적으면 모든 에러에 대한
- 1:40:46확인은 가능하지만 우리 도서관에서
- 1:40:48다섯 권을 모두 대출 중이라면 대출
- 1:40:50중인 책 한 권을 먼저 반납하거나
- 1:40:51연체 도서가 있다면 그 책을 가지고
- 1:40:53다시 방문하든 또는 회원 가입이
- 1:40:55필요하다고 하면 바로 회원 가입을
- 1:40:57시도해 볼 수 있는 것처럼 서로 다른
- 1:40:58상황에 대한 서로 다른 처리가 필요한
- 1:41:00경우도 있습니다 자 다시 코드로
- 1:41:02돌아와서요 우리 코드에서는 이렇게
- 1:41:03해볼 수 있는데 트 구문을 추가하고
- 1:41:060어 나눴을 때 발생하는 에러를
- 1:41:07처리하기 위해서는 제로 디비전
- 1:41:09에러라고 적어 주면 이렇게
- 1:41:110으로나누기 없어요라고 문장이
- 1:41:12실행됩니다 또는 넘 2가 숫자 0이
- 1:41:15아닌 문자가 0이라고 하면 정수형과
- 1:41:17문자형 입으로 서로 연산이 불가능하죠
- 1:41:19그럴 때는 새로운 익셉트 구문을
- 1:41:21추가하고 에러의 종류를 타입 에러라고
- 1:41:23하 면 이런 식으로 값의 형태가
- 1:41:24이상하다는 출력 결과를 확인할 수
- 1:41:26있습니다 즉 에러의 종류에 따라 서로
- 1:41:28다른 처리를 하고 자할 때는 이렇게
- 1:41:30트 구을 여러 개 적어서 그 에러에
- 1:41:31해당하는 예외에 처리를 해 줄 수도
- 1:41:33있고 만약 앞에서 나열한 모든 에러에
- 1:41:35해당하지 않는다면 최종적으로 익셉션을
- 1:41:37통해서 처리를 해 줄 수도 있습니다
- 1:41:38참고로 이때 이알 부분은 여러분들이
- 1:41:40원하는 이름으로 아무거나 쓰셔도
- 1:41:41상관없습니다 구글에서 파이썬 션라이트
- 1:41:46통해서 스크롤을 밑으로 내려보시면
- 1:41:48다양한 에러의 종류 및 설명을 확인할
- 1:41:50수가 있습니다
- 1:42:02코딩을 하다 보면 지난번에 만든
- 1:42:04코드가 이번에도 필요한 경우가
- 1:42:05있습니다 같은 파일 내에서 작업하다가
- 1:42:07그런 경우라면 함수로 만들어서 같이
- 1:42:09사용하면 되지만 다른 파일이라면
- 1:42:11어떻게 할까요 모듈이라는게 있습니다
- 1:42:13파이썬에서 모듈이란 코드들이 작성되어
- 1:42:15있는 하나의 파이썬 파일을
- 1:42:16의미하는데요이 모듈에는 우리가
- 1:42:18지금까지 공부한 변수나 함수 클래스
- 1:42:20등이 정의되어 있을 수 있습니다
- 1:42:21새로운 환경에서 작업을 하다가
- 1:42:23지난번에 만들었던 어떤 코드 또는
- 1:42:24기능이 필요하면 이렇게 가져다가
- 1:42:26사용할 수 있어요 먼저 아주 간단한
- 1:42:28모듈를 만들어 볼게요 굿잡 파이라는
- 1:42:30이름으로 파일을 만들고 이런 문장을
- 1:42:32출력하는 세이라는 간단한 함수를
- 1:42:34만들어 두겠습니다 그리고 새로운
- 1:42:36파일에서이 모듈을 가져다 쓰기
- 1:42:37위해서는 두 가지 방법이 있는데 첫
- 1:42:39번째 방법은 임포트 띄우고 모듈
- 1:42:41이름을 적어주면 되고요 두 번째
- 1:42:43방법은 프롬 띄우고 모듈명 띄우고
- 1:42:45임포트 띄우고 여러분들이 가져다 갔을
- 1:42:48변수 함수 또는 클래스를 적어주면
- 1:42:50됩니다 첫 번째 방법으로 먼저 해보면
- 1:42:53임포트 띄우고 굿잡 즉 굿잡 파이라는
- 1:42:56파일에서 확장자인 점 파일을 제외한
- 1:42:58잡을 적어주면 되고요 밑에서는 모듈
- 1:43:01명인 굿 자점 세이를 통해서이 모듈
- 1:43:04세이라는 함수를 사용할 수 있게
- 1:43:05됩니다 실행 결과는 이렇게 나오고요
- 1:43:07두 번째 방법으로 해 보면 프롬
- 1:43:09띄우고 모듈 명인 굿잡 띄우고 임포트
- 1:43:12띄우고 나서 우리가 갖다 쓸 세이라는
- 1:43:15함수의 이름을 적어주면 됩니다
- 1:43:16이번에는 모듈 명인 굳잡 없이 그냥
- 1:43:18세일하는 함수를 마치이 파일에서
- 1:43:21정의한 것처럼 사용할 수 있습니다 실
- 1:43:23결과는 동일하지요이 둘의 차이점은 첫
- 1:43:25번째 방법은 모듈 전체를 가져와서이
- 1:43:27모듈에 포함된 모든 기능을 다 쓸 수
- 1:43:29있도록 하겠다는 의미이고 두 번째
- 1:43:31방법은 모듈 중에서 필요한 것들만
- 1:43:33우리 예제에서는 세이 함수만 가져다
- 1:43:35쓰겠다는 의미가 됩니다 모듈은 이렇게
- 1:43:37우리가 만들 수도 있지만 이미
- 1:43:38파이썬에서는 수많은 모듈들이 제공되고
- 1:43:40있습니다 대표적인 모듈 중 하나가
- 1:43:42랜덤인데 가령 여러분이 랜덤으로 가입
- 1:43:45바이보 중에서 하나를 뽑고 싶다면
- 1:43:46코드를 이렇게 랜덤 모드를 임포트하고
- 1:43:49나서 가위 바보라는 값을 가지는
- 1:43:51리스트를 만들고 앞에서 인포트 한
- 1:43:54랜덤 모듈의 초이스란 함수를 이용해서
- 1:43:57리스트를 넣고 실행을 해 보면 이렇게
- 1:43:59매번 달라지는 결과를 얻을 수 있게
- 1:44:00됩니다 그러면 우리는이 리스트에서
- 1:44:02랜덤으로 어떤 값을 뽑아내는 함수를
- 1:44:04따로 만들 필요 없이 이미 만들어진
- 1:44:06모듈을 갖다 쓰기만 하면 되는 거예요
- 1:44:07구글에서 리스트 오브 파이썬 모듈라고
- 1:44:10검색을 해 보면이 링크를 통해서
- 1:44:12파이썬을 설치할 때 자동으로 제공되는
- 1:44:14모듈들을 확인할 수 있습니다 우리
- 1:44:16랜덤은 I 클릭하고 여기 보면 있지요
- 1:44:19여기에서 모듈에 대한 자세 설명 및
- 1:44:20예제도 함께 확인할 수 있습니다
- 1:44:33코드들이 작성되어 있는 하나의 파이썬
- 1:44:35파일을 모듈이라고 했었는데요 이런
- 1:44:37모듈이 여러 개 보인 것을 패키지라고
- 1:44:39합니다 패키지는 하나의 폴더이다 여러
- 1:44:41모듈들이 존재하는 형태인데요 우리가
- 1:44:43모듈을 공부할 때 만들었던 .py
- 1:44:45아는 파이썬 파일이이어서 .py는
- 1:44:48파일을 만들고 바이라고 하는 함수를
- 1:44:50이렇게 정의해 보겠습니다 그리고이 두
- 1:44:51개의 파일들을 우리 워크스페이스 내
- 1:44:53나도 코딩이라는 폴더를 하나 만들어서
- 1:44:55거기 안으로 이동해 볼게요 그리고
- 1:44:57나도 코딩 폴더와 동일한 위치에 있는
- 1:44:59새로운 파일에서 예를 들어 프랙티스
- 1:45:00.py는 파일에서 나도코딩 패키지를
- 1:45:02사용해 보겠습니다 그러니까 비주얼
- 1:45:04스튜디오 코드에서는이 상황이에요 나도
- 1:45:06코딩 폴더가 있고 그 안에 굿바이
- 1:45:08.py 굿잡 py 있고 밖에 프랙티스
- 1:45:12pyga 나도 코딩 패키지와 동일한
- 1:45:14위치에 있는 거예요 자 먼저 나도
- 1:45:16코딩 패키지를 갖다 쓰기 위해서는
- 1:45:17모듈과 똑같이 그냥 임포트 띄우고
- 1:45:19가져 오르는 패키지명 즉 나도 코딩을
- 1:45:21적어주고 나서 점을 고 가져 오르는
- 1:45:23모듈의 이름 예를 들면 잡을 적어
- 1:45:25주시면 됩니다 그러면 다음 줄에서
- 1:45:27나도코딩 자세를 통해서 세이 함수를
- 1:45:30호출할 수 있는 거예요 실행에 보면
- 1:45:32모듈에 정의된 것처럼 참 잘했어요
- 1:45:33출력되는 걸 알 수 있고요 또 다른
- 1:45:35방법으로는 프롬 띄우고 패키지 명인
- 1:45:37나도 코딩을 적고 나서 가져오려는
- 1:45:39모듈을 임포트 뒤에 적어 주시면
- 1:45:41됩니다 임포트 굿 바라고 하고요 다음
- 1:45:43줄에서는 굿바이바이 함수를 이렇게
- 1:45:45호출할 수 있습니다 실행 결과는
- 1:45:47굿바이 모듈이 바이 함수에 정의된
- 1:45:49대로 또만 나가 출력되는 걸 알 수
- 1:45:51있지요 만약에 두 개 모듈을 다 갖다
- 1:45:53쓰고 싶은 경우에는 프롬 나도 코딩
- 1:45:54띄우고 임포트 하고 나서 가져오고
- 1:45:56싶은 모듈들을 콤마로 구분서 정의해
- 1:45:58주시면 됩니다 그러면 이렇게 각각의
- 1:46:00모듈내 있는 함수들을 굿잡 say
- 1:46:02바바와 같이 마음껏 쓸 수 있습니다
- 1:46:05코드를 실행해 보면 이렇게 출력되는
- 1:46:07걸 알 수 있어요 참 잘했어요 또
- 1:46:20맞나요 이것으로 모든 평가가 완료되
- 1:46:22되었습니다 수고하셨습니다
About this transcript
This page contains the full transcript of 파이썬 무료 강의 100분 완성 (1분 파이썬 모음) by 나도코딩, generated from the public captions YouTube serves with the video. The transcript has 15,101 words across 2,999 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.