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. Linux学习笔记之认识与学习Bash

    什么是shell:shell是一个翻译器,将所敲的命令翻译成CPU能理解的语言,之后CPU再去执行,CPU执行后返回给shell,shell再翻译成我们所能理解的语言并显示:终端并不是shell,而是 ...

  2. Opencv3.3(Linux)编译安装至python的坑

    编译安装OpenCV绝对是一件让人发狂的事情,CMake繁多的选项,国内蛋疼的网速,实在让人无力吐槽,然而为了使用contrib包,我不得不重新编译他. OpenCV的编译 其实OpenCV编译并不是 ...

  3. QProcess

    QT应用在windows系统下调用bat脚本,居然报错了.该BAT脚本,是用来检查svn.exe这个命令行工具,是否在当前系统里存在.在cmd终端里,一直是可正常执行的.但是在windows7家庭中文 ...

  4. 如何通过命令行编写调试第一个C++程序(UNIX)

    1.文件保存以.cc,.cpp等结尾: 2.bash窗口调试命令:cc prog1.cc,编译器生成可执行问价,Unix系统中为a.out,windows中一般以filename.exe; 3.(1) ...

  5. 第4篇创建harbor私有镜像库

        一.部署准备: 1.准备harbor软件包       在部署节点上:       2.挂载一个磁盘,专门存储harbor镜像和文件     3.进入到/etc/docker/harbor/目 ...

  6. 【串线篇】idea下的springboot入门配置

    1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,martin fowler 微服务: ...

  7. HDU-4609(FFT/NTT)

    HDU-4609(FFT/NTT) 题意: 给出n个木棒,现从中不重复地选出3根来,求能拼出三角形的概率. 计算合法概率容易出现重复,所以建议计算不合法方案数 枚举选出的最大边是哪条,然后考虑剩下两条 ...

  8. API登录验证

    客户端 客户端token加在header头中,通过request发送给服务端 服务端 服务端 通过request.META.get(HTTP_TOKEN)拿到客户端传来的token 然后与服务器事先存 ...

  9. getcwd函数学习

    getcwd 函数原型:char *getcwd( char *buffer, int maxlen ); 功 能:获取当前工作目录 参数说明:getcwd()会将当前工作目录的绝对路径复制到参数bu ...

  10. 关于Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

    GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 ...