day09 python
 
一.函数
    1.函数
        函数是对功能的封装
        语法:
        定义函数:
            def 函数名(形参):    #define
                函数体
        调用:
            函数名(实参)
 
    2.返回值 return
def func():
    print('bajie')
    return 'done'       #0.不写return就没有返回值(得到的是None),      #1.只写 return, 不写返回的是什么, 返回的还是None, 而且还会终止函数
    print('bajie')      #2.写return 值, 返回一个值, 而且还会终止函数, 后面的'bajie'不会被打印     #3.可以返回多个返回值: return 值1,值2,值3(接收的是元组)
 
rst = func()
 
print(rst)
 
        
    3.参数
        参数; 在函数执行的时候给函数传递信息时用的
        传参: 把实参交给形参的过程
def func(tools):    #在函数定义时,这个变量是形式参数
    print('open %s' % tools)
 
func('phone')       #在函数调用时, 是实际参数
        
        实参的传递方式: 位置参数, 关键字参数, 混合参数
def eat(good_food, no_good_food, drink, ice_cream):
    print(good_food, no_good_food, drink, ice_cream)
 
eat('fgood','nfgood','drink','icc')                 #按顺序传值, 位置参数
 
eat(ice_cream='fgood',drink='nfgood',good_food='drink',no_good_food='icc')    #关键字参数
 
eat('bajie','ai',ice_cream='shuishui',drink='haha')   #混合参数时, 分两部分:先位置, 后关键字
        
        形参的定义方式: 位置参数, 默认值参数, 动态参数
def eat(good_food, no_good_food, drink, ice_cream):     #位置参数
    print(good_food, no_good_food, drink, ice_cream)
 
def regist(name, phone, gender='man'):          #默认值参数, 默认值参数必须在参数列表的最后
    print(name, phone, gender)
 
regist('bajie', '10089')
 
        
        动态参数: 位置
def eat(*food):     # * 表示接收位置参数的动态传参
    print(food)     # food 接收到的是一个元组
    print(type(food))
 
eat('bajie','悟空','大唐')
eat()               #可以没有, 是空元组
        
        位置与动态位置的顺序
def eat(name, *food):   #位置参数, 和动态位置参数可以共存, 顺序: 先位置, 后动态位置
    print("%s want to eat %s" % (name, food))
eat('bajie', 'a','b','c')
        
        动态参数: 关键字
def eat(**food):    # ** 表示的是关键字的动态传参
    print(food)     # food接收到的是(不完全)字典
    print(type(food))
eat(name = 'bajie', age = '100')        # key 是变量(要遵守变量的命名规则), (数字不行, 字符串不行)
eat()                                    # 可以不传, 是空字典
>>>{'name': 'bajie', 'age': '100'}
        
        动态位置 + 动态关键字 : 聚合
def eat(*food1, **food2):   #万能传参, * ** 相当于一个聚合的作用
    print(food1, food2)
       
        打散
def func(*food, **kwfood):    #这里的 * 是聚合, 位置参数        # ** 同理
    print(food, kwfood)
 
lst = ['bajie','wukong','datang']
dic = {'1':'1','2':'2','3':'3','4':'4'}
 
func(lst)       #这样是传了一个参数, 是元组, 里面套了一个列表
func(*lst, **dic)      #这里的 * 是打散(list,tuple, set, str), 进行迭代打散        # ** 同理, 是打散(dict)
    
 
    
    内容总结:
    参数
        1.实参
            位置参数
            关键字参数
            混合参数(位置+关键字)
        2.形参
            位置参数
            默认值参数
            动态传参
                *args: 位置参数的动态传参
                **kwargs: 关键字参数的动态传参
            顺序: 位置参数, *args, 默认值参数, **kwargs
 
 
 
 
 
 
 
 
 
 

day09 python函数 返回值 参数的更多相关文章

  1. python函数返回值

    2016-08-09  15:01:38 python函数返回值使用return语句,可以返回任意类型的数.如果return语句执行,它之后的所有语句都不再执行. def func(x,y): pri ...

  2. Python 函数返回值、作用域

    函数返回值 多条return语句: def guess(x): if x > 3: return "> 3" else: return "<= 3&qu ...

  3. Python的函数, 返回值, 参数

    1. 函数 函数是对功能的封装 语法: def 函数名(形参): 函数体(代码块,return) 调用: 函数名(实参) 2. 返回值 return:在函数执行的时候, 遇到return 就直接返回, ...

  4. Python 函数返回值

    本章详细介绍 返回值: 0x 00 返回值简介 0x 01 指定返回值与隐含返回值 0x 02 return 语句位置与多条 return 语句 0x 03 返回值类型 0x 04 函数嵌套 0x 0 ...

  5. python 函数返回值笔记

    今天学习python时候学习到闭包和柯里化 感觉看概念时候不好理解,自己写下大概就明白点了 柯里化如下 定义一个加法函数 def add(x, y): return x + y 这是没有柯里化之前的函 ...

  6. python 函数返回值(总结)

    关键字:return 没有返回值的叫过程 def test1(): msg="我是一个过程" print(msg) 有return的叫函数 def test02(): msg=&q ...

  7. Python 函数返回值类型

    [ i for i in dir(set) if not i.startswith('_') ]   

  8. Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  9. python学习——函数返回值及递归

    返回值 return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天小编就依目前所了解的讲解一下.pytho ...

随机推荐

  1. 77th ploty 制图神器

    https://blog.csdn.net/u012897374/article/details/77857980

  2. c++简单线程池实现(转)

    线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他 ...

  3. JavaSE---Annotation

    1.概述 1.1 JDK1.5开始,java提供了对Annotation的支持: 1.2 Annotation其实就是 代码中的特殊标记,这些标记 可以在编译.类加载.运行时被读取,并执行相应的处理: ...

  4. python 学习 -- 第一天 初涉

    久闻python大名却一直没去了解,趁学校培训这个机会 开始正式学习python 第一天初步介绍一点关于python的东西 安装了环境及编译器 环境是在之前就安装了 只安装编译器anaconda 之后 ...

  5. 06-图2 Saving James Bond - Easy Version(25 分)

    This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...

  6. I2C自编设备驱动设计

    一.自编设备驱动模型 at24.c: static int __init at24_init(void) { io_limit = rounddown_pow_of_two(io_limit); re ...

  7. Codeforces 789e The Great Mixing (bitset dp 数学)

    Sasha and Kolya decided to get drunk with Coke, again. This time they have k types of Coke. i-th typ ...

  8. 如何做LR自动关联和手动关联?

    一.什么时候需要关联   1.关联的含义        关联的含义A(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容 ...

  9. Another Blog

    I also hold a blog with thoughts of English learning. Get there ===>. It's a private blog. Actual ...

  10. ZROI week3

    作业 poj 1091 跳蚤 容斥原理. 考虑能否跳到旁边就是卡牌的\(gcd\)是否是1,可以根据裴蜀定理证明. 考虑正着做十分的麻烦,所以倒着做,也就是用\(M^N - (不合法)\)即可. 不合 ...