함수는 파이썬 프로그램 자체에서 제공하지만, 사용자가 직접 만들어서 사용하기도 함.
함수(function)는 특정 작업을 수행하는 명령어들의 모음에 이름을 붙인 것.
print()
input()
abs()
...
함수를 수행시키려면 함수를 호출(call)하면 된다.
사용자(프로그래머)가 함수의 정의부를 만들어 사용하는 함수

함수를 작성한다는 의미: 이 함수가 어떻게 동작하는 지를 정의하는 부분

함수를 호출함으로써 정의된 부분을 실행
반환값(return value)은 함수가 호출한 곳으로 반환하는 작업의 결과값이다.
함수를 호출한 곳으로 값을 반환
return 명령어 사용return 반환할 값(변수)시작부터 끝까지의 합을 구하는 프로그램
def get_sum(start, end):
sum = 0
for i in range(start, end+1):
sum += i
return sum
value = get_sum(1,10)
print(value)
## 55

파이썬 인터프리터는 함수가 정의되면 함수 안의 문장들은 즉시 실행하지 않고 위치만 기억한다.
파이썬에서는 함수의 매개변수가 기본값을 가질 수 있다. 이것을 디폴트 인수(difault argument)라고 한다.
def greet(name, msg="별일없죠?"):
print("안녕 ",name + ',' + msg)
greet("영희")
## 안녕 영희, 별일없죠?
def print(........, end="\n",.........): ## end="\n"이 디폴트 값으로 저장되어 있었던 것이다.
print("Hello", end="") ## end 값을 ""로 바꿔주니까 줄이 바뀌지 않고 출력되는 것이다.
매개변수의 ㄱ숫자를 정해 놓지 않는 방법


프로그램 전 영역에서 사용 가능한 변수 (지금까지 사용한 변수)
함수내에서만 사용하는 변수 (매개변수 포함)


무명 함수는 이름은 없고 몸체만 있는 함수이다. 파이썬에서 무명 함수는 lambda 키워드로 만들어진다.


많이 사용하는 함수를 만들어 놓고, 프로그램에서 해당 함수를 사용할 때 함수를 import하여 사용하면 편리함
def abcd(num1, num2):
print("function test", num1, num2)
print("start")
abcd(5,20)
abcd(10,100)
abcd(12,300)
abcd("Hello","Hi")
print("end")
#####################################################
def add(num1, num2):
result = num1 + num2
return result
value = add(5,6)
print(value)
value = add(956,272)
print(value)
print(add(10,20))
#######################################################
def get_sum(start, end):
hap = 0
for i in range(start, end+1):
hap += i
return hap
v = get_sum(1,100)
print("1~100까지 합=",v)
v = get_sum(1,1000)
print("1~1000까지 합=",v)
print("56~990까지 합=",get_sum(56,990))
########################################################
def abcd(x,y,z):
result = x+y+z
print("%d+%d+%d=%d"%(x,y,z,result))
return result
abcd(5,6,7)
def abcd(x,y,z=1):
result = x+y+z
print("%d+%d+%d=%d"%(x,y,z,result))
return result
abcd(5,6) ## z값은 default로 1로 계산된다. -> 5+6+1=12
def abcd(x=1,y=1,z=1):
result = x+y+z
print("%d+%d+%d=%d"%(x,y,z,result))
return result
abcd() ## 1+1+1=3
def efg(x=1,y=1,z=1):
result=x*y*z
print("%d*%d*%d=%d"%(x,y,z,result))
efg(5,6,7)
efg(z=10,x=2,y=3)
efg(y=5)
##########################################################
def abcd(*num):
print(num)
for x in num:
print(x, end=" ")
print()
abcd(10)
abcd(10,20)
#########################################################
def abcd(num):
a=num*num
return a
num=int(input("number. "))
print(abcd(num))
print(a) # -> a는 지역변수이기 때문에 오류 뜬다.
##########################################################
def sub():
global s
s = "I like banana" # 지역 변수
print(s)
s = "I like apple" # 전역 변수
print(s)
sub()
print(s)
############################################################
def a():
global s # 함수 a는 s변수를 전역변수
s = "I like banana"
print(s)
a()
s = "I like apple"
a()
##############################################
def a():
print("이함수는 a함수입니다")
def b():
print("이함수는 b함수입니다")
def c():
print("이함수는 c함수입니다")
import function
print("모듈 테스트")
function.a()
function.b()
function.c()
def get_Max(x, y):
if x > y:
return x
else:
return y
num1 = float(input("첫번째 실수. "))
num2 = float(input("두번째 실수. "))
print(num1, "와",num2,"중 더 큰 수는",get_Max(num1,num2),"입니다.")
def is_prime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
a = int(input("Number. "))
if is_prime(a):
print("%d is prime."%a)
else:
print("%d is not prime."%a)
def is_prime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
def get_prime_number(a):
count = 0
num = 2
while count<a:
if is_prime(num):
print(num,end=" ")
count+=1
num+=1
print()
n = int(input("How many primes? "))
get_prime_number(n)
def getAddAverage(n):
global total
total+=n
avg = total/count
return avg
total,count = 0,0
while True:
n = int(input("정수 입력(0은 종료). "))
if n==0:
break
count+=1
print("평균 =",getAddAverage(n))
print("총합 =",total,"평균 =",getAddAverage(n))