# 生成器三个方法:send,close throw

# send()发送数据 f

# def gen():

# for i in range(10):

# j=yield i

# print(j)

# g=gen()

#

# print(next(g))

# print(g.send(100))

# print(next(g))

# print(next(g))

# print(g.send(10000))

# print(next(g))

#

# close()关闭生成器

# g.close()

# print(g.send(100)) # 关闭生成器后,无法返回值

# throw() 异常方法 ---->不常用

# g.throw(Exception, "Method throw called!") # 异常类型

# g.throw(ValueError, "hello python!") # 异常信息

1. 递归函数 :自己调用自己,建议不要经常用,性能差

# def func():

# print("9999")

# func()

# func()

print("===========")

# 阶乘函数

def func(n):

if n==1: # 递归临界点:不再调用自身函数条件

return 1

else:

return n*func(n-1)

res=func(2)

print(res)

from collections import Iterator, Iterable, Generator

2. 内置函数:map filter zip

# map

# filter,过滤函数,第一个参数是函数,第二课参数是可迭代对象

def func(n):

return n > 10

li = [1, 2, 3, 444, 77, 99, 102, 345]

res = filter(func, li)

# 返回一个对象

print(res) #

print(list(res))

li2 = iter(li)

li3 = (i for i in range(5))

print(isinstance(li, Iterable)) # True

print(isinstance(li2, Iterable)) # True

print(isinstance(li3, Iterable)) # True

# map:将可迭代对象汇总的数据迭代出来,一个一个传到函数中去调用,将返回结果放到列表中

res2 = map(func, li)

# 返回一个对象

print(res2) #

print(list(res2)) # [False, False, False, True, True, True, True, True]

# zip 打包,将可迭代对象作为参数,将对象中对应的元素打包成一个个元组

res4 = zip([1, 2, 3], [11, 22, 33])

print(res4) #

print(list(res4)) # [(1, 11), (2, 22), (3, 33)]

dict1={"key1":1, "key2":2, "key3":3}

print(list(dict1.items())) # [(‘key1‘, 1), (‘key2‘, 2), (‘key3‘, 3)]

# 匿名函数

def func4(a, b):

c=a+b

print(c)

return a+b

# pep8 不介意怎么用,占用内存

l1= lambda a,b:a+b

# 这个写法跟下面一样的

#l1= (lambda a,b:a+b)(9,8)

print(l1(3,5))

# lambda 的用法

li = [1, 2, 3, 444, 77, 99, 102, 345]

res3=filter(lambda x:x<10,li)

print(list(res3)) #[1, 2, 3]

li5=[lambda x:x%5==0 for i in range(100)]

print(li5) #返回函数

# 三目运算符

a=100

if a>100:

print(100)

else:

print(22)

# 三目运算符

print(100) if a>100 else print(22)

# 偏函数

from functools import partial

ls1 = [1, 2, 3, 444, 77, 99, 102, 345]

ls2 = [1, 2, 3, 444, 77, 99, 102, 345]

ls3 = [1, 2, 3, 444, 77, 99, 102, 345]

ls4 = [1, 2, 3, 444, 77, 99, 102, 345]

filter2 =partial(filter, lambda x:x>5)

res5=filter2(ls1)

res5=filter2(ls2)

res5=filter2(ls3)

res5=filter2(ls4)

print(list(res5)) # [444, 77, 99, 102, 345]

# 作业一:利用递归函数实现斐波那契数列

def fib_seq(n):

a,b=0,1

for i in range(n+1):

a,b =b,a+b

return a

for i in range(20):

print(fib_seq(i), end=‘ ‘)

print("-----------")

# 递归法

def fib_loop(n):

assert n>=0, "n>0"

if n<=1:

return n

return fib_loop(n-1)+fib_loop(n-2)

for i in range(1,20):

print(fib_loop(i), end=" ")

print("-----------")

# 作业二:第三个月起每个月生一对兔子,小兔子涨到第三个月后每个月又生一对兔子,例如兔子都不死,问每个月的兔子总数生多少?(意味着生长期为:2)

def rabbit_number(month):

if month == 1:

return 1

elif month == 2:

return 1

elif month == 3:

return 2

else:

return rabbit_number(month - 1) + rabbit_number(month - 2)

print(‘兔子总数为{}对‘.format (rabbit_number(20)))

# 作业三:小明有100元钱,打算买100本书,A类书籍5元1本,B类书籍3元1本,C类书籍1元2本,请用程序算出小明一共有多少种买法

def Buy_book(money, book):

num = 0

for a in range(int(money / 5)):

for b in range(int(money / 3)):

for c in range(int(book + 1)):

if a * 5 + b * 3 + c * 0.5 <= book and a + b + c == book:

print(‘5元书买{}本,3元书买{}本,1元书买{}本‘.format(a, b, c))

num += 1

return num

print(‘100元钱 买100本书 共有{}中方法‘.format(Buy_book(100,100)))

#结果:100元钱 买100本书 共有129中方法

# 作业四:现在有一个列表 li = [11,21,4,55,6,67,123,54,66,9,90,56,34,22], 请将 大于5的数据过滤出来,然后除以2取余数,

li = [11,21,4,55,6,67,123,54,66,9,90,56,34,22]

def judge(n):

return n > 5

def judge2(n):

return n % 2

def judge3(li):

return map(judge2, list(filter(judge, li)))

print(list(judge3(li)))

# 作业五:有一个列表 li2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],请用上课讲的知识处理成下面的格式:

# li4 = [[1,2,3],[4,5,6],[7,8,9][10,11,12],[13,14,15]]

li2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

def conversion(li2):

li4 = iter(li2)

li3 = list(zip(li4, li4, li4))

h = 0

for i in li3:

li3[h] = list(i)

h+=1

print(li3)

a = [1,2,3]

b = [‘a‘, ‘b‘, ‘c‘]

print(list(zip(b, a)))

conversion(li2)

python通过内置函数测试对象类型_python测试开发(01-递归函数+内置函数)相关推荐

  1. python中函数type可以测试对象类型_python类型检测最终指南--Typing模块的使用

    正文共:30429 字 预计阅读时间:76分钟 原文链接:https://realpython.com/python-type-checking/ 作者:Geir Arne Hjelle 译者:陈祥安 ...

  2. python通过内置函数测试对象类型_Python的内置函数

    函数名 功能描述 示例 abs() 返回数字的绝对值 abs(-45) divmod() 把除数和余数运算结合起来,返回一个包含商和余数的元组 divmod(7,2) 返回:(3,1) raw_inp ...

  3. python中函数type可以测试对象类型_Python中type函数type()显示对象的类型,dir函数dir()显示的是对象可用的方法。_学小易找答案...

    [判断题]new_word = word.upper() 这一语句表示将word这个变量的值全部小写并赋给新变量new_word. [单选题]All of the students have fini ...

  4. Python天天美味(4) - isinstance判断对象类型

    Python中判度对象类型方法非常简单,不需要像别的语言一样使用如下的判断方法: if (typeof(objA) == typeof(String)) {     //TODO } 在Python中 ...

  5. python语言的内置对象类型_Python内置对象类型

    核心数字类型: 数字:int,long,float,complex,bool 字符:str,unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set), ...

  6. python内建函数测试对象身份_python 学习笔记day03-python基础、python对象、数字、函数...

    python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...

  7. python内建函数测试对象身份_Python学习笔记 03 Python对象

    1.Python对象 Python对象都拥有三个特性:身份.类型和值. 身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址. ...

  8. python提供的三种基本数值类型_Python 基础数据类型-数值类型

    Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...

  9. python教程从入门到实践第八章_python:从入门到实践--第八章:函数

    定义:函数是带名字的代码块,用于完成具体的工作 定义函数: def greet_user():#关键字def来告诉python你要定义一个函数,这是函数定义,以冒号结尾,括号必不可少,因为可能在括号内 ...

最新文章

  1. ​双十一剁手后,听蒋涛谈谈AI人才多么吸金:2018年社招AI人才平均月薪竟高达4万,算法红利期还有2年
  2. 网络推广——网络推广专员是如何进行图像优化的?
  3. 全量复制 增量复制 异步复制
  4. AIX的完整形式是什么?
  5. 【面向对象】面向对象程序设计测试题5-Java中的对象交互测试题
  6. Jeewx-Api 1.3.2 版本发布,微信开发SDK
  7. C语言课后习题(56)
  8. 蓝桥杯 算法训练 Sticks
  9. 文件或目录损坏无法读取
  10. CSS实现DIV悬浮
  11. 使用docker安装Jenkins教程
  12. 生成对抗网络GANs的用途
  13. 教你几招提高自媒体文章原创度
  14. 用Nodejs爬取Matrix67的博客
  15. 面试题七 C/C++ 骑士营救公主 骑士只能向右或者向下移动,遇到陷阱就死了,求骑士营救公主的所有路线-程序员面试题
  16. 联想IBM服务器X3650M3之硬盘扩容
  17. python报错就一定是有错吗_Python-什么是错误的幻数错误?
  18. alpinestars与丹尼斯_丹尼斯 VS A星,两虎相争骑士得利
  19. 本地项目上传到gitee(码云)
  20. 社会网络中新事物的传播

热门文章

  1. 程序发布以后,如何修改安装URL
  2. 牛客练习赛24 C PH试纸
  3. UESTC 914 方老师的分身I Dijkstra
  4. VC中将bmp作为资源文件写入EXE或DLL,然后内部调用(转)
  5. MYSQL到ORACLE法式迁徙的注意变乱
  6. 用jQuery的ajax的功能实现输入自动提示的功能
  7. git提交大文件的解决方法
  8. vue打包运行并解决404问题
  9. 论文|SDNE的算法原理、代码实现和在阿里凑单场景中的应用说明(附代码)
  10. 智能汽车产业148页深度研究报告:汽车智能开启,拥抱产业变革.pdf(附下载链接)...