Python之函数
来源:互联网 发布:2016年零售业数据 编辑:程序博客网 时间:2024/06/05 03:16
一 函数的基本语法
def 返回类型 func_name(<参数列表>):
函数体
二 默认参数
#默认参数,表示如果调用者没有提供值,就使用默认提供的值
def show(arg1,arg2= 'default'):
print(arg1,arg2)
show('hadoop') # hadoop default
show('hadoop','hive')# hadoop hive
三 动态参数
# *args => 将传递进来的参数转换成了元组
# def show(*args):
# print(args)
# **args => 将传递进来的参数转换成了字典,这时候需要这样调用,参数个数没有限制
# 比如show1(key=12)就会把key作为字典key,12作为字典的value
def show1(**args):
print(args)
show1(key1=12,key2=13,key3=23)
# 前面提供的数据封装成元组,后面的数据封装成字典
# 而且写参数和传参数 *args参数需要放在前面,**kwargs需要放在后面
def display(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))
display(11,12,14,key1='nicky',key2='Lucy')
#如果我们传递的是一个列表个一个字典,动态参数会发生如何变化
l = [11,12,14]
d = {'key1':'nicky','key2':'Lucy'}
display(l,d)
"""
运行结果如下:
([11, 12, 14], {'key1': 'nicky', 'key2': 'Lucy'}) <class 'tuple'>
{} <class 'dict'>
我们发现他把List和字典封装成了元组,类似这样(List,Dict),而并不是把List的数据封装成元组
Dict数据封装成字典,所以kwargs参数为空
"""
# 如果我们希望把传递进来的列表转化成元组,字典转化为字典,我么可以这样:
display(*l,**d);
"""
运行结果如下:
(11, 12, 14) <class 'tuple'>
{'key1': 'nicky', 'key2': 'Lucy'} <class 'dict'>
"""
# 字符串的格式化函数就是这种的
target = "{0} is{1}"
# message =target.format("nicky","developer")
lists = ['BaoBao','UI']
# message =target.format(lists) 报错IndexError: tuple index out of range
# 正确方式
message = target.format(*lists)
target = "{name} is {age}"
message = target.format(name='nicky',age=28)
# d ={'name':'nicky','age':28}
# message = target.format(**d)
print(message)
四 lambda表达式
# lambda表达式,简单函数的表达式,最后将结果返回func = lambda a,b: a+b;ret = func(10,20)print(ret)
五 内置函数
Python提供的不需要导入任何模块就能调用的函数。
abs:求绝对值
all(): 传给all的元素必须全部为true,结果才是true
any(): 传给any的元素只要有一个是真,那么返回结果就是真
bool(): 计算布尔值
bytes():计算字节数
bytearray(): 转换成字节数组
dir():
id(): 查看内存地址
divmod(): 取余
callable(函数名): 可够被调用
chr(): 转成字符
ord(): 转换成ascii码
dir():
enumerate()
filter(f,list):
map(f,list):
frozenset(): 不能增加修改的集合
globals(): 所有可用变量
max:返回最大值
len: 求长度
hash(): 计算散列值
input(): 用户输入
open(): 打开文件
pow()求冥
range(i) : 拿到0到i的区间
print(): 打印
reversed(): 反转
round(): 四舍五入
sum求和
zip(list1,list2):
举几个例子:
users = ["hadoop","hive","spark"]for i in range(len(users)): print(users[i])# 可以为序列加上序号for index,item in enumerate(users,10): print(index,item)# map,你可以把lambda表达式视为一个函数nums = [11,22,33,44]newList = map(lambda a:a*2,nums)elements = list(newList)for i in range(len(elements)): print(elements[i])# filter,你可以把lambda表达式视为一个函数numberList = [11,22,33,44]result = filter(lambda a:a % 2 == 0,numberList)elements = list(result)for i in range(len(elements)): print(elements[i])# zipx = [1,2,3]y = [7,8,9]zipped = zip(x,y)newList = list(zipped)for x in range(len(newList)): print(newList[x])
结果是[(1,7),(2,8),(3,9)]
六 操作文件的函数open
作业:
- python函数之filter函数
- Python之工厂函数
- python之daemon函数
- python笔记之函数
- Python学习之函数
- python学习之函数
- Python学习之函数
- python之enumerate函数
- Python之函数
- Python 函数之seek
- python之函数
- Python学习之函数
- python函数之strip()
- Python之Split函数
- python之len函数
- 自学Python之函数
- python学习之函数
- python系列之 - 函数
- Windchill中 使用SpringMVC 对于生成的jar包,路径无法扫描
- 【SVN】Eclipse中使用Svn上传和下载代码
- 织梦dedecms 内容管理系统模板标签代码参考
- 函数opendir()、closedir()、rewinddir()、dir()和readdir()
- 数据分类流程(以titanic分类为例)
- Python之函数
- 12,数据挖掘环境搭建-hbase安装
- opencv调试方法
- 解决sublime text中文乱码的问题
- 操作系统的分类
- 【dp】POJ
- 人工智能从入门到精通(16)
- 如何用Markdown写论文?
- hibernate FetchType和FetchMode