初识函数

函数的定义

#函数的定义
def meylen():
    '''计算s1的长度'''
    s1 = 'hello world'
    length = 0
    for i in s1:
        length = length + 1
    print(length)
#函数的调用
mylen()

总结一

定义:def关键字开头,空格之后接函数名称和括号(),最后有一个‘:’

   def是固定的,不能变,必须是连续的def三个字母,不能分开

   空格 为了将def关键字和函数名分开,必须空4格

   函数名:函数名只能包含字符串,下划线和数字且不能以数字开头。

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面的第一行,增加函数的可读性

调用:就是函数名()要记得加上括号

函数的返回值

return关键字的作用

  return是一个关键字,这个词翻译过来就是‘返回’

没有返回值

  不写return的情况下,会默认返回一个none

def mylen():
    """计算s1的长度"""
    s1 = "hello world"
    length = 0
    for i in s1:
        length = length+1
    print(length)

#函数调用
str_len = mylen()
#因为没有返回值,此时的str_len为None
print('str_len : %s'%str_len)

  只写return,后面不写其他的内容,也会返回none

def ret_demo():
    print(111)
    return
    print(222)

ret = ret_demo()
print(ret)

return none:和上面的两种情况一样

返回一个值:

def mylen():
    s1 = 'hello word'
    length = 0
    for i in s1:
        length = length + 1
    return length

str_len = mylen()
print('str_len:%s'%str_len)

注意:return和返回值之间要有空格,可以返回任意数据类型的值

返回多个值

  可以返回任意多个、任意数据类型的值

def ret_demo1():
    return 1,2,3,4

def ret_demo2():
    return 1,['a','b'],3,4

ret1 = ret_demo1()
print(ret1)
ret2 = ret_demo2()
print(ret2)

返回的多个值会被组织称元组被返回,也可以用多个值来接收

def ret_demo2():
    return1,['a','b'],3,4

a,b,c,d =  ret_demo2()
print(a,b,c,d)

函数的参数

def mylen(s1):
    length = 0 
    for i in s1:
        length = length + 1
     retrun length
str_len = mylen('hello world')
print('str_len:%s'%str_len)

实参和形参

参数还有分别:

我们调用函数时传递的参数叫做实际参数,简称实参。定义函数时的s1,只是一个变量的名字,被称为形式参数,简称形参

传递多个参数

参数可以传递多个,多个参数之间用逗号分割

def mymax(x,y):
    the_max = x if x>y else y
    return the_max
ma = mymax(10,20)
print(ma)

位置参数

  站在实参的角度

  1.按照位置传值

def mymax(x,y):
    the_max = x if x>y else y
    return the_max
ma = mymax(10,20)
print(ma)

  2.按照关键字传值

def mymax(x,y):
    print(x,y)
    the_max = x if x>y else y
    return the_max
ma = mymax(y=10,x=20)
print(ma)

  3.位置关键字形式混用

def mymax(x,y):
    print(x,y)
    the_max = x if x>y else y
    return the_max
ma = mymax(10,y=20)
print(ma)

  正确用法

  问题一:位置参数必须在关键字参数的前面

  问题二:对于一个形参只能赋值一次

站在形参的角度

  位置参数必须传值

默认参数

  1.正常使用

    使用方法

    为什么要有默认参数:将变化比较小的值设置成默认参数

  2.默认参数的定义

def stu_info(name,sex='male'):
    print(name,sex)

stu_info('alex')
stu_info('eva','female')

  3.参数陷阱:默认参数是一个可变数据类型

def defult_param(a,l=[]):
    l.append(a)    
    print(l)

defult_param('alex')
defult_param('egon')

动态参数

  按位置传值多余的参数都有args统一接受,保存成一个元组的形式

def  mysum(*args):
    the_sum = 0
    for i in args:
        the_sum+=i
    return the_sum

the_sum = mysum(1,2,3,4)
print(the_sum)
def stu_info(**kwargs):
    print(kwargs)
    print(kwargs['name],kwargs['sex'])

stu_info(name = 'alex',sex = 'male')
原文地址:https://www.cnblogs.com/KrisYzy/p/11157657.html