함수란?
- 프로그램에서 특정 동작을 하도록 이름을 붙인 코드
- 프로그래밍을 할때 함수로 분리해서 코드를 작성시 기능파악이나 흐름파악에 유리
- 프로그래밍에서 반복되는 작업시 입력되는 값은 다른경우 사용

함수생성
- def라는 명령어 사용
- 함수명은 짧은 영문명으로 만듬
- 끝에 소괄호 사용후 매개변수등 넣음
- 매개변수는 함수를 만들때 입력받는 변수
- 인수는 함수를 호출하여 사용할때 ()안에 입력하는 값
- 함수는 생성후 호출하지 않으면 아무일도 안일어남

매개변수가 들어가지 않는 경우

매개변수가 들어가는 경우

함수에서 변수의 사용
- 함수 안에서 사용된 변수는 함수 밖에서는 사용을 못함
- 함수 밖에서 선언된 변수를 사용할때는 global 명령어를 사용한다.
함수에서 변수 사용시 오류 상황

함수 안에서 함수밖 변수 a를 사용하기 위해 global로 선언

함수 return
- 함수가 호출 되었을때 결과 전달시 사용한다.
- 함수에 무조건 return이 필요하지는 않다.
return 이 없는 함수

return 이 있는 함수

복수의 return이 있는 함수(튜플, 리스트, 딕셔너리 등의 자료형을 활용)

ex)딕셔너리 활용

함수 매개변수
- 매개변수는 함수를 만들때 소괄호 안에 들어간것을 매개변수라고 한다.
- 매개변수는 무조건 다 사용하지 않아도 된다.

매개변수 오류의 경우

매개변수명 활용

여러개의 매개변수입력 - *사용

매개변수와 *매개변수 사용을 할떄 주의사항


**kwargs
- ** 사용
- 입력받은 매개변수는 딕셔너리로 저장

매개변수의 초기값 넣기
- 매개변수에 초기값을 넣어 인자값을 생략 가능하다
- 인자값 안넣을시 생기는 오류 방지가능
default 값을 넣은상태로 그냥 출력

default 값을 넣은상태로 userinfo에 name값 변경 후 출력

lambda 함수
- 함수를 한줄로 생성할때 사용
- def 명령어 대신 lambda 사용
- 함수이름 = lambda 매개변수1, 매개변수 : 수행식
- def 나 lambda나 둘중 본인이 편한걸 사용하면 된다.

- 사용자가 입력한 값을 변수에 넣을때 사용
Ex)
이름을 입력하세요. :
나이를 입력하세요. :
번호를 입력하세요. :
저장할 변수명 = input('화면에 출력될 글')


파일 read, write
- 저장 공간(hdd,ssd) 에 파일을 생성하거나 불러올수 있음
- open(파일명, 모드)
- 모드 : w(쓰기), r(읽기), a(추가하기)
- 객체명.close()로 마지막 열려있는 객체를 닫아줘야함 (생략가능)

파일 write
- namelist 데이터를 파일로 저장(w모드)

- with 명령어 사용하여 저장

파일 read
- readline() : 파일내용을 한줄씩 가져옴

- readlines() : 모든 파일내용을 리스트로 가져옴

Ex)
