zoukankan      html  css  js  c++  java
  • 循序渐进Python3(三) -- 0 -- 初识函数

    函数

      如果我们要计算一个圆的面积,就需要知道它的半径,然后根据公式S=3.14*r*r算出它的面积,如果我们要算100个圆的面积,则每次我们都需要写公式去计算,是不是很麻烦,但是有了函数的话,我们就不再每次写S=3.14 *r*r, 而是把计算圆面积的功能写到一个函数里比如说s=areacircle(r),然后每次求面积的时候,只要把半径传递给函数就可以实现计算圆面积,这样我 们写代码就简单多了。这就是函数的功能。在编程中,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,能提高应用的模块性,和代码的重 复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

      那么,Python中如何定义函数呢?

      定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

    定义一个简单的无参数的函数

    >>> def test1():
    ...     print('Hello,World!')
    ...
    >>> test1()
    Hello,World!
    

     定义一个有参数的,求和函数

    1
    2
    3
    4
    5
    6
    7
    def sum(a,b):              #定义函数
        ret=a+b                #函数体
        return ret             #函数返回
     
    print(sum(1,2))            #调用函数并打印出结果
      
    #如果没有return语句,函数执行完毕后也会返回结果,只是结果为None,函数执行到return就会结束,不再执行函数体内其他代码  

    函数的参数

    函数有三种不同的参数:

    • 普通参数
    • 默认参数
    • 动态参数

    普通参数:

    # ######### 定义函数 ######### 
    
    # name 叫做函数func的形式参数,简称:形参
    def func(name):
        print(name)
    
    # ######### 执行函数 ######### 
    #  'xiaoyao' 叫做函数func的实际参数,简称:实参
    func('xiaoyao')
    

     默认参数:

    >>> def func(name, age = 18):
    ...     print("%s:%s" %(name,age))
    ...
    >>> func('xiaoyao')  # 默认参数在不指定的时候,就是默认值
    xiaoyao:18
    >>> func('xiaoyao',20) # 一旦指定,就不再使用默认值
    xiaoyao:20
    
    注:默认参数需要放在参数列表最后,可以有多个默认参数
    

     指定参数:

    >>> def func(name, age):
    ...     print("%s:%s" %(name,age))
    ...
    >>> func(age=20,name='xiaoyao')  # 可以通过形参名称,不按顺序的传入参数
    xiaoyao:20
    

     动态参数:

    1.*args

    >>> def chao(*args):                  # *args 具有超能力,可以把传入的所有参数都放到一个元组里
    ...   print(args,type(args))
    ...
    >>> chao(1,2,3,4)
    (1, 2, 3, 4) <class 'tuple'>
    >>> chao(['a','e',45])
    (['a', 'e', 45],) <class 'tuple'>
    
    >>> chao(*['a','e',45])              #如果传入参数时在前面加“*”,它会将每个元素分别传入,当作元组的一个元素。不加“*”的时候会把整体当作元组的一个元素
    ('a', 'e', 45) <class 'tuple'>
    

      

     2.**kwargs

    >>> def chao2(**kwargs):
    ...   print(kwargs,type(kwargs))
    ...
    >>> chao2(name='xiaoyao')          # 将参数当作字典传入,所以必须用指定参数的方式
    {'name': 'xiaoyao'} <class 'dict'>
    
    >>> dic={'name':'xiaoyao','age':20}
    >>> chao2(key1=dic)
    {'key1': {'name': 'xiaoyao', 'age': 20}} <class 'dict'>
    >>> chao2(**dic) #如果传入参数时在前面加“**”,它会将每个元素分别传入,当作字典的一个键值对。不加“**”的时候会把整体当作字典的一个键值对 {'name': 'xiaoyao', 'age': 20} <class 'dict'>

     3.*args,**kwargs(万能参数)

    >>> def f1(*args,**kwargs):   # *args,**kwargs 顺序不能变
    ...   print(args)
    ...   print(kwargs)
    ...
    >>> f1(11,22,555,name='xiaoyao',age=20)
    (11, 22, 555)
    {'name': 'xiaoyao', 'age': 20}
    >>> f1(11,22,555,5)
    (11, 22, 555, 5)
    {}
    >>> f1(name='xiaoyao',age=20)
    ()
    {'name': 'xiaoyao', 'age': 20}
    
  • 相关阅读:
    上传文件 nginx 413错误
    javascript 获取指定范围随机数
    用CSS做圆角矩形
    CSS样式做圆角
    不用css样式表和背景图片实现圆角矩形,超简洁!
    HTML——框架
    HTML——表格与表单
    HTML构成及基本标签
    7-22 存储过程、触发器、事务
    15-07-20 数据库--索引视图编程
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/5735519.html
Copyright © 2011-2022 走看看