함수를 정의하고 내용을 입력하지 않으면 에러가 난다.
돌아가는지 확인해보고싶으면 pass를 쓰면 넘어간다.
(함수 내용이 없는 경우 에러)
(pass를 적으면 에러없이 넘어간다.)
* 파이썬에서의 함수
1. 입력된 문자열이 실수로 이루어져있는지를 판단하는 함수
def isfloat( data ):
입력 : 임의의 문자열
출력 : True of False
- 실수로 변경가능한 문자열이라면 True
- 그렇지 않으면 False
2. 입력된 문자열이 음수로 이루어져있는지를 판단하는 함수
def isneg( data ):
입력 : 임의의 문자열
출력 : True of False
- 음수로 변경가능한 문자열이라면 True
- 그렇지 않으면 False
(함수 코드)
(결과)
*라이브러리 : 이미 만들어져있는 함수이다.
* 파이썬 모듈
- 파이썬 코드로 이루어진 파이썬 파일
- 사용하고싶은 함수들을 하나의 파일에 만들어 두는 것이다.
그 후 사용하고 싶으면 import한다.
- 어디서나 import 하고 싶으면
-> 파이썬3의 라이브러리 파일들의 경로가 따로 있다. 이 곳에 넣어둬야한다.
(내가 만든 모듈을 라이브러리에 추가한 모습)
import 방법
import 파일
from 파일 import * -> 이렇게 적으면 모듈 이름을 안적어도 된다.
from 파일 import 특정함수 -> 특정 함수만 import할 수 있다.
왠만하면 import 파일 형식으로 하는게 좋다.
왜냐하면 두세번째로 하다가 함수 이름이 겹칠 가능성이 있을 수 있어서 그렇다.
두세번째는 편하기는 하지만 충동할 수 있다는걸 주의하고 해야한다.
보통 모듈파일에는 실행코드는 적지 않는다.
실행코드가 있다면 import 되는 순간 파일이 실행된다.
만약 모듈을 만들고
이 모듈이 잘 돌아가는지 테스트코드를 넣어볼 수 있다.
만약 실행코드를 안삭제하고 import하고 실행시키면
import 될때 모듈파일의 테스트코드가 실행된다.
만약 지우지않고 쓰고싶다면
if __name_- == "__main__":
main()
이코드를 넣으면 이 해당파일이 단독으로 실행되면 실행되지만
import되는 경우에는 코드가 실행되지 않는다.
-> 단독으로 실행하는 경우 실행코드들이 실행되고
import되는 경우에는 실행되지 않는다.
(모듈 파일에 테스트코드를 추가한 모습)
(모듈을 import 한 순간 테스트코드가 실행되는 모습)
(__name__ 을 모듈에 추가해서 실행시 테스트코드가 실행되지 않는 모습)
* 프로그램 작성
1) 안전한 제곱근을 구하는 함수
math 모듈에 sqrt() 함수로 제곱근을 구할 수 있다.
- 숫자가 아니거나 음수가 입력되면 에러가된다.
알고리즘
1. 사용자로부터 값을 입력받는다.
- 입력값의 형태는 실수여야 한다.
2. safe_sqrt 함수 인자로 입력값 전달
3. 입력된 값이 허용범위의 값인지 판별 허용범위라면 실수로 변환 후에
sqrt 함수를 이용해서 제곱근을 구한 후 출력
4. 허용된 입력값의 범위가 아니라면 다시 입력받을 수 있도록 한다.
5. 3번으로 돌아간다.
(만들어본 코드(좌), 실행화면(우))
2) 대출 상환금 계산 프로그램
- 입력 :
대출 원금
대출 기간
대출 이율
- 출력 :
연상환금
월상환금
총상환금
- 연상환금 계산 공식
(1 + 대출 이율)^대출 기간 + 대출 원금 + 대출 이율
연상환금 = ---------------------------------------------------------------
(1 + 대출 이율)^대출기간 - 1
1) 대출 원금과 대출 기간, 대출 이율을 각각 입력 받는다.
- 대출원금과 대출 기간은 자연수의 입력만 허용하며 대출 이율은 실수 입력만 허용할 수 있도록 한다.
2) 입력값에 맞춰서 연상환금을 계산한다.
3) 연상환금과 월상환금, 총상환금을 출력
4) 프로그램을 계속 진행할 것인지를 입력받는다.
a-1) "yes"를 입력한 경우 1)번으로 돌아가서
대출 원금과 대출 기간, 대출 이율을 새로 입력
b-2) no 를 입력한 경우 프로그램 종료
4-3) yes no 이외의 값이면 새로 입력을 받는다.
* 소수점이하를 버리고 싶으면 int 형으로 형변환 하면한다.
* 반올림 하고 싶으면 round 함수를 이용하여 형변환한다.
(소수점 그대로 출력)
(소수점까지 출력되는 모습)
(작성해본 코드, 결과를 int형으로 형변환 한 모습 : 소수점 자리 버리는 모습)
(소수점 자리 버림 모습)
'Programing > Python' 카테고리의 다른 글
Python - 리스트, 튜플, 문자열, 함수, 프로시져, 메소드 (0) | 2016.12.13 |
---|---|
Python - 비교연산자, 흐름제어, 온도 변환 프로그램 (0) | 2016.12.10 |
Python - 연산자, 문자열, 변수, 지정문 (0) | 2016.12.09 |