파이썬 기본 (6) def : 나만의 함수 만들기
- 목차
반응형
자연수를 입력받아 그보다 작은 모든 소수와 그 갯수를 출력하는 프로그램
code
def chkprime(num):
for i in range(int(num/2))[1:]:
if num % (i+1) == 0 :
return 0
return 1
while True :
n = input('1보다 큰 자연수를 입력하세요> ')
if n == 'done' :
break
try :
n = int(n)
primelist = []
for i in range(n)[1:]:
if chkprime(i+1) == 1 :
primelist.append(i+1)
print(str(len(primelist))+'개 : ')
print(primelist)
except :
print('잘못된 입력입니다.')
continue
input/output example
1보다 큰 자연수를 입력하세요> a 잘못된 입력입니다. 1보다 큰 자연수를 입력하세요> 2 1개 : [2] 1보다 큰 자연수를 입력하세요> 50 15개 : [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47] 1보다 큰 자연수를 입력하세요> 100 25개 : [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 1보다 큰 자연수를 입력하세요> done |
복습포인트1. def 함수는 이렇게 생겼다.
def function_name(variance):
...
return ...
함수 명을 정하고 그 안에 들어갈 변수를 입력하고 return 뒤에 안에서 구한 값을 입력하면 그 함수에 그 값이 입력되는 형식이다. 변수는 몇 개가 되던 상관없다.
주의할 점은 def 함수는 항상 일반 코드보다 위에 적혀있어야 한다. (호출되기 전에 정의가 되어 있어야 한다.)
예를 들어 n! (factorial)을 계산하고 싶다면
def fact(n):
fact = 1
for i in range(n):
fact = fact * (i+1)
return fact
fact라는 함수에 대해 선언을 한 뒤
>>> fact(5)
120 |
>>> fact(10)
3628800 |
값을 입력해야한다.
복습포인트2. 자잘한 것들
a % b 를 하면 a를 b로 나누었을 때 나머지를 뜻한다.
몫을 구하고 싶다면 (a-a%b)/b 를 하면 된다. 하지만 더 간단하게 int(a/b)를 하면 된다.
둘을 같이 구하고 싶다면 divmod(a,b)를 하면 된다.
L을 list라고 했을 때 L[:] 은 L 그 자체와 같다. 즉, : 의 어느 한쪽이 비어있다면 처음부터(또는 끝까지)라는 뜻이다.
728x90
반응형
'파이썬 Python' 카테고리의 다른 글
클립보드 복사 후 번역하는 프로그램 (exe파일) (4) | 2020.03.12 |
---|---|
클립보드 복사 후 번역하는 프로그램 (Python) (0) | 2020.03.03 |
파이썬 기본 (5) while 반복문 (0) | 2020.01.04 |
파이썬 기본 (4) for 반복문 (0) | 2020.01.04 |
파이썬 기본 (3) list (0) | 2020.01.03 |