博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【4】python函数基础
阅读量:5748 次
发布时间:2019-06-18

本文共 2379 字,大约阅读时间需要 7 分钟。

---恢复内容开始---

案例1:时间下一秒程序

#__author:"吉勇佳"#date: 2018/10/14 0014#function:timestr=input("请输入标准的时间,如:21:55:23----->>>:23")timeList=timestr.split(":")h = int(timeList[0])m = int(timeList[1])s = int(timeList[2])s += 1if s == 60:    m += 1    s=0    if m==60:        h += 1        m=0        if h == 24:            h=0print("%.2d:%.2d:%.2d" %(h,m,s))#输出'''请输入标准的时间,如:21:55:23----->>>:23:59:5823:59:59'''

案例2:迭代器的判断与是否可以使用next

#__author:"吉勇佳"#date: 2018/10/14 0014#function:迭代器的判断----isinstancefrom collections import Iteratorprint(isinstance("",Iterator))print(isinstance([],Iterator))print(isinstance((),Iterator))print(isinstance({},Iterator))print(isinstance((),Iterator))print(isinstance((x for x in range(2,10)),Iterator))l=(x for x in range(2,10))print(next(l))print(next(l))print(next(l))print(next(l))'''输出:FalseFalseFalseFalseFalseTrue2345'''

 

 两种不定长参数的方法比较。

案例1:第一种不定长传递参数

def fun1(name,*others):    print(name)    for i in others:        print(i)fun1("jiajia",22,"男","陕西省渭南市合阳县")'''输出:jiajia22男陕西省渭南市合阳县'''

第二种:不定长传递参数,但是必须是传递一个(x=1,y=2)这种的,在内部转化为字典

def  fun2(**kwargs):    print(kwargs)fun2(a=1,b=2,c=3)'''输出:{'a': 1, 'b': 2, 'c': 3}传入以下时候报错。fun2(1,2,3)'''

其中:**代表的是键值对的表示方式。

 

案例2:匿名函数---lambda

(1)lambda表达式1

'''特点:1、是一个表达式,比较简洁。2、不是一个代码块,而是一个表达式,是可以实现一些简繁的逻辑的'''# Num1:直接进行传值的方式print((lambda x,y:x+y)(2,3))'''输出:5'''# num2:# 例如:一个整数列表,要求按照列表中元素的绝对值大小升序排列list1 = [3,5,-4,-1,0,-2,-6]sorted(list1, key=lambda x: abs(x))# [0, -1, -2, 3, -4, 5, -6]'''同理:排序函数sorted支持接收一个函数作为参数,该参数作为 sorted的排序依据,这里按照列表元素的绝对值进行排序。当然,我也可以用普通函数来实现:'''def foo(x):    return abs(x)sorted(list1, key=foo)# [0, -1, -2, 3, -4, 5, -6]# 只不过是这种方式代码看起来不够 Pythonic 而已。

 

(一)、map函数

map函数代码原型

map(function,sequence):把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。

如果function有两个参数,即map(function,sequence1,sequence2)。

#求1~20的平方 list(map(lambda x:x*x,range(1,21))) #Python2.x使用map(lambda x:x*x,range(1,21))[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]

 

(二)、filter函数

#求1~20之间的偶数 list(filter(lambda x:x%2 == 0,range(1,21))) #Python2.x使用filter(lambda x:x%2 == 0,range(1,21))[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

 

(三)、reduce函数

需要引入包:

from functools import reduce
# reduce 函数from functools import reduceresult=reduce(lambda x,y:x+y ,range(1,101))print(result)'''输出:5050相当于先把第一个和第二个数相加,得到的结果又给了第一个参数,第二个参数是第三个数,以此类推'''

 

 

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/jiyongjia/p/9787646.html

你可能感兴趣的文章
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
chm文件打开,有目录无内容
查看>>
whereis、find、which、locate的区别
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
nagios监控windows 改了NSclient++默认端口 注意事项
查看>>
干货 | JAVA代码引起的NATIVE野指针问题(上)
查看>>
POI getDataFormat() 格式对照
查看>>
好的产品原型具有哪些特点?
查看>>
实现java导出文件弹出下载框让用户选择路径
查看>>
刨根问底--技术--jsoup登陆网站
查看>>
OSChina 五一劳动节乱弹 ——女孩子晚上不要出门,发生了这样的事情
查看>>
Spring--通过注解来配置bean
查看>>
pandas 十分钟入门
查看>>
nginx rewrite
查看>>