码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习:初识函数

时间:2017-07-30 14:58:06      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:python   strong   标准   功能   告诉   src   sed   优点   提高   

简单写函数的格式以及函数的意义

前言

  之前学习的都是怎么写代码,为了实现相同的功能要写好多遍代码,所以就有了函数,函数就相当于一个工具,函数名就相当于这种工具的名字,想要用的时候打一下名字就可以用了。

总结优点

  1.避免代码的复用。

  2.提高代码的可读性。

  3.修改方便

函数的定义与调用

定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"

   空格 为了将def关键字和函数名分开。

   函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能

   括号:是必须加的。

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

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

技术分享
def 函数名(参数1,参数2):
    ‘‘‘函数注释‘‘‘
    print(函数体)
    return返回值
标准函数格式

函数的返回值(return)

  函数调用不写返回值return的话,返回的就是None,为了得到想要的就要加上返回值。

return关键字

  return是关键字,作用有两个:1.结束函数的执行。2.返回要返回的值

返回值的两种:

  1.返回值为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
技术分享
def ret_demo():
    print(111)
    return
    print(222)

ret = ret_demo()
print(ret)
只写return
技术分享
def ret_demo():
    print(111)
    return None
    print(222)

ret = ret_demo()
print(ret)
return None

  返回值为None就是以上三种情况。

  2.返回值为一个值

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

#函数调用
str_len = mylen()
print(str_len : %s%str_len)
返回值为一个

  3.多个返回值

技术分享
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():
    return 1,[a,b],3,4

#返回多个值,用一个变量接收
ret2 = ret_demo2()
print(ret2)

#返回多个值,用多个变量接收
a,b,c,d = ret_demo2()
print(a,b,c,d)

#用多个值接收返回值:返回几个值,就用几个变量接收
a,b,c,d = ret_demo2()
print(a,b,c,d)
用多个变量接收

函数的参数

  告诉函数要计算数是什么就是传参。  

  传参的目的就是要在函数中用,用不同的数带入相同的公式。

参数有实参和形参

实参:在调用函数是传入的。

种类和定义顺序:

  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)
按关键字传参
技术分享
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)
关键字和位置传参混合

  

      正确用法

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

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

  站在形参角度

    位置参数必须传值

3.动态传参:*tup,**dict

优先级:位置——关键字——*tup——**dict

形参:在定义函数时接收的

种类和定义顺序:

  1.位置参数

  2.动态参数(*args):接收一个或多个位置参数,并组成元祖。如果没有值则为()。

  

  3.默认参数:将变化比较小的值设置为默认参数。

        ①设置默认参数,调用时可不传递该参数。

          ②定义为可变数据类型——陷阱,不可用

          ③定义为不可变数据类型

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


stu_info(alex)
stu_info(eva,female)
默认参数

  4.动态参数**kwargs:接收多个关键字参数,组成字典。如果没有则为{}。

技术分享
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)
*args接收位置参数
技术分享
def stu_info(**kwargs):
    print(kwargs)
    print(kwargs[name],kwargs[sex])

stu_info(name = alex,sex = male)
**kwargs关键字

 

总结

  就是函数内每个部分的作用以及用法,写法,剩余:略。

  

Python学习:初识函数

标签:python   strong   标准   功能   告诉   src   sed   优点   提高   

原文地址:http://www.cnblogs.com/gaodp/p/7258970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!