비전공개미 개발노트
python 3일차 - 함수, 매개변수, 가변인자 본문
반응형
SMALL
In [5]:
'''
함수 function, method
# 입력값
parameter, 매개변수, 인수, 인자
#출력값
return 값
define의 약자(선언)
def 함수명(매개변수1, ...)
처리
return 값
'''
# function(함수)의 선언(정의)
def funcName() :
print('funcName() 호출')
funcName() # function의 호출
funcName() 호출
In [8]:
def funcOne(n, s) : # n, s 매개변수, 가(상)인수
for i in range(n) :
print(s)
# n의 값의 range를 돌리고 s값을 n의 값만큼 반복 출력한다
funcOne(10, 'hi good day') # 10, 'hi good day' argument == 실인수
hi good day
hi good day
hi good day
hi good day
hi good day
hi good day
hi good day
hi good day
hi good day
hi good day
In [14]:
def funcTwo(n) :
print('funcTwo() 호출 n =', n)
return 12
re = funcTwo(3)
print('return value =', re)
funcTwo() 호출 n = 3
return value = 12
In [19]:
## 값을 설정했을때 홀수인지 짝수인지를 판정하는 함수
num = 2
'''
if num % 2 == 0 :
print('짝수입니다')
else :
print('홀수입니다')
'''
def funcProc(num) :
if num % 2 == 0 :
print('짝수입니다')
else :
print('홀수입니다')
funcProc(num)
funcProc(3)
funcProc(6)
짝수입니다
홀수입니다
짝수입니다
In [26]:
def funcProcVal(num) :
re = False
if num % 2 == 0 :
re = True
else :
re = False
return re
re = funcProcVal(1)
if re == True :
print('짝수입니다')
else :
print('홀수입니다')
홀수입니다
In [31]:
# 함수에 숫자 입력받은 값을 넣어서 계산한다
inputval = int(input('숫자입력 > '))
re = funcProcVal(inputval)
if re == True :
print('짝수입니다')
else :
print('홀수입니다')
숫자입력 > 5
홀수입니다
In [56]:
list_a = [2, 5, 3, 8, 6]
def funcThree(alist) :
list_r = []
for i in alist :
list_r.append(i ** 2)
return list_r
list_a = funcThree(list_a)
list_a
Out[56]:
[4, 25, 9, 64, 36]
In [49]:
### 최대값 구해서 돌려주는 함수
# 내 풀이
def funcMax(max_num) :
return max(max_num)
list_max = funcMax(list_a)
list_max
Out[49]:
64
In [48]:
def funcMax2(max_num2) : ## max를 쓰지않고 // 구글링한 최대값 구하기 ㅋㅋ
for i in max_num2 :
n = len(max_num2)
max_v = max_num2[0]
for i in range(1, n):
if max_num2[i] > max_v:
max_v = max_num2[i]
return max_v
funcMax2(list_a)
Out[48]:
64
In [57]:
# 선생님 풀이
def maxFunc(alist):
maxval = 0
for n in alist:
if n > maxval:
maxval = n
return maxval
re = maxFunc(list_a)
print('최대값 :', re)
최대값 : 64
In [58]:
# 음수까지 커버할 수 있다
list_a = [-1, -23, -3, -12, -2]
def maxFunc(alist):
maxval = alist[0]
for n in alist:
if n > maxval:
maxval = n
return maxval
re = maxFunc(list_a)
print('최대값 :', re)
최대값 : -1
In [70]:
list_a = [3, 5, -1, 7, -2]
### 양수의 값만을 취득하는 list를 return해주는 함수
# 내 풀이
def intNum(alist):
intval = alist[0]
intvals = []
for i in alist:
if 0 < i >= intval:
intvals.append(i)
return intvals
re = intNum(list_a)
print(re)
[3, 5, 7]
In [71]:
# 선생님 풀이
def plusListVal(alist):
list_r = []
for n in alist:
if n > 0:
list_r.append(n)
return list_r
rlist = plusListVal(list_a)
print(rlist)
[3, 5, 7]
keyword 매개변수 == default 인수¶
In [83]:
def funcFour(s='hello', n=3):
for i in range(n):
print(i, s)
funcFour('루프', 5)
funcFour('loop')
funcFour() # 값을 안넣어주면 기본값에 적용되어 있는 값만큼 출력됨
# funcFour(7) # n에 넣은것처럼 보이지만 s에 적용되서 값이 출력되지 않음
funcFour(n=7) # n의 매개변수를 지정해주면 사용가능
funcFour(n=2, s='하이') # 매개변수 순서를 변경해서도 사용가능
0 루프
1 루프
2 루프
3 루프
4 루프
0 loop
1 loop
2 loop
0 hello
1 hello
2 hello
0 hello
1 hello
2 hello
3 hello
4 hello
5 hello
6 hello
0 하이
1 하이
In [87]:
import calculator
result = calculator.add(12, 34) # calculator module을 호출함
print(result)
46
In [89]:
import calculator as cal # module명의 별명을 선언하여 간략하게 사용할 수 있다
result = cal.mul(10, 10)
print(result)
100
In [91]:
from calculator import mul #calculator에 있는 mul함수만 불러온다
result = mul(5, 10)
print(result)
50
가변인자¶
In [95]:
# 인자의 값을 언제든지 변경가능 // 개발자용 // 데이터를 몇개 넣어줄지 모를때
def funcFive(*values):
for v in values:
print(v)
funcFive('안녕하세요')
funcFive('안녕', '하이')
funcFive('안녕', '하이', '건강하세요')
안녕하세요
안녕
하이
안녕
하이
건강하세요
In [101]:
# 일반인수의 값과 섞어서 사용 가능
def funcFive(*values, s='안녕'):
print(s)
for v in values:
print(v)
# print(s)
funcFive('hi', 'hello', 'world')
안녕
hi
hello
world
In [105]:
def funcFive(*values, n=123): ## 234가 일반인자가 아닌 가변인자로 출력됨 주의!!
print(n)
for v in values:
print(v)
# print(s)
funcFive('hi', 'hello', 'world', 234)
123
hi
hello
world
234
In [108]:
## 일반인수는 무조건 앞에서 써야한다
## 뒤에서 사용하면 가변인수와 겹쳐서 값이 제대로 안나옴
def funcFive(n=123, *values): # (일반인자, 가변인자) -> 일반인자를 맨 앞으로
print(n)
for v in values:
print(v)
# print(s)
funcFive(234, 'hi', 'hello', 'world')
234
hi
hello
world
In [111]:
### return value -> return값을 여러개 받을 수 있다(python언어 한정)
def div(num1, num2):
# 몫과 나머지
re = num1 / num2
ta = num1 % num2
return (re, ta)
r, t = div(7, 4)
print(r, t)
1.75 3
In [162]:
### 5개의 값(정수)을 입력받고 list에 저장
### 합계, 평균, 최대값, 최소값을 return해주는 함수를 구현하라.
# 내 풀이
# 입력
def inputFive(n):
w = 0
myNumber = []
while w < n :
num = int(input('숫자입력 > '))
myNumber.append(num)
w += 1
plusNum = sum(myNumber)
maxNum = max(myNumber)
minNum = min(myNumber)
avgNum = sum(myNumber) / n
return (plusNum, maxNum, minNum, avgNum)
# 함수호출
plusNum, maxNum, minNum, avgNum = inputFive(5)
print('합계 :', plusNum)
print('평균 :', avgNum)
print('최대값 :', maxNum)
print('최소값 :', minNum)
# 결과(합계, 평균, 최대값, 최소값) 출력
숫자입력 > 100
숫자입력 > 95
숫자입력 > 90
숫자입력 > 85
숫자입력 > 80
합계 : 450
평균 : 90.0
최대값 : 100
최소값 : 80
In [158]:
# 선생님 풀이
mylist = [] # 통계를 낼 리스트
# 입력
for i in range(5):
num = input(str(i + 1) + '번째 수 = ')
# 확인할경우(continue)
mylist.append(int(num))
mylist
# 함수호출
def process(my_list):
_sum = 0
_avg = 0.0
_max = my_list[0]
_min = my_list[0]
# 합계
for n in my_list:
_sum += n
# 평균
_avg = _sum / len(my_list)
# 최대값
for n in my_list:
if n > _max:
_max = n
# 최소값
for n in my_list:
if n < _min:
_min = n
return (_sum, _avg, _max, _min)
s, a, ma, mi = process(mylist)
# 결과(합계, 평균, 최대값, 최소값) 출력
print('합계 :', s)
print('평균 :', a)
print('최대값 :', ma)
print('최소값 :', mi)
1번째 수 = 100
2번째 수 = 90
3번째 수 = 80
4번째 수 = 70
5번째 수 = 80
합계 : 420
평균 : 84.0
최대값 : 100
최소값 : 70
python_language4.ipynb
0.02MB
반응형
LIST
'프로그래밍 > Python' 카테고리의 다른 글
| python 4일차 - math, random (0) | 2022.09.01 |
|---|---|
| python 3일차 - file write/read, try catch 예외처리 (0) | 2022.08.31 |
| python 3일차 - 람다(lambda)를 이용하여 줄여쓰기 (0) | 2022.08.31 |
| python 2일차 - if문, for문, while문, enumerate (0) | 2022.08.30 |
| python 1일차 - 변수 (0) | 2022.08.30 |
Comments