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

    当大量的代码重复使用的时候,可以使用函数

    函数的作用:提升了代码的简洁性、对功能 代码进行封装,提升了代码的重用性以及可可读性

    例如定义一个函数:

    def show()

    ```

    def 这个关键字,python解释器遇到这一行就默认不执行,只是把这个函数放在内容里面,名字就是函数名show。只用调用的时候才执行。

    show()-->调用函数

    f = show  #将show赋值给f,f的指向的地址和show相同,所以可以直接调用f来执行show函数

    f()  <==>show()

    函数的返回值:

    return;

    注意:

    1.如果函数中没有注明return,函数依旧有返回值,返回值为None

    2.函数中遇到return,就自动终止函数,不执行return后面的代码语句

    函数的参数:

    形式参数与实际参数

    形式参数:定义函数的时候定义的参数;def show(user):#user就是形式参数

    实际参数:执行函数的时候传入的实际参数,show(‘jam’)#jam就是实际参数,对应的是定义函数时候的user

    1.函数的普通参数

    #一个参数:def show(arg):--->show('ss')
    #两个参数:def show(arg,xxx):--->show('ss','c')

    2.函数的默认参数

    默认参数必须放在背后
    def show(arg,arg2=None):

    3.函数的动态参数

    带一个*的,接收参数返回元组的类型

    带两个*的,接受参数返回字典的类型

    def show(*args,**kwargs):接收什么都能执行。注意:*的参数必须放在前面,**的参数放在后面。实参传入方式也一样

    def show(*args,**kwargs):
    print (args,type(args))
    print (kwargs,type(kwargs))
    show(11,22,3,n1 = 15,n2='adf')
    (11, 22, 3) <class 'tuple'>
    {'n1': 15, 'n2': 'adf'} <class 'dict'>
    如果想要列表和字典分别传入,前面加*,必然后默认为*args传入的参数。
    def show(*args,**kwargs):
    print (args,type(args))
    print (kwargs,type(kwargs))
    l = [11,33,44]
    d = {'n1':1,'n2':26}
    show(l,d)
    show(*l,**d)
     
     
    案例:使用动态参数进行字符串的格式化
    format()方法
    s1 = '{0} and {1}'
    l = ['jam','nina']
    #result = s1.format('jam','nina')
    result = s1.format(*l)
    print(result)
    输出:jam and nina
    s2 = '{name} is {sex}'
    d ={'name':'jam','sex':'m'}
    #re1 = s2.format(name='jam',sex='M')
    re1 = s2.format(**d)
    print (re1)
    输出:jam is m

     简单函数:lambda表达式

    对于简单的函数一行代码就可以执行

    例:

    func = lambda a:a+1
    print (func(99))
    输出:100
     
    lambda表达式执行了那些内容:
    1.创建形式参数a
    2.自动把函数体结果return。
     
    python内置函数
     
    map与filter:
    1.map:遍历序列,对序列中的每个元素进行操作,最终获取新的序列
    例:li = [11,22,33,44]#让里面的每个元素都加100
    new_li = map(lambda x:x+100,li) 
    l = list(new_li)
     
     
    2.filter:
    对于序列中元素进行筛选,然后获取符合条件的序列
    例:
    def func(i):
      if i>33:
        return True
      else:
        return False
    li = [11,22,33,44,55,66]
    filter(func,li)#不需要加括号执行
     
    open函数
     
    注意:
    seek方法是寻找文件的指针位置
    tell方法是 返回指针的位置。
    tell和seek是按照字节的形式来执行的
    read是按照字符的形式来执行的。
  • 相关阅读:
    解决com.xpand.. starter-canal 依赖引入问题
    缓存预热加入二级缓存
    缓存预热的实现
    ShardingSphere 中有哪些分布式主键实现方式?
    ShardingSphere 如何实现系统的扩展性
    如何系统剖析 ShardingSphere 的代码结构?
    SharingSphere的数据脱敏
    ShardingSphere的分布式事务
    Qt 事件过滤器原理(installEventFilter函数)
    Qt Event 以及 Event Filter 事件处理
  • 原文地址:https://www.cnblogs.com/jamchen/p/6422156.html
Copyright © 2011-2022 走看看