python之初识函数

一.函数的定义,函数名,函数体以及函数的调用

定义:函数就是对具有一定功能的代码块的封装

语法:
            def 函数名(形参列表):
                函数体(代码块, return)
#函数定义
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)

1.return的用法:一旦遇到return,结束整个函数

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

ret = ret_demo()
print(ret)

2,return 返回值:

 

return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回

 

程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return。

 

关于返回值:

1.如果函数什么都不写, 不写return, 没有返回值. 得到的是None
2.在函数中间或者末尾写return, 返回的是None
3.在函数中写return 值. 返回一个值.
4.在函数中可以返回多个返回值, return 值1, 值2, 值3...., 接收的是元组

二.函数的参数

#函数定义
def mylen(s1):
    """计算s1的长度"""
    length = 0
    for i in s1:
        length = length+1
    return length

#函数调用
str_len = mylen("hello world")
print('str_len : %s'%str_len)
函数执行的时候给函数传递信息.
*形参:函数声明的位置的变量
*实参:函数调用的时候给的具体的值
传参:把实参交给形参的过程


传递多个参数


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

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):
    #此时x=10,y=20
    the_max = x if x > y else y
    return the_max

ma = mymax(10,20)
print(ma)

2.按照关键字传值

def mymax(x,y):
    #此时x = 20,y = 10
    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):
    #此时x = 10,y = 20
    print(x,y)
    the_max = x if x > y else y
    return the_max

ma = mymax(10,y = 20)
print(ma)

 正确用法

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

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

    

  站在形参角度

    位置参数必须传值


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

#调用mymax不传递参数
ma = mymax()
print(ma)

#结果
TypeError: mymax() missing 2 required positional arguments: 'x' and 'y'

默认参数

    1.正常使用

      使用方法

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

    2.默认参数的定义

def stu_info(name,sex = "male"):
    """打印学生信息函数,由于班中大部分学生都是男生,
        所以设置默认参数sex的默认值为'male'
    """
    print(name,sex)


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

默认参数

 



posted @ 2018-08-08 20:59  卍风衍  阅读(160)  评论(0编辑  收藏  举报