zoukankan      html  css  js  c++  java
  • python 函数

    1初识函数

    一、为什么要使用函数?

       1.避免代码重用

       2.提高代码的可读性

    二、函数的定义与调用

    1. def  函数名(参数1,参数2)

        ''' 函数注释'''

        print('函数体')

        return 返回值

      定义:def关键字开头,空格之后接函数名和圆括号,最后还要加一个冒号。

         def是固定的,不能变。

      函数名:函数名是包含字母,数字,下划线的任意组合,但是不能以数字开头。虽然函数名可以随便取名,但是一般尽量定义成可以表示函数功能的。

    2.函数的调用

         返回值=函数名(参数1,参数2)#记得函数名后面加括号

    下面我们先来定义一个求计算字符串长度的函数。假如我们的len()函数现在不能用了,那么我们就需要定义一个函数,求字符串的长度。如果让我们一次一次的去写相同的代码,会显得很麻烦。这时候我们的函数就上场了。

      1 1.给定一个字符串,调用函数,当他没有返回值的时候返回Null
      2 def  length():
      3         s='hello world'
      4         length=0
      5         for i in s:
      6                 length+=1
      7         print(length)
      8 print(length())
      9 
     10 
     11 2.return 必须放在函数里,当函数有返回值的时候,必须用变量接收才会有效果
     12 def  length():
     13         s='hello world'
     14         length=0
     15         for i in s:
     16                 length+=1
     17         return  length
     18 print(length())
     19 
     20 
    计算字符串的长度 View Code

    三、函数的返回值

    1.return的作用:结束一个函数的执行

    2.首先返回值可以是任意的数据类型。

    3.函数可以有返回值:如果有返回值,必须要用变量接收才有效果

       也可以没有返回值:

      没有返回值的时候分三种情况:

        1.当不写return的时候,函数的返回值为None

        2.当只写一个return的时候,函数的返回值为None

        3.return None的时候,函数的返回值为None(几乎不用)

    4.return返回一个值(一个变量)

    5.return返回多个值(多个变量):多个值之间用逗号隔开,以元组的形式返回。

                    接收:可以用一个变量接收,也可以用多个变量接收,返回几个就用几个变量去接收

      1 def  func():
      2         a=111
      3         b=[1,2,3]
      4         c={'a':15,'b':6}
      5        #return a#返回一个值
      6        #return a,b,c#返回多个值,变量之间按逗号隔开,以元组的形式返回
      7 print(func())
      8 
      9 函数有一个或多个返回值
    函数有一个或多个返回值 View Code
      1 1.不写return时返回None
      2 def  func():
      3     a=111
      4     b=[1,2,3]
      5 
      6 ret=func()
      7 print(ret)
      8 
      9 
     10 2.只写一个return时返回None
     11 def  func():
     12     a=111
     13     b=[1,2,3]
     14     return
     15 ret=func()
     16 print(ret)
     17 
     18 3.return None的时候返回None
     19 def  func():
     20     a=111
     21     b=[1,2,3]
     22     return  None
     23 ret=func()
     24 print(ret)
     25 
     26 
    函数没有返回值的函数 View Code
      1 def func4():
      2      print (1111111)
      3      return#结束一个函数的执行
      4      print (1242451)
      5  func4()
    return的作用 View Code

      1 方法一
      2 def func():
      3     list=['hello','egon',11,22]
      4     return list[-1]
      5 
      6 print(func())
      7 
      8 方法二
      9 def func():
     10     list=['hello','egon',11,22]
     11     return list
     12 
     13 m,n,k,g=func()#
     14 print(g)
     15 
     16 
    定义一个列表,返回列表的最后一个值 View Code

    四、函数的参数

      1 # def fun(s):#参数接受:形式参数,简称形参
      2 #     '''
      3 #         计算字符串长度的函数---------函数的功能
      4 #         参数s:接受要计算的字符串--------参数的信息
      5 #         return:要计算字符串长度 ---------返回值得信息
      6 #     '''
      7 #     length=0
      8 #     for i in s:
      9 #         length+=1
     10 #     return length
     11 #
     12 # ret=fun('helloword')#参数传入:实际参数,简称实参
     13 # print(ret)
    1.实参和形参
    形参:是函数定义时候定义的参数
    实参:函数调用的时候传进来的参数
    2.传递多个参数
    可以传递多个参数,多个参数之间用逗号隔开。
    站在传参的角度上,调用函数时传参数有两种方式:
      1.按照位置传参数
      2.按照关键字传参数
    用法:1.位置参数必须在关键字参数的前面
       2.对于一个参数只能赋值一次
      1 def my_max(a,b):#位置参数:按顺序定义参数
      2     if a>b:
      3         return a
      4     else:
      5         return b
      6 # 站在传参的角度上
      7 print(my_max(20,30))
      8 print(my_max(10,20))# 1.按照位置传参
      9 print(my_max(b=50,a=30))# 2.按照关键字传参
     10 print(my_max(10,b=30))#3.位置和关键字传参混搭
     11 
     12 
    传递多个参数,实现比大小的功能 View Code

    3.默认参数

    用法:为什么要用默认参数?将变化比较小的值设置成默认参数(比如一个班的男生多,女生就几个,就可以设置个默认值参数)

    定义:默认参数可以不传,不传的时候用的就是默认值,如果传会覆盖默认值。

       默认的值是在定义函数的时候就已经确定了的

      1 def stu_info(name,sex = "male"):
      2     """打印学生信息函数,由于班中大部分学生都是男生,
      3         所以设置默认参数sex的默认值为'male'
      4     """
      5     print(name,sex)
      6 stu_info('alex')
      7 stu_info('海燕','female')
      8 
      9 默认参数
    默认参数 View Code

    默认参数缺陷:默认参数是一个可变数据类型

      1 def  default_param(a,l=[]):
      2         l.append(a)
      3         print(l)
      4 
      5 default_param('alex')
      6 default_param('rgon')
      7 
      8 输出:['alex']
      9         ['alex', 'egon']
    View Code

    4.动态参数

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

    按关键字传值接受多个关键字参数,由kwargs接收,保存成一个典的形式

      1 def fun(a,b,*args):
      2 2     sum=a+b
      3 3     for i in args:
      4 4            sum+=i
      5 5     return sum
      6 6 print(fun(1,5,6,4))#输出1+5+6+4的和
    *args作用 View Code
      1 def fun(a,b,**kwargs):
      2     print(a,b,kwargs)
      3 
      4 # 按照关键字传参数
      5 fun(a = 10,b = 20,cccc= 30,dddd = 50)#输出10 20 {'cccc': 30, 'dddd': 50}
      6 
      7 
      8 
      9 
     10 
     11 def f(a,b,*args,defult=6,**kwargs):
     12     #位置参数,*args, 默认参数,**kwargs
     13     # print(a,b,args,defult,kwargs)
     14     return a,b,args,defult,kwargs
     15 
     16 #传参数的时候:必须先按照位置传参数,再按照关键字传参数
     17 print(f(1,2,7,8,ccc=10,der=5))
     18 
     19 
    *kwargs的应用 View Code

    五、小结

    1.定义:def 关键词开头,空格之后接函数名称和圆括号()。
    2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。
        参数可以定义多个,也可以不定义。
        参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。
        如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序
    3.注释:函数的第一行语句应该添加注释。
    4.函数体:函数内容以冒号起始,并且缩进。
    5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None
    
    def 函数名(参数1,参数2,*args,默认参数,**kwargs):
            """注释:函数功能和参数说明"""
            函数体
            ……
            return 返回值

     

     

     

     

    归类 :  python相关

  • 相关阅读:
    今天面试一些程序员(新,老)手的体会
    UVA 10635 Prince and Princess
    poj 2240 Arbitrage
    poj 2253 Frogger
    poj 2485 Highways
    UVA 11258 String Partition
    UVA 11151 Longest Palindrome
    poj 1125 Stockbroker Grapevine
    poj 1789 Truck History
    poj 3259 Wormholes
  • 原文地址:https://www.cnblogs.com/lz1996/p/11570986.html
Copyright © 2011-2022 走看看