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. 最新版WinRAR5.61去广告代码教程分享(仅供学习交流)

    最新版WinRAR5.61去广告代码教程分享(仅供学习交流) 第一步:到WinRAR官网www.rarlab.com下载自己需要的版本,选择Chinese Simplified 64bit 安装即可. ...

  2. PROXY——代理模式

    代理,说白了就是中介.假设有俩对象A和B,A想访问B,但是根据迪米特法则,我们不能喝陌生人说话,简而言之就是A要减少知道B的相关情况,要降低A与B的耦合度.这时我们使用中介C,而C拥有B的相关情况,A ...

  3. Codeforces 1185G2 Playlist for Polycarp (hard version) 背包,暴力

    题意及思路:https://www.cnblogs.com/Als123/p/11061147.html 代码: #include <bits/stdc++.h> #define LL l ...

  4. 转帖 java使用poi.3.10读取excel 2010

    package poi; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; ...

  5. 浅谈maven自动化构建工具

    转载https://blog.csdn.net/zxm1306192988/article/details/76209062 Maven是什么[what] 1.Maven 是 Apache 软件基金会 ...

  6. PHP数组函数实现栈与队列的方法介绍(代码示例)

    根据php提供的四个关于数组的函数: array_push(),array_pop(),array_unshift(),array_shift() 配合数组本身,一下子就实现了栈(stack)和队例( ...

  7. JavaSE---多线程---线程的控制

    1.Java提供了一些工具方法,可以便捷控制线程的执行: 1.1 join Thread提供了让一个线程等待另一个线程执行完成的方法:join: 当某个程序的执行流中调用其他线程的join方法,该线程 ...

  8. PHP rewinddir() 函数

    打开一个目录,列出其中的文件,充值目录句柄,重新列出其中的文件,然后关闭: <?php$dir = "/images/"; // Open a directory, and ...

  9. 【Shiro】三、Apache Shiro认证

    配置好并获取到SecurityManager,代表Shiro正常运行起来了,可以使用Shiro的其它功能. 1.认证流程(API的使用流程) 认证的数据: Principals:标识 ·识别Subje ...

  10. 87、使用TensorBoard进行可视化学习

    1.还是以手写识别为类,至于为什么一直用手写识别这个例子,原因很简单,因为书上只给出了这个类子呀,哈哈哈,好神奇 下面是可视化学习的标准函数 ''' Created on 2017年5月23日 @au ...