함수
파이썬 함수의 구조
def 함수명(매개 변수):
수행할문장...
return 리턴 값
함수를 사용하지 않고 그냥 정의만 할 수도 있다. (입력값이나 출력값이 없을 수 있다.)
함수를 사용하는 것을 '함수 호출'이라고 한다.
또는 결과값이 없을 수도 있다.
리턴값이 없으면 None으로 출력된다!!
입력값도 결과값도 없는 함수
def say():
print('Hi')
print(say())
여러 개의 입력값
어떤 값이 다 들어와도 이 값들을 다 더해주고 싶다하면 *args를 사용한다!!@@
키워드 파라미터
딕셔너리 형태로 여러개의 값이 들어온 것을 처리할 수 있는 매개변수이다.
함수
함수의 결과값은 언제나 하나이다.
여러 개의 값을 한번에 리턴하고 그걸 튜플 형태로 받아서 나눠 쓰면 된다.
print(sum_and_mul(1,2)[0]) 해서 더한 값만 뽑아서 출력할 수도 있다.
-> 여러 개의 값을 리턴하고 그중에서 골라서 사용할 수 있다!!
매개 변수에 초기값 미리 설정하기
man을 True로 지정해두었기 때문에 함수 호출하고 인자쓸 때 3번째 자리에 뭐 안써줘도 출력이 정상적으로 man으로 나온다. (기본적으로 맨 뒤에 적어줌!)
근데 처음 매개변수에 초기값을 지정해주지 않으면 함수 호출하고 인자를 쓸 때 개수에 맞게 값을 써줘야 한다.
이 방법에서는 순서를 딱딱 맞춰줘야 한다!
순서를 맞추지 않으려면 다음과 같이 작성한다.
이처럼 값들을 직접 매핑을 시켜주면 된다.
함수 안에 선언된 변수의 효력 범위 @@중요!
함수 안에서 선언된 변수는 지역변수이다. (임시 변수라고 생각하면 된다.)
범위가 함수 안이다.
a라는 변수이름만 같고 다른 역할을 하는 것이다.
(방법 1) - return 사용
이를 해결하기 위해 return a라는 output을 추가해서 사용한다.
(방법 2) - global 선언, 전역변수 : 전체에서 사용할 수 있는 변수
Lambda
-> 함수를 간단하게 표현하는 방법이다.
리스트 안에 함수를 정의해야 할 때 사용하기도 한다. 한줄로 표현이 가능하기 때문에.
def를 사용하지 못하는 경우에 lambda 사용.
사용자 입/출력
input의 사용
input()이나 print() 이런 사전에 정의되어 있는 함수를 '내장 함수' 라고 부르고
def를 사용해서 함수를 만든 것을 '사용자 정의 함수' 라고 부른다.
print문의 기능
,나 +를 하지 않아도 string은 자동으로 더해져서 출력된다. (그냥 붙어서 출력됨)
,를 사이에 넣어주면 띄어쓰기가 되어서 출력된다.
print는 기본적으로 뭐하나 출력하고 다음줄로 넘어간다.
근데 이렇게 end=' '를 주면 여러줄이 아닌 한번에 공백을 두고 출력이 된다.
파일 읽고 쓰기
w는 write, 쓰다. (쓰기모드) : 파일에 내용을 쓸 때 사용
r read,(읽기모드) : 파일을 읽기만 할 때 사용
a add,(추가모드) : 파일의 마지막에 새로운 내용을 추가 시킬 때 사용
파일을 쓰기 모드로 열어 출력값 적기
절대주소 : 처음부분(C:/)부터 주소를 써주는 것
상대주소: 현재 실행하는 파일을 기준으로 상대적인 경로를 써주는 것
encoding="UTF-8" -> 한글깨짐현상 방지
이것을 크롤링에도 응용할 수 있다!!
readline() 함수 -> 읽기모드
어떤 파일이 있으면 한 줄씩 읽어오는 함수이다.
주의해야 할 점은 파일을 open 했으면 그 아래에 f.close()를 반드시 해줘야 한다.
그렇다면 한 줄을 읽어오는게 아니라 모든 줄을 읽어오려면 어떻게 해야할까??
readlines() 함수 이용하기 - readlines임!! s 있음!
readlines()를 통해서 파일에 있는 모든 라인을 다 읽어올 수 있다.
lines가 리스트 형태로 들어가서 리스트 중에서 하나씩 line을 빼서 출력을 한다.
파일 만들었을 때 \n이 있기 때문에 한줄씩 띄어져서 출력이 되는 것이다.
-> end = " " 를 쓰면 해결됨.
-> strip() : 양쪽 끝에서 특정 문자를 제거해주는 함수 strip("\n") 을 추가해도 해결됨.
=> 이걸 둘다 사용하면 한줄에 다 출력된다.
read() 함수 이용하기
readlines()는 리스트 형식으로 가져와서 한줄씩 출력해서 동작했다.
하지만 read()는 통째로 읽어온다.
read() -> 통째로 읽어옴.
readlines() -> 리스트 형태로 가져와서 출력함.
readline() -> 한 줄 읽어옴. 반복문 필요.
write랑 add의 차이는
write는 기존에 있는 걸 다 없애고 우리가 입력한 값으로 바뀐다.
a모드, 즉 add는 기존에 있는 걸 그대로 두고 그 뒤에 값을 추가하는 것이다.
+ close를 사용하지 않는 방법!도 있음
with문과 함께 사용하기
여기서 f는 지역변수 개념임!
들여쓰기 된 범위 내에서만 사용된다. 즉, f는 별도로 close를 할 필요가 없다.
'Python > Python Study' 카테고리의 다른 글
파이썬 추가적인 개념 - 2 (1) | 2021.01.14 |
---|---|
파이썬 추가적인 개념 - 1 (0) | 2021.01.09 |
파이썬 제어문 (0) | 2020.12.28 |
파이썬 자료형-2 (0) | 2020.12.27 |
파이썬 자료형-1 (1) | 2020.12.27 |