Python 基础4:函数

一、三元运算

  

if 1 == 1:
    name = "alex"
else:
    name = "eric"
#name = 值1 if 条件:else 值2
#如果值1成立就吧值1赋值给name
#反之值2赋值给name


二丶深浅拷贝

  a、对于 数字 和 字符串 而言,赋值、浅拷贝和深拷因为其永远指向同一个内存地址

  b、对于列表、字典、元素....

    浅拷贝,在内存中只额外创建第一层数据

    深拷贝,在内存中将所有的数据重新创建一份

    (排除最后一层,即:python内部对字符串和数字的优化)

三、函数

  1、默认函数内部的东西不执行

  2、创建函数

    def 函数名():

      函数体

      return

      1、接收什么返回什么

      2、一旦遇到return,函数内部return一下代码不在执行

  3、参数

    a、形参、实参

    b、普通参数:数量一致,一一对应

    c、指定参数,

      func1(p =“xxx”,xx=‘xxxx’)

    d、默认参数

      放在参数尾部

    e、动态参数

        1、*args

#动态参数一
def f1(*a):
    #a = (123,)一个*,传出的是一个元组
    print(a)
f1(123)

 

          2、**kwargs

#动态参数二
def f1(**a):
    print(a,type(a))
f1(k1=123,k2=345)
#输出结果
#{'k1': 123, 'k2': 345} <class 'dict'>
#2个*的时候传出的是字典

        3、万能参数

#万能参数
def f1(p,*a,**aa):
    print(p,type(p))
    print(a,type(a))
    print(aa,type(aa))
f1(11,22,33,k1=123,k2=456)
#输出结果:
# 11 <class 'int'>
# (22, 33) <class 'tuple'>
# {'k1': 123, 'k2': 456} <class 'dict'>

        实例

def f1(*args):
    print(args,type(args))
li = [11,22,33,44]
f1(li)
f1(*li)
#输出结果:
#([11, 22, 33, 44],) <class 'tuple'>
#(11, 22, 33, 44) <class 'tuple'>

    f、局部变量和全部变量

      全局:

        大写

        修改需要加,global

      局部变量:

        小写,仅仅在代码块中使用

 

posted @ 2017-08-08 20:19  爱吃西红柿的猫  阅读(174)  评论(0编辑  收藏  举报