函数的使用(部分)
来源:互联网 发布:符文战争桌游淘宝 编辑:程序博客网 时间:2024/05/17 15:04
python中一定要注意缩进格式
在python自带的手册中函数形式是__fun__
方法形式啊 fun
#/usr/bin/pythoon
#coding:utf8
#coding=utf8
#encoding:utf8
等等
from 方法 import 模块
函数默认参数 从右到左
比如 def fun(x=2,y=3):
当调用 fun(5)的时候
x值不变,y值变成5
当在函数外部要用到局部变量的时候,可以在局部变量前面用global 定义一下就行了
函数默认返回值是None
return 可以返回任何类型
函数多类型传值和处理多冗余参数
传元组t=(‘a','b'),fun(*t)
传字典t={‘a’:'2','b':'3'} ,fun(**t)
t['a']表示key的值为2
当用元组的形式接受参数的时候,可以接受多个单值
例如fun(x,*t)
fun(1,2,3,4,5)的时候
2,3,4,5会传给元组
当函数定义为fun(x=2.y=3)的形式的时候
要想接受多个值,必须用字典的形式,两个信号
fun(**x)
常用形式是综合起来一起用def fun(x,*arge,**t)
def fun2(t,*arge,**x):
print t
print arge
print x
fun2(1,2,3,4,5,6,7,8,x=23,y=24)
输出
1
(2, 3, 4, 5, 6, 7, 8)
{'y': 24, 'x': 23}
lambda函数(快速定义单行的最小函数,是从Lisp借来的)实际上是一个函数对象
可以让代码更加精简,也可以省去为函数命名和定义函数。
用法举例:
g=lambda x,y:x*y(冒号左边为参数,右边为返回值)
调用g(2,3)返回的是6
switch结构(实际上python里面没有switch语句),但是可以使用字典去实现这个switch效果
注意在使用format格式化的时候注意%后面,如果输出的是一个值就可以直接输出,若为>=2个数值的时候必须要用到元组的形式,不然会报错
例如 print “%d+%d=%d” % x,y,z#这种是错误形式
print “%d+%d=%d” % (x,y,z)#正确的
#!/bin/python
#coding=utf8
from __future__ import division
def jia(x,y):
return x+y
def jian(x,y):
return x-y
def cheng(x,y):
return x*y
def chu(x,y):
return x/y
operator={"+":jia,"-":jian,"*":cheng,"/":chu}#调用元组形式operator["x"]
x=input("please number x:\n")
z=raw_input("please a way:+,-,*,/\n")
y=input("please number y:\n")
print '%d%s%d=%d'%(x,z,y,operator.get(z)(x,y))#还可以用operator[z](x,y)这种方式也行
一些内置函数
len()
max()
min()
abs()
pow()
divmod()取商和模;用法divmod(x,y) 表示x/y,返回两个数值(商,余数)
>>> divmod(5,2)
(2, 1)
round()返回一个数的浮点数
若不清楚可以用help(divmod)查看帮助
callable();测试是否为可用或者是定义过的函数,如果是则返回true 不是返回false
range()产生一个序列
例如:range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
xrange()在大数据的时候,比range效率高很多
cmp()比较两个字符串的大小,相等返回0,大于返回1,小于返回-1
type()查看一个对象的类型,并返回。例如 如果l为元组类型,type(l)就会返回《l,list》这种形式的信息
isinstance()测试一个对象的类型。例如isinstance(l,list)表示l是否为元组类型,是就返回true ,不是就返回false
isinstance(l,int),是否为整形,字典为dict
类型转换函数:
tuple(l)将l转化成一个元组 str() list()
例如
>>> l
{}
>>> tuple(l)
()
int()
hex() 数值转换成一个16进制字符串
oct() 数值转换成一个8进制字符串
chr() 将整数转化为它的字符
ord()将字符转化为它的整数值
long()
float()
complex()创建一个复数
内置函数string处理
str.capitalize() ##实现str首字母大写比如 “hello”.capitalize() 返回的结果为Hello。但是原来字符串没有变。
str.replace()##实现字符串替换,返回的是一个替换过的字符,但是原来字符串没有变。
>>> s="hello"
>>> s.replace("hello","world")
' world'
>>> s
'hello'
其中还有一个参数s.replace(x,y,z)
z为替换次数,若省略,则会默认全部替换
str.split()##字符串切割函数里面有两个参数str.split(x,y),其中x为分割符,y为分割次数
>>> ip="192.168.2.103"
>>> ip.split('.')
['192', '168', '2', '103']
>>> ip.split('.',1)##将ip这个字符串以'.'为分割符,切割1次 返回的是一个列表
['192', '168.2.103']
另外一种方式是导入string模块,然后从模块中调用处理函数
例如 import string
string.replace("hello world","hello","good")
返回为good world
序列处理函数
filter()## filter(function or None, sequence) 当function函数返回true的时候就会保留对应的序列sequence中对应的值,filter(f,list)表示f函数作用于list这个列表
zip()##起到关联序列的作用
例如:
>>> name=["dai","zhou","wang"]
>>> age=[20,21,22]
>>> tel=["133","123","234"]
>>> zip(name,age,tel)
[('dai', 20, '133'), ('zhou', 21, '123'), ('wang', 22, '234')]
另外一种情况
>>> test=[1,2]
>>> zip(name,age,tel,test)##注意第三个wang的没有了
[('dai', 20, '133', 1), ('zhou', 21, '123', 2)]
map()##关联作用,格式为map(None or function,list1,list2,......)如果对应的列表缺少了,它会用None去填充.
>>> map(None,name,age,tel,test)
[('dai', 20, '133', 1), ('zhou', 21, '123', 2), ('wang', 22, '234', None)]
加入函数的用法
>>> a=[1,2]
>>> b=[3,4]
>>> def fun(x,y):
... return x*y
>>> map(fun,a,b)
[3, 8]
reduce()##格式reduce(function,list)
在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.
>>> l=[1,2,3,4,5] 先把列表里面的第1个和第2个数依次传给函数function操作,并且结果返回和第3个list元素进行同样的操作。直到遍历完list里面的元素。
>>> reduce(lambda x,y:x+y,l)
15
>>> reduce(lambda x,y:x*y,l)
120
- 函数的使用(部分)
- 部分函数的使用整理
- 部分函数的使用整理
- matlab部分函数的使用
- C++ string(初始化和部分函数的使用)
- QDateTime类的部分函数使用解析
- javascript基础部分(三)使用函数
- C#中使用网络函数 (第一部分 用户函数)
- C++中的string类的部分函数的使用
- 使用cairo绘制图形的部分函数总结
- 使用仿函实现函数参数的部分自动填充
- 使用cairo绘制图形的部分函数总结
- 使用cairo绘制图形的部分函数总结
- C语言 - 比较部分字符串函数的使用
- Numpy库部分函数使用
- hql(部分函数) .
- VS2013中关于gets函数使用问题的解决方案(搬运“尼古拉斯罗本”的部分文章,)
- ViewPagerIndictor框架的使用(第一部分)
- Linux下使用Wireshark进行抓包分析(含SIP和RTP包)
- Unity T4M 中文讲解
- PPPOE和pppd的流程详解--good
- configure: error: C compiler cannot create executables
- Proguard总结
- 函数的使用(部分)
- 类的成员之二:成员方法
- 数据库相关文章
- 想做这样一个签到划卡型的小程序
- 将object_name 按每列18条数据,6列存储
- Android下使用TCPDUMP抓包Wireshark分析数据
- 图像拼接(二):柱面投影+模板匹配+渐入渐出融合(GPU版)
- redis漏洞导致云服务成肉鸡了
- 直播相关知识之三 优化及相关资料收集