Super Kawaii Cute Cat Kaoani

Python/Python Study

파이썬 입출력

zozni 2021. 1. 9. 18:47
728x90
반응형
SMALL

함수

파이썬 함수의 구조

def 함수명(매개 변수):

     수행할문장...

     return 리턴 값

 

함수를 사용하지 않고 그냥 정의만 할 수도 있다. (입력값이나 출력값이 없을 수 있다.)

함수를 사용하는 것을 '함수 호출'이라고 한다.

 

출력 결과는 3
입력값이 없어도 출력됨.    출력결과는 Hi.

또는 결과값이 없을 수도 있다.

리턴값이 없으면 None으로 출력된다!!

 

출력결과는 None과 4로 나오게 된다.

 

입력값도 결과값도 없는 함수

def say():

    print('Hi')

print(say())

 

여러 개의 입력값

어떤 값이 다 들어와도 이 값들을 다 더해주고 싶다하면 *args를 사용한다!!@@

이 경우 출력값은 6

 

키워드 파라미터

딕셔너리 형태로 여러개의 값이 들어온 것을 처리할 수 있는 매개변수이다.

출력 결과

 

함수

함수의 결과값은 언제나 하나이다. 

여러 개의 값을 한번에 리턴하고 그걸 튜플 형태로 받아서 나눠 쓰면 된다.

print(sum_and_mul(1,2)[0]) 해서 더한 값만 뽑아서 출력할 수도 있다. 

-> 여러 개의 값을 리턴하고 그중에서 골라서 사용할 수 있다!!

 

 

매개 변수에 초기값 미리 설정하기

출력 결과

 

man을 True로 지정해두었기 때문에 함수 호출하고 인자쓸 때 3번째 자리에 뭐 안써줘도 출력이 정상적으로 man으로 나온다. (기본적으로 맨 뒤에 적어줌!)

근데 처음 매개변수에 초기값을 지정해주지 않으면 함수 호출하고 인자를 쓸 때 개수에 맞게 값을 써줘야 한다.

이 방법에서는 순서를 딱딱 맞춰줘야 한다!

 

순서를 맞추지 않으려면 다음과 같이 작성한다.

이처럼 값들을 직접 매핑을 시켜주면 된다.

 

 

함수 안에 선언된 변수의 효력 범위 @@중요!

함수 안에서 선언된 변수는 지역변수이다. (임시 변수라고 생각하면 된다.)

범위가 함수 안이다.

     그래서 이 예제에서       출력결과는 1인 것이다.

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를 할 필요가 없다.

728x90
반응형
LIST

'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