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

案例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 += 1
if s == 60:
m += 1
s=0
if m==60:
h += 1
m=0
if h == 24:
h=0 print("%.2d:%.2d:%.2d" %(h,m,s)) #输出
'''
请输入标准的时间,如:21:55:23----->>>:23:59:58
23:59:59
'''

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

#__author:"吉勇佳"
#date: 2018/10/14 0014
#function:迭代器的判断----isinstance from collections import Iterator print(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)) '''
输出:
False
False
False
False
False
True
2
3
4
5
'''

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

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

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

陕西省渭南市合阳县 '''

第二种:不定长传递参数,但是必须是传递一个(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 reduce
result=reduce(lambda x,y:x+y ,range(1,101))
print(result) '''
输出:
5050 相当于先把第一个和第二个数相加,得到的结果又给了第一个参数,第二个参数是第三个数,以此类推
'''

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

最新文章

  1. C# - 多线程 之 锁系统
  2. js调用php和php调用js的方法举例
  3. Efficiency Office Toolkit Clients
  4. unity5.0新功能-布料、动画系统
  5. android WebView问题
  6. [python] defaultdict
  7. C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
  8. Java Proxy
  9. hdu 1575 Tr A
  10. 如何让Vim显示dos下的^M符号
  11. 各个版本spring的jar包以及源码下载地址
  12. CStdioFile 写文件
  13. java新手笔记4 数组
  14. SQLLite 简介
  15. 把第三方的exe程序嵌入C#界面上
  16. Week1(9月12日):很激动的第一次课
  17. oracle 12c 中asm元数据是否有所变化
  18. CentOS6.8安装JDK1.7
  19. C语言递归回溯法迷宫求解
  20. Python爬虫基本原理

热门文章

  1. [转]How can I list all foreign keys referencing a given table in SQL Server?
  2. 虚拟机VirtualBox安装
  3. dev控件ASPxComboBox设置ReadOnly="true"后
  4. resize定义元素尺寸大小
  5. 2 springboot多模块项目
  6. js静态数据分页展示
  7. Code Signal_练习题_adjacentElementsProduct
  8. javaSE——File文件的操作
  9. 浏览器根对象navigator之对象属性概览
  10. Android平台接入Facebook登录