관리 메뉴

애독자's 공부방

[5주차] Do it! 파이썬 스터디 노트 - 점프 투 파이썬 본문

Python/Do it! 파이썬 스터디 2기

[5주차] Do it! 파이썬 스터디 노트 - 점프 투 파이썬

애독자 2023. 7. 25. 02:00
728x90

Do it! 파이썬 스터디 노트 - 점프 투 파이썬

 

1. 《Do it! 점프 투 파이썬》 -전면 개정 2판 글감을 추가해주세요.

 
 

 

2. 미션 인증샷을 남겨 주세요! (책과 함께 공부하는 모습을 찍어주세요! 책과 모니터가 함께 보이면 더 좋아요!)

 

 

 

3. 이번 미션을 진행하면서 좋았던 점이나 어려웠던 점 또는 새로 알게 된 점이 있었나요? (200자 내외 / 실습 부분을 캡쳐해도 좋아요!)

📖
미션 범위 (점프 투 파이썬 책 페이지)
일정
5주차
프로그램의 입력과 출력은 어떻게 해야 할까?
4장 04-1 함수 (153pg)
4장 04-2 사용자 입력과 출력 (171pg)
4장 04-3 파일 읽고 쓰기 (175pg)
4장 04-4 프로그램의 입력과 출력 (183pg)
* 되새김 문제 (185pg)
7/24-7/30

 

입출력 프로그래밍 설계와 관련이 있는데, 어떤 식으로 프로그램이 동작하게 할 것인지 설계할 때 가장 중요한 부분이기 때문입니다. 특정 프로그램에서만 사용할 함수를 만들 것인지, 모든 프로그램에 공통으로 사용하거나 오픈 API로 공개하여 외부 프로그램도 사용할 수 있게 할지는 모두 입출력과 관계 있습니다.

 

 

1. 함수: 입력값을 가지고 어떤 일을 수행한 후 그 결과물을 내어놓는 것

- 사용하는 이유

. 반복되는 부분이 있을 경우 '반복적으로 사용되는 가치 있는 부분'을 한 뭉치로 묶어서 '어떤 입력값을 주었을 때 어떤 결괏값을 리턴해 준다'라는 식으로 작성하는 것

. 자신이 만든 프로그램을 기능 단위의 함수로 분리해 놓으면 함수화하면 프로그램의 흐름도 잘 파악할 수 있고 오류도 쉽게 알아차릴 수 있음

- 함수의 구조

  def 함수_이름(매개변수):

      수행할_문장

      ...

      return 리턴값

. 매개변수(parameter): 함수에 입력으로 전달된 값을 받는 변수

. 인수(arguments): 함수를 호출할 때 전달하는 입력값

- 형태: 입력값 → 함수 → 결괏값

. 일반적인 함수: 입력값이 있고 리턴값이 있는 함수 → 리턴값을_받을_변수 = 함수_이름(입력_인수1, 입력_인수2, ...)

. 입력값이 없는 함수: 리턴값을_받을_변수 = 함수_이름()

. 리턴값이 없는 함수: 함수_이름(입력인수1, 입력인수2, ...)

. 입력값도 리턴값도 없는 함수: 함수_이름()

- 매개변수 지정하여 호출: 매개변수를 지정하면 순서에 상관없이 사용 가능

- 입력값이 여러 개일 때, 몇 개가 입력될지 모를 때

  def 함수_이름(*매개변수):

      수행할_문장

      ...

. *args: 인수를 뜻하는 영어 단어 arguments의 약자이며 관례적으로 자주 사용 ( *: 튜플 )

. **kwargs: keyword arguments의 약자이며 args와 마찬가지로 관례적으로 사용 ( **: 딕셔너리 )

- 함수의 리턴값은 언제나 하나: 함수는 return문을 만나는 순간 리턴값을 돌려준 다음 함수를 빠져나감

. 특별한 상황일 때 함수를 빠져나가고 싶다면 return을 단독으로 써서 함수를 즉시 빠져나갈 수 있음

- 매개변수에 초깃값 미리 설정: 매개변수에 들어갈 값이 항상 변하는 것이 아닐 경우에는 함수의 초깃값을 미리 설정해 두면 유용

. 초기화시키고 싶은 매개변수를 항상 뒤쪽에 놓기: 초깃값이 없는 매개변수는 초깃값이 있는 매개변수 뒤에 사용할 수 없음

- 함수 안에서 선언한 변수의 효력 범위: 함수 안에서 사용하는 매개변수는 함수 밖의 변수 이름과는 전혀 상관없음

- 함수 안에서 함수 밖의 변수를 변경하는 방법

1) return 사용: 함수는 독립적으로 존재해야 하기에 권장

2) global 명령어 사용: 외부 변수에 종속적인 함수는 좋지 않으므로 지양

- lambda(람다) 예약어: 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 하며, 보통 함수를 한줄로 간결하게 만들 때 사용

 함수_이름 = lambda 매개변수1, 매개변수2, ... : 매개변수를_이용한_표현식

    ※ lambda로 만든 함수는 return 명령어가 없어도 표현식의 결괏값을 리턴​

 

2. 사용자 입출력

- 사용자 입력 활용: 사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때

. input 사용: 입력한 모든 것을 문자열로 저장

. 프롬프트를 띄워 사용자 입력받기: input()의 괄호 안에 안내 문구를 입력하여 프롬프트를 띄움

- print: 데이터를 출력

. 큰따옴표로 둘러싸인 문자열은 + 연산과 동일

. 문자열 띄어쓰기는 쉼표를 사용

. 한 줄에 결괏값 출력: 매개변수 end를 사용해 끝 문자를 지정 ( end의 초깃값은 줄바꿈 문자: \n )

 

​3. 파일 읽고 쓰기

- 파일 생성: 파이썬 내장 함수 open을 사용

. 파일_객체 = open(파일_이름, 파일_열기_모드)

※ 파일_열기_모드: r(읽기 모드) | w(쓰기 모드) | a(추가 모드): 파일의 마지막에 새로운 내용을 추가

- 파일을 쓰기 모드로 열어 내용 쓰기: 쓰기모드로 파일을 열고 for을 통해 파일 객체 f의 write 함수를 사용

- 파일을 읽는 여러 가지 방법

1) readline 함수 이용: 파일을 한 줄씩 읽어 들이며, 더 이상 읽을 줄이 없을 경우 빈 문자열('')을 리턴

2) readlines 함수 사용: 파일의 모든 줄을 읽어서 각각의 줄을 요소로 가지는 리스트를 리턴 ( strip함수로 줄 바꿈 문자 제거 가능 )

3) read 함수 사용: 파일의 내용 전체를 문자열로 리턴

4) 파일 객체(f)를 for 문과 함께 사용: 파일을 줄 단위로 읽기

- 파일에 새로운 내용 추가: 추가 모드는 파일이 원래 가지고 있던 내용 바로 다음부터 결괏값을 추가

- with문과 함께 사용: with문을 사용하면 with 블록(with문에 속한 문장)을 벗어나는 순간 열린 파일 객체 f가 자동으로 닫힘

 

4. 프로그램의 입출력

- sys 모듈 사용: sys 모듈을 사용하여 프로그램에 인수를 전달 ( import 명령어를 사용: import sys )

. sys 모듈의 argv는 프로그램 실행 시 전달된 인수를 의미: argv[0]은 파일 이름이고, 뒤에 따라오는 인수는 차례로 argv의 요소

0123

 
 

 

4. 스터디를 같이 진행하는 분들과 (동지들과!) 함께 이야기 나누고 싶은 부분이 있다면 작성해 주세요!

 

주말부터 이번 주 내내 비가 온다고 하는데, 잊지 말고 우산 꼭 챙기시기 바랍니다. 또한 Do it! 파이썬 스터디도 잊지 말고 꼭 진행하셔서 끝까지 완주하셨으면 합니다. 함께 힘내요. 😉

 

□ 1년 전 스터디 노트 (개정판)

https://cafe.naver.com/doitstudyroom/38466

 

 

728x90