반복적인 동작을 수행하는 경우 함수로 동작을 함수로 만들어서 쉽게 사용할 수 있다.
def 를 이용하여 함수명을 정의하고 () 안쪽에 매개변수를 설정하고 return을 이용하여 출력되는 값을 지정하였다.
def 함수명(매개변수):
수행할 동작
수행할 동작
def add(a,b):
return a+b
함수를 정의할 때 사용되는 a, b는 매개변후(parameter)이고 인수(arguments)는 실제 입력되는 값이다.
입력값과 결괏값에 따른 함수의 형태
1. 입력값과 결괏값이 있는 일반적인 형태
2. 결과값만 있는 형태, 이함수를 출력하기 위해서는 입력값이 없어야한다.
3. 결괏값이 없는 함수, def 함수를 정의하는 과정에서 return이 없으면 출력되는 값이 없다.
4. 입력값과 결괏값이 없는 형태, 이함수를 출력하기 위해서는 함수이름만 입력해야한다.
매개변수를 지정하여 함수를 사용할 수 있다.
add( a=10, b= 20) 과 같이 def 함수를 정의할 때 사용된 매개변수값을 지정하면 함수 () 안의 순서와 상관없이 함수의 기능을 수행할 수 있다.
여러개의 매개변수를 받을 때는 변수앞에 *를 입력하면 값이 튜플로 만들어져서 여러 값을 넣을 수 있다.
매개변수 앞에 ** 을 붙이면 매개변수 안에 들어가는 값이 key=value형태의 딕셔너리 자료가 만들어진다. (keyword arguments, kwargs)
return으로 출력되는 값은 언제나 하나이다. 값이 여러개면 튜플로 묶여서 출력되고 값은 return을 만나는 즉시 결과값으로 나오게된다.
매개변수의 초깃값을 미리 설정하여 입력시 값을 설정하지 않아도 자동으로 설정값이 입력되도록 할 수 있다. 하지만 입력순서를 지켜야 오류가 생기지 않는다. (SyntaxError: non-default argument follows default argument)
함수 안에서 사용된 변수는 함수안에서만 인식되는 변수이다.
함수 안에서 함수 밖의 변수를 변경하는 방법
1. 함수 안에서 정의된 변수를 return 후에 함수밖 변수로 다시 지정해준다.
a =1
def vertest(a):
a = a +1
return a
a = vertest(a)
print(a)
2. 함수안에서 global 변수 을 이용해서 밖에 있는 변수를 함수 안으로 불러온다. 하지만, 함수는 독립적으로 존재하는 것이 좋기 때문에 좋은 방법이 아니다.
a =1
def vertest(a):
global a
a = a+1
vertest()
print(a)
lambda 함수를 이용해서 def 와 같은 역할을 하는 함수를 만들 수 있다. 함수를 간결하게 만들기 위해서 사용한다. return 명령어가 없어도 결과값을 출력한다.
add라는 함수를 a,b,라는 매개변수에 대해 a+b 라는 결과값을 돌려준다.
add = lambda a, b : a+b
result = add(3,4)
print(result)
-> 7
==== 35분 ====
사용자 입력과 출력
사용자가 어떤값을 입력하고 싶을 때
a = input() 어떤값을 입력하면 a로 들어간다. 입력되는 값은 모두 문자열로 취급한다.
프롬프트 띄워서 사용자 입력받기
input("질문내용") 은 입력창에 " " 안의 문장이 출력되고 사용자가 입력하면 값으로 저장된다.
프롬프트(prompt) = 컴퓨터가 입력을 받아들일 준비가 되었다는 것을 사용자에게 나타내어 주기 위해 컴퓨터 단말기 화면에 나타나는 신호. (prompt : a, 즉각적인, 지체없는, 신속한 v, (어떤 일이 일어나도록)하다, 촉발하다, 유도하다, 대사를 상기시켜주다 n. 대사를 상기시켜 주는 말, 프롬프트(운영체제에서 사용자에게 보내는 메시지), 부사. 정확히(..시에) (..시)정각에)
print 는 입력한 자료를 출력하는 것이다.
print 안에서 " "로 둘러싸인 문장은 + 연산과 동일하게 작용한다.
띄어쓰기는 , 콤마로 한다.
print ( ) 안에 end = " " 을 통해서 결과값을 한줄에 연속해서 나타낼 수 있다.
print("life" "is" "too short") # ①
lifeistoo short
print("life"+"is"+"too short") # ②
lifeistoo short
print("life","is","too short") # ②
life is too short
==== 10분 ====
파일 읽고 쓰기
f = open("새파일.txt", 'w')
f.close()
open() 내장함수를 통해서 파일을 열수 있다. 'w'은 쓰기모드, 'r'은 읽기모드, 'a'는 파일의 마지막에 새로운 내용을 추가시킬 때 사용한다.
'w' 쓰기모드일때 같은 파일이름이 있으면 기존내용을 지우고 새로운 파일이 만들어진다.
경로를 지정해주지 않으면 파이썬 파일이 동장하는 폴더에서 새파일이 만들어지고 경로를 지정해주면 지정된 경로에서 새파일이 만들어진다.
close()를 하지 않아도 파일이 만들어지지만 오류가 날 수 도 있기 때문에 close()해주는 것이 좋다.
readline()은 파일의 첫번째 줄의 값을 불러온다.
readlines()는 파일의 모든 줄을 각각의 값으로하는 리스트를 만든다.
read()는 파일의 전체내용을 문자열로 가져온다.
with 을 사용하면 파일을 닫는 명령어를 close()을 반복해서 사용하지 않아도 된다. 값이 with을 벗어나면 자동으로 close된다.
with open("foo.txt", "w") as f:
f.write("내용")
.wirte() 을 이용해서 데이터를 작성할 수 있다.
==== 15분 ====
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 기초 [점프 투 파이썬 - 어떻게 시작해야할까, 정규표현식] (0) | 2021.05.28 |
---|---|
파이썬 기초 [점프 투 파이썬 - 날개달기] (0) | 2021.05.28 |
파이썬 기초 [점프 투 파이썬 - 제어문] (0) | 2021.05.28 |
파이썬 기초 [점프 투 파이썬 - 자료형] (0) | 2021.05.28 |
파이썬공부 [점프투파이썬] (0) | 2021.05.27 |