python3 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义一个函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
  1. def func(len):
  2. '''
  3. 计算字符串长度
  4. :return:len
  5. '''
  6.  
  7. i = 0
  8. for k in len:
  9. i += 1
  10. return i
  11.  
  12. st = 'abcdefg'
  13. lens = func(st)
  14. print(lens)
    ### 此为定义一个简单的函数的定义,包括注释

函数调用

定义一个函数以后可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

如下实例调用了 printme() 函数:

  1. def printme(str):
  2. print(str)
  3. return
  4.  
  5. printme('打印任意输入值')
  6. printme('这个函数很无聊')
  7. 打印任意输入值
  8. 这个函数很无聊

参数传递

位置参数

如下事例,按照参数位置传递参数。有多少个位置则传递多少个参数。

若想自定义参数,则需要在传参过程中自定义关键字

  1. def func(name,sex):
  2. print(name+'性别是'+sex)
  3. return
  4.  
  5. func('小明','男')
  6. 小明性别是男
  1. def func(name,sex='男'):
    print(name+'性别是'+sex)
    return
  2.  
  3. func(sex='女',name='小花')
    小花性别是女

默认参数(??)

  1. # 如果调用函数时没有传递参数,则会使用默认参数
    def func(name,age,sex='男'):
  2. print(name,age,sex)
  3. return
  4.  
  5. func('abc','')
    ##############################################
    这里我用字符串格式化写了一个小函数,为啥默认函数不能用,先留着后面看看。讲道理即使不写性别应该是男?
  1. def func(name,age,sex='男'):
    print('这个人的名字是:{},年龄是:{},性别是:{}'.format( name,age,sex))
    return
  2.  
  3. na = input('请输入名字:')
    ag = input('请输入年龄:')
    se = input('请输入性别:')
    func(na,ag,se)

请输入名字:小明
请输入年龄:12
请输入性别:
这个人的名字是:小明,年龄是:12,性别是:

动态参数(不定长参数)

动态参数有两种:可以接受任意个参数
*args : 接收的是按照位置传参的值,组织成一个元组
**kwargs: 接受的是按照关键字传参的值,组织成一个字典
args必须在kwargs之前

  1. 实例1
    def func(*args):
  2. print(args)
  3. return
  4. func(20,12,34)
  5. l1=[1,2,3,4,5,6]
  6. func(l1)
  7. func(*l1) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散。给序列加和不加 * 的结果就是是否将其原封不动或打散

(20, 12, 34)
([1, 2, 3, 4, 5, 6],)
(1, 2, 3, 4, 5, 6)

 实例2:

  1. def func(**kwargs):
    print(kwargs)
    return
  2.  
  3. func(a=12,b=34)
    l1={'a':12,'b':22,'c':55}
    func(**l1)

{'a': 12, 'b': 34}
{'a': 12, 'b': 22, 'c': 55}

*args

直接传入列表数据和  *[ 列表 ] 的结果是一样的。都能输出成元祖

  1. def liebiao(*args):
  2. print(args)
  3.  
  4. liebiao(1,2,3,4,5)
  5. liebiao(*[1,2,3,4,5])
  6.  
  7. (1, 2, 3, 4, 5)
  8. (1, 2, 3, 4, 5)

**kwargs

接受的是按照关键字传参的值或者给字典加** 都能使结果组织成一个字典

  1. def zidian(**kwargs):
  2. print(kwargs)
  3.  
  4. zidian(**{'name':'alex','age':1000})
  5. zidian(name = 'tom',age = 1000)
  6.  
  7. {'name': 'alex', 'age': 1000}
  8. {'name': 'tom', 'age': 1000}

day9.初识函数的更多相关文章

  1. python之路——初识函数

    阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...

  2. python基础 (初识函数&函数进阶)

    函数基础部分 .什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

  3. Day06 (黑客成长日记) 初识函数和返回值的作用

    定义函数: 1.初识函数: 我们在学习字符串时,有这样的操作: li = 'tsy be ba bvake ' print(len(li)) 这样可以打印出li的长度,我们利用了python中的len ...

  4. python基础之 初识函数&函数进阶

    函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

  5. Python基础之文件的初识函数

    初识函数函数定义:定义一个事情或者功能. 等到需要的时候直接去用就好了了. 那么这里定义的东西就是一个函数即函数: 对代码块和功能的封装和定义1.1常用形式: def 函数名(): 函数体1.2 函数 ...

  6. Python_初识函数

    为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你计算'hello world'的长度,你怎么计算? 这个需求对于现在的你其实不难,我们一起 ...

  7. 08-Python之路---初识函数

    Python之路---初识函数️ 程序员三大美德: 懒惰 因为一直致力于减少工作的总工作量. 缺乏耐性 因为一旦让你去做本该计算机完成的事,你将会怒不可遏. 傲慢 因为被荣誉感冲晕头的你会把程序写得让 ...

  8. Python初识函数

    Python初识函数 函数理论篇 什么是函数 在编程语言中的函数不同于数学中的函数.不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于: 1.数学中的函数当输入的 ...

  9. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

随机推荐

  1. [MySQL]理解关系型数据库4个事务隔离级别

    概述 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. 1. Read Uncommi ...

  2. Android存储路径你了解多少?

    在了解存储路径之前,先来看看Android QQ的文件管理界面,了解一下QQ的数据文件路径来源,到底是来源于什么地方? 手Q文件管理对应存储目录 我的文件:是指放在QQ指定目录下的文件:/tencen ...

  3. Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

    Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...

  4. mysql 定期删除表中无用数据

    MySQL5.1.x版本中引入了一项新特性EVENT,定期执行某些事物,这可以帮助我们实现定期执行某个小功能,不在依赖代码去实现. 我现在有一张表,这张表中的数据有个特点,每天都会有大量数据插入,但是 ...

  5. JAVA图书管理系统汇总共27个

    好多人都在搜索图书管理系统,感觉这个挺受欢迎的,所以整理了一系列的图书管理系统,让大家选择.java图书馆管理系统[优秀毕业设计论文+源码]http://down.51cto.com/data/683 ...

  6. Confluence 6 代理和 HTTPS 设置连接器

    很多用户选择将 Confluence 运行在反向代理的后面,同时还启用了 HTTPS.将你的的 Confluence 反向代理配置正确就显得非常必要了,并且能够避免后期在使用 Confluence 遇 ...

  7. Confluence 6 workbox 的位置

    Confluence 6 workbox 的位置在首页什么地方? workbox 应该在页面顶部的用户登录后的地方. https://www.cwiki.us/display/CONFLUENCEWI ...

  8. linux之各目录作用

    /opt目录 目录用来安装附加软件包,用户调用软件包程序放在目录/opt/package_name/bin下,package_name是安装软件包的名称 /etc目录 是用来放一些核心的配置文件 附各 ...

  9. mongodb 数据库中 的聚合操作

  10. 关于在CentOS上,绘图丢失部分中文字的问题

    官方的system.drawing.common 第三方的 zkweb.system.drawing,都用的是libgdiplus 只要是自己编译libgdiplus,都会有这个问题, 问题 : 这里 ...