함수
어떤 일을 수행하는 코드 덩어리
장점 : 코드 재사용을 할 수 있고, 분리 시킬 수 있다
캡슐화
코드를 나누어 놓는 것
구조
def 함수이름 (파라미터1 ,파라미터2):
코드
return 반환값
파라미터 : 입력값에 대한 interface
argument : 실제 parameter에 대입된 값
def f(x):
return 2*x+7
def g(x):
return x**2
x=2
result=f(x)+g(x)+f(g(x))+g(f(x))
print(result)
이 코드에서 argument는 x인 2가 된다.
return값이나 parameter은 존재하지 않을 수 있다.
함수는 상단에 적는 것이 좋다.
함수와 함수사이는 2줄씩 띄워 적는다.
Console in / out
1. input()
사용자가 코드 진행 중 직접 값을 입력할 수 있다.
name=input()
print('Hi', name)
input의 반환값은 string이다. 그래서 integer을 입력해서 string으로 반환된다.
2. Print formatting
- %-format
print('%s %s'%('hi','hello'))
'%데이터타입'%(변수)
s는 string을 의미한다. %d는 십진수에 대한 것이다. %f는 float.
('hi','hello')라는 튜플을 %뒤에 붙혀주고 튜플에 출력을 원하는 값을 입력하면 된다.
%전체문자열길이.소수점자리수
height 뒤의 공백은 float가 총 10칸이어서 공백이 앞으로 남은 것이다.print("height: %10.2f"%(135.234)) >>>height: 135.23
- format 함수
{}안에 {1} {0} 과 같이 숫자를 넣어서 format()안의 몇 번째 변수를 넣을 것인지도 선택할 수 있다print('{} {}'.format('Hi', 'hello'))
- f-string
길이 지정, 정렬, 채우기 등 다양한 기능을 추가할 수도 있다.print(f"I'm {name}") print(f"{name}:20") #20칸으로 길이 지정 print(f"{name>20}") #20칸으로 길이지정 + 오른쪽 정렬 print(f"{name*>20}") #20칸으로 길이지정 + 오른쪽 정렬 + 나머지 빈 칸은 *로 채운다 print(f"{name*^20}") #20칸으로 길이지정 + 가운데 정렬 + 나머지 빈 칸은 *로 채운다
소수점 세 자리까지 출력num=123.4567890 print(f"{num:.3f}") >>>123.457