函数基础和函数参数

一、函数基础
- 定义:
  def 函数名(参数): # 函数名 一般首字母小写 小驼峰命名法
    pass # 关键字 作用是防止函数(if elif for...有缩进的函数) 里面没有写东西而报错
    <执行代码>
    return <表达式> # 关键字 后面可以返回任意表达式但不能接赋值语句 其作用有2点:
            1. 返回值、变量或表达式,默认返回None(如果不写return,则返还None)
            2. 结束函数

- 函数调用
  函数名() # 函数调用 1.执行函数里面的代码 2.自己就是一个值,这个值是return所返还的值

小技巧:Pycharm下快速注释与取消的快捷键:Ctrl+/

 


二、函数参数
- 必备参数
  def eat(name,c): # 必备参数 形参 个数没有限制 但前面有几个必备参数,调用时就要传几个实参
    print('%s加鸡腿'%name)
    print('%s来瓶可乐'%name)

  eat('老王','吃吃吃') # 实参 位置传参
  eat(c='吃吃吃',name='老王') # 关键字传参

- 默认参数
  def sleep(name='老王'): # 默认参数 可传可不传 已经赋值
    print('%s睡觉'%name)

  sleep('小李') # 输出为'小李睡觉'

- 不定长参数
  def drink(*args,**kwargs): # 不定长参数 0到任意个
    print(args) # *args 存在元组里面 注意print的时候,args前面不加*
    print(kwargs) # **kwargs 存在字典里面 注意print的时候,kwargs前面不加**

  drink('可乐','雪碧','橙汁',a='矿泉水',b='王老吉',**{'c':'冰峰','d'='奶茶'}) # **kwargs的两种实参形式注意:1. 必备参数必须在默认参数前面 调用时,优先传实参给必备参数

   2. 传实参时,*args的参数要在**kwargs前面
   3 函数有混合参数,通常顺序如下:

                    (name,*args,wight='52',**kwargs) # 必备参数,不定长args,默认参数,**kwarg    那么如果要改默认参数wight的值,就需要在实参中,写出wight='60'

 

三、常见的内置函数

python中的简单内置函数
  - 内置对象查看:
    - dir(__builtins__) # 查看方法
    - 常见函数:
    - len(obj) # 求长度
    - min(obj) # 求最小值
    - max(obj) # 求最大值
    - sorted(obj) # 排序 返还的是一个列表   只能对相同类型的数据进行排序,且数值型中,复数不能和其他数值类型一起排序
    - reversed(obj) # 反向 返还的是一个16进制的地址,需要通过list()来转换成列表
    - sum(obj) # 求和

注意:sort()与sorted的区别:

  之前所学的.sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
  sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
  iterable:是可迭代类型;
  cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
  key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
  reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
  返回值:是一个经过排序的可迭代类型,与iterable一样。
  注:一般来说,cmp和key可以使用lambda表达式。


  - 进制转换函数:
    - bin(obj) # 转换为二进制
    - oct(obj) # 转换为八进制
    - hex(obj) # 转换为十六进制
    - ord(obj) # 字符转ASCII码
    - chr(obj) # ASCII码转字符

python中的高级内置函数

  - enumerate # 返回一个可以枚举的对象 (返还一个序列类型,返回的类型取决于enumerate函数前的方法类型)
    print(dict(enumerate(['a','b','c']))) # key 从0开始
  - eval() # 1. 取出字符串中的内容 2.将字符串str当成有效的表达式来求指并返回计算结果
  - exec() # 执行字符串编译过的字符串
  - filter() # 过滤器

     li = [1,23,3,5,6]

    def ss(a):
      return True if a<5 else False

    print(list(filter(ss,li))) # 返回过滤的值 输出为[23,6]
  - map() # 对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回
    li = [1,23,3,5,6]

    def ss(a):
      return 'ss' if a<5 else False

    print(list(map(ss,li))) # 一个一个的过滤 返回的值为一组由'ss'或False组成的列表

  - zip # 将对象逐一配对 返回的是一个字典

 

posted @ 2018-08-16 18:58  Nealxyz  阅读(150)  评论(0)    收藏  举报