Day_1 05. Function

작성일

2 분 소요

Function and Console I/O

1. function

1.1 함수의 개요

  • 어떠 일을 수행하는 코드의 덩어리
  • 반복적인 수행을 1회만 작성후 호출
  • 코드를 논리적인 단위로 분리
  • 캡슐화: 인터페이스만 알면 타인의 코드 사용

1.2 함수 선언 문법

  • 함수 이름, parameter, indentation, return value(optional)
  • 함수의 코드 블락을 구분하기 위해 들여쓰기를 한다.

1.3 함수 수행 순서

  • 함수 부분을 제외한 메인프로그램부터 시작
  • 함수 호출시 함수 부분을 수행 후 되돌아옴
  • 수학에서의 함수와 프로그래밍에서의 함수는 매우 유사하다.

1.4 parameter vs argument

  • parameter : 함수의 입력 값 인터페이스
  • argument : 실제 Parameter에 대입된 값

1.5 함수 형태

  • parameter 유무, 반환 값(return value) 유무에 따라 함수의 형태가 다름
  • print를 한다고 해서 return 되는 것이 아니다.
  • 화면에 찍힌다고 해도 반환값이 항상 있는 것이 아니다.

2. Console in I/O

2.1 console i/o - input()

  • 어떻게 프로그램과 데이터를 주고 받을 것인가?

  • input() 함수는 콘솔창에서 문자열을 입력 받는 함수
  • 문자열로만 받을 수 있음

2.2 console i/o - print()

  • 타입이 다른 출력값들을 연결해서 print 하고 싶을 때, 콤마(,) 사용할 경우 print 문이 연결됨

  • 숫자 입력 받기
  • float(input(100))

2.3 print formatting

  1. %string
  2. format 함수
  3. fstring
  • old-school formatting
    >>> print('%s vs %s' % ('one', 'two'))
    one vs two
    >>> print('{} vs {}'.format('one', 'two'))
    one vs two
    >>> print('%d vs %d' % (1, 2))
    1 vs 2
    >>> print('{} vs {}'.format(1, 2))
    1 vs 2
    
  • %-format
    • “%datatype” %(variable) 형태로 출력 양식을 표현
>>> print("I eat %d apples." % 3)
>>> print("I eat %s apples." % "five")
I eat 3 apples.
I eat five apples.

>>> number = 3
>>> day = "there"
>>> print("I ate %d apples. I was sick for %s days." % (number, day))
>>> print("product: %s, Price per unit: %f." % ("Apple", 5.243))
I ate 3 apples. I was sick for there days.
product: Apple, Price per unit: 5.243000.

>>> print("product: %10s, Price per unit: %10.1f." % ("Apple", 5.243))
product:      Apple, Price per unit:        5.2.
  • str.format() 함수
    • ”~~~~ {datatype} ~~~~ “.format(argument)
>>> age = 31
>>> name = "Heerak Son"
>>> print("I'm {0} years old.".format(age))
>>> print("My name is {0} and {1} years old.".format(name, age))
>>> print("product: {0}, Price per nit: {1:.3f}.".format("Pencile", 1.354))
I'm 31 years old.
My name is Heerak Son and 31 years old.
product: Pencile, Price per nit: 1.354.
  • padding
    • 여유공간을 지정하여 글자배열 + 소수점 자릿수를 맞출 수 있다.
    • {0:4s} : 5칸 비우기
    • {0:>5s} : 5칸 비우면서 오른쪽으로 정렬
>>> print("Product: %10s, Price per unit: %10.3f." % ("Pencile", 1.354))
>>> print("Product: {0:<10s}, Price per unit: {1:10.3f}.".format("Pencile", 1.354))
Product:    Pencile, Price per unit:      1.354.
Product: Pencile   , Price per unit:      1.354.
  • f-string
    • 문자열, 숫자 상관없이 동일한 형태로 사용 가능
    • python 3.6 이후로 많이 사용된다.
>>>name = "Heerak"
>>>age = 31
>>> print(f"Hello, {name}, You are {age}.")
Hello, Heerak, You are 31.
>>> print(f'{name:20}')
Heerak              
>>> print(f'{name:>20}')
              Heerak
>>> print(f'{name:*<20}')
Heerak**************
>>> print(f'{name:*>20}')
**************Heerak
>>> print(f'{name:*^20}')
*******Heerak*******
 
>>> number = 3.141592653589793
>>> print(f'{number:.2f}')
3.14

댓글남기기