Python之函数知识
Python函数分类
a,内置函数
b,自定义函数
c,导入函数
一个函数就相当于一个功能块,比如获取数据库,更新数据库,函数其实就是代码的分块,调用函数来执行代码块
一块就代表一个功能
内置函数有以下这些
vars() 当前模块的所有变量
>>> vars()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'nama': 'alex', '__package__': None}
__doc__ :注释内容
比如
>>> import Queue
>>> print Queue.__doc__
A multi-producer, multi-consumer queue
__name__ 被执行的脚本__name__值等于main 其他的等于本身
使用main来标示这个程序的主模块是哪一个
if __name__=="__main__" #这个文件就是程序的主文件,主函数
xxx #执行xxx
reload()如果一个模块导入(import)一次就常驻内存,假如一个模块修改了需要重新导入一次使用reload()重新加载
id()记录内存地址
is 比较地址
计算级别
cmp(2,3)比较
abs()计算绝对值
bool()计算布尔值
divmod(10,3)求商和余数分页
max()取最大
min()去最小
sum()求和
pow()求幂
len()计算序列长度
all()接收一个序列,判断所有值都是真的返回真,否则返回假
例如
>>> li =[1,2]
>>> all(li)
True
>>> li =[1,2,""]
>>> li
[1, 2, '']
>>> all(li)
False
any()只要有一个是真就返回真
chr()接收一个数字转出字符码
ord() 接收一个值转化成数字
hex()10进制转换成16进制
oct()10进制转换成8进制
bin()10进制转换成2进制
>>> hex(13)
'0xd'
>>> oct(12)
'014'
>>> bin(8)
'0b1000'
range()按顺序生成序列
xrange()生成器生成序列
enumerate()
用法
>>> for k,v in enumerate(li):
... print k,v
...
0 11
1 22
2 33
3 44
4 55
循环序列自动生成下标对应value,想要从1开始在li后面加参数1指定数字的起始值
其他
内置函数是无法满足需求的
自定义函数
面向过程的编程假如需要实现同样的功能是通过复制代码来实现,面向函数编程可以通过定义函数,然后调用函数.
函数的返回值
1,未明确指定返回值,返回None
2,返回值可以赋值给某个变量
参数:
普通参数
默认参数
动态参数
#形式参数,形参
#实际参数,实参
动态参数
>>> def func(*arg):
... print arg
...
>>> func()
()
>>> li=[1,2]
>>> func(1)
(1,)
>>> func(1,2)
(1, 2)
>>> func(li)
([1, 2],)
不管收到什么参数都整合成元祖
非动态参数燕严格按照定义输入参数个数
>>> li=(1,2,3,4)
>>> func(li)
((1, 2, 3, 4),)
>>> func(*li)
(1, 2, 3, 4)
只把参数放入生成一个元祖中的元祖,前面加*就是原来的元祖(列表也是类似的结果),对于字符串效果一样
小结
1,接受多个参数
2,内部自动构造元祖
3,序列,*,避免内部构造元祖或列表
>>> def func(**kwargs):
... print kwargs
...
>>> func(**li)
{'1': 'a', '2': 'b'}
定义时候加**生成字典,传递参数的时候也要加2个*
也可以直接在函数传递参数的时候使用key=value的方式来传递
>>> func(k1=123,k2=454)
{'k2': 454, 'k1': 123}
定义一个又可以传递单值的有可以传递字典的函数
>>> def func(*args,**keargs):
... print args
... print keargs
...
>>> func(1)
(1,)
{}
>>> func(1,2)
(1, 2)
{}
>>> func(k1=123,k2=999)
()
{'k2': 999, 'k1': 123}
看一下格式化列子,类似于动态传参
>>> s = "i am {0},age{1}"
>>> s.format('alex','18')
'i am alex,age18'
>>> s = "i am {name},age{age}"
>>> s.format(name='alex',age='18')
'i am alex,age18'
Python之函数知识的更多相关文章
- python基础-基础知识(包括:函数递归等知识)
老男孩 Python 基础知识练习(三) 1.列举布尔值为 False 的值空,None,0, False, ", [], {}, () 2.写函数:根据范围获取其中 3 和 7 整除的所有 ...
- python编程语言 函数的形参
python编程语言 函数的形参的讲解: 我在交互模式中写了个函数: def adder(**args): sum=0 for x in args.keys(): sum+=args[x] retur ...
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
- python数组相关知识
1.np中的reshape函数,可以把矩阵重新划分成m行n列. arange(n)可以把 [0,n-1]装入数组中,一定要注意的是img.reshape()并不会改变原来的数组,所以需要另外新建一个数 ...
- 零基础学python之函数与模块(附详细的代码和安装发布文件过程)
代码重用——函数与模块 摘要:构建函数,创建模块,安装发布文件,安装pytest和PEP 8插件,确认PEP8兼容性以及纠错 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. ...
- Python总结篇——知识大全
python基础 Python开发环境搭建 Python变量和基本数据类型 python基本数据类型之操作 python的语法规范及for和while python编码 python文件操作 pyth ...
- Python从零开始——函数
一:Python函数知识概览 二:函数的定义与调用 三:参数传递 四:函数返回值 五:匿名函数的定义与调用 六:变量作用域与改变变量作用域
- python易错知识集合
本篇用于记录在写leetcode时遇到的python易错知识. 2019.8.29 1.Python range() 函数用法: range(start, stop[, step]) start: 计 ...
- Python初识函数
Python初识函数 函数理论篇 什么是函数 在编程语言中的函数不同于数学中的函数.不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于: 1.数学中的函数当输入的 ...
随机推荐
- centos6.5用tomcat安装jenkins
1下载jdk并安装配置环境变量 # cd /opt/app # .0_45.tar.gz # vi /etc/profile JAVA_HOME=/opt/app/jdk1..0_45 CLASSPA ...
- NGINX下配置CACHE-CONTROL
HTTP协议的Cache -Control指定请求和响应遵循的缓存机制.在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程.请求时的缓存指令包括no-c ...
- 腾讯云总监手把手教你,如何成为AI工程师?
作者:朱建平 腾讯云技术总监,腾讯TEG架构平台部专家工程师 1.关于人工智能的若干个错误认知 人工智能是AI工程师的事情,跟我没有什么关系 大数据和机器学习(AI) 是解决问题的一种途径和手段,具有 ...
- 一步到位Linux中安装配置MySQL及补坑
Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...
- SEQ序号与ACK序号理解总结
备查 SEQ序号与ACK序号理解总结
- line-height属性总结
line-height属性的继承性: 子元素不设置line-height时, 在父元上设置带单位的值和百分比时会先计算父元素的line-height大小然后继承过来,在父元素上设置无单位的数值时,子 ...
- Android -- 自定义ViewGroup+贝塞尔+属性动画实现仿QQ点赞效果
1,昨天我们写了篇简单的贝塞尔曲线的应用,今天和大家一起写一个QQ名片上常用的给别人点赞的效果,实现效果图如下: 红心的图片比较丑,见谅见谅(哈哈哈哈哈哈).... 2,实现的思路和原理 从上面的效果 ...
- 第3章Zabbix完整监控
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...
- nosql使用感受
最近一个项目尝试了使用ssdb(一个类似于redis的数据结构数据库),主要感受有几点: 优势 nosql的无模式在修改和插入时很方便,不需要预先新建表或者修改表结构来新加字段,只需要代码里面使用就行 ...
- UWP: 掌握编译型绑定 x:Bind
在 UWP 开发中,我们在进行数据绑定时,除了可以使用传统的绑定 Binding,也可以使用全新的 x:Bind,由于后者是在程序编译时进行初始化操作(不同于 Binding,它是在运行时创建.初始化 ...