본문 바로가기

부스트캠프 AI Tech 3기/이론 : U-stage

[Day2] Python 2-2. Function and Console I/O : 함수, Console in / out

함수

어떤 일을 수행하는 코드 덩어리

장점 : 코드 재사용을 할 수 있고, 분리 시킬 수 있다

 

캡슐화

코드를 나누어 놓는 것 

 

구조

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')라는 튜플을 %뒤에 붙혀주고 튜플에 출력을 원하는 값을 입력하면 된다.

    %전체문자열길이.소수점자리수
    print("height: %10.2f"%(135.234))
    >>>height:     135.23
    height 뒤의 공백은 float가 총 10칸이어서 공백이 앞으로 남은 것이다.

  • format 함수
    print('{} {}'.format('Hi', 'hello'))
    {}안에 {1} {0} 과 같이 숫자를 넣어서 format()안의 몇 번째 변수를 넣을 것인지도 선택할 수 있다
  • 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
    소수점 세 자리까지 출력