Day_1 05. Function
작성일
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
- %string
- format 함수
- 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
댓글남기기