wtf

1.如何用函数:先定义函数,后调用

定义函数:定义过程,只检测语法,不执行代码

def 函数名(x,y`····)
   '''
   函数功能的描述信息
   x:描述
   y:描述
   return:返回值
   '''
    code 1
    code 2
    code 3
    ···
    return 返回值
函数名(x,y···)  #调用函数,此阶段才执行代码

2.定义函数的三种形式

空函数:当你只知道你需要实现某个功能,但不知道该如何用代码实现时,可以先定义一个空函数。

def func()
   pass

有参函数:定义时有参,意味着调用时也必须传入参数。

def sum_self(x,y):
    '''求和'''
    res=x+y
    print(res)
sum_self(1,2)  #3

无参函数:定义时无参,意味着调用时候也无需传入参数

def func():
    print('hello nick')
func()  #hello nick

3.函数的调用

为了使用函数的功能,我们得调用函数。

函数名() 即调用函数,会执行函数体代码,直到碰到return或者执行完函数体内所有代码结束。

函数运行完毕所有代码,如果函数体不写return,则会返回None

def foo():
    pass
print(foo()) #None

函数调用的三种形式

def max_self(x,y):
    if x>y: 
    else:
        return y
#1
max_self(1,2)
#2
res=max_self(1,2)*12
#3
max_self(max_self(2000,3000),4000)

4.函数的参数

1.形参和实参:

形参就是在函数定义阶段括号内的参数,称之为形式参数,简称形参,本质就是变量名。

def func(x,y):
    print(x)
    print(y)

实参:在函数调用阶段括号内传入的参数,称为实参,本质就是变量的值。

func(1,2)

2.位置参数:位置形参和位置实参,函数定义阶段按照从左到右的顺序依次定义的形参,称为位置形参;按照位置定义的形参,都必须被传值,多了少了都不行。在函数调用阶段,按照从左到右的顺序依次定义的实参,称为位置实参。按照位置为对应的形参依次传值。

3.关键字参数:

在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参。可以打破位置的限制,但仍能为指定的形参赋值。

func(y=2,x=1)
func(x,y=2)
func(y=2,x) #报错,默认参数必须在位置参数右边

4.默认形参:在定义阶段,就已经被赋值了;默认参数的值通常是不可变类型

def register(name,hobby,hobby_list=[]):
     hobby_list.append(hobby)
     print(f'{name} prefer {hobby}')
     print(f'{name} prefer {hobby_list}')
register('nick','read')
register('tank','zuipao')
register('jasion','piao')
运行结果:
nick prefer read
nick prefer ['read']
tank prefer zuipao
tank prefer ['read', 'zuipao']
jasion prefer piao
jasion prefer ['read', 'zuipao', 'piao']

def register(name,hobby,hobby_list=None):
    if hobby_list is None:
        hobby_list=[]
    hobby_list.append(hobby)
    print(f"{name} prefer {hobby}")
    print(f"{name} prefer {hobby_list}")
register('nick','read')
register('tank','zuipao')
register('jasion','piao')
运行结果:
nick prefer read
nick prefer ['read']
tank prefer zuipao
tank prefer ['zuipao']
jasion prefer piao
jasion prefer ['piao']


位置形参必须放在默认形参的左边

5.函数的返回值

return返回一个返回值,如果没有返回值,返回None

return会终止函数,不运行下面的代码,假设有多个return的时候,运行到第一个就结束。

return通过逗号隔开,可以返回多个值,返回值以元组的形式接收。

def guess():
    x=20
    y=30
    if x>y:
        return x
    else:
        return y
num=guess()
print('num:',num)
z=2
print(z*num)

posted on 2019-09-19 20:12  wtfss  阅读(129)  评论(0)    收藏  举报