Hue Kim 2016. 3. 30. 21:28



def는 define 의 약자로 생각되는데 c/c++의 영향이 아닐까 추측해봅니다.


function1.py


실행가능한 코드

 def say_hello(): # write Fibonacci series up to n

    #   block belonging to the function
print('hello world')

say_hello() # call the function
say_hello() # call the function again


결과

hello world
hello world




실행가능한 코드

def print_max(a, b):
if a > b:
print(a, 'is maximum')
elif a == b:
print(a, 'is equal to', b)
else:
print(b, 'is maximum')
# directly pass literal values

print_max(3, 4)
x = 5
y = 7
# pass variables as arguments
print_max(x, y)





실행가능한 코드

 x = 50


def func(x):
print( 'x is', x)
x = 2
print( 'Changed local x to', x)

func(x)
print( 'x is still', x)
    





실행가능한 코드

x = 50

def func():
global x
print('x is', x)
x = 2
print ('Changed global x to', x)

func()
print('Value of x is', x)
    


x가 글로벌 인수



실행가능한 코드

 def say(message, times=1):

    print(message * times)

say('Hello')
say('World', 5)


파이썬의 약간 특이한점, 매개변수가 갯수가 맞지 않아도 호출이 됨.

times = 1 로 기본인수값 지정 해주면서 


say('Hello')
say('World', 5)

둘다 실행가능.


어쩌면 이번 챕터에서 제일 어려운 부분

실행가능한 코드

 def func(a, b=5, c=10):

    print('a is', a, 'and b is', b, 'and c is', c)

func(3, 7)
func(25, c=24)
func(c=50, a=100)


첫 번째 호출 func(3, 7) 에서, 매개 변수 a 는 값 3 , 매개 변수 b 는 7 을 넘겨 받으며,

c 에는 기본 인수값 10 이 주어집니다.

두 번째 호출 func(25, c=24) 에서는, 첫 번째 인수인 25가 변수 a 에 넘겨집니다. 그리고 매

개 변수 c 는 키워드 인수를 통해 값 24 가 지정되며, 변수 b 에는 기본값 5 가 주어집니다.

실행가능한 코드

 def total(initial=5, *numbers, **keywords):

    count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count

print(total(10, 1, 2, 3, vegetables=50, fruits=100))


실행가능한 코드

def maximum(x, y):

    if x > y:
return x
elif x == y:
return 'The numbers are equal'
else:
return y

print(maximum(4, 4))


모든 함수는 리턴이 있을수도 없을 수도 있다.


파이썬은 리턴타입을 함수def시에 지정하지 않기때문에 리턴 타입에 대한 제약이 없음.


실행가능한 코드

 def print_max(x, y):

    '''Prints the maximum of two numbers.
The two values must be integers.'''
# convert to integers, if possible
x = int(x)
y = int(y)
if x > y:
print(x, 'is maximum')
else:
print(y, 'is maximum')


print_max(3, 5)
print(print_max.__doc__)
    

주석을 출력해주는 아주 좋은 기본 함수.