python测试开发(01-递归函数+内置函数)

# 生成器三个方法: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)  # <filter object at 0x10e58d5c0>

print(list(res))

li2 = iter(li)li3 = (i for i in range(5))

print(isinstance(li, Iterable))  # Trueprint(isinstance(li2, Iterable))  # Trueprint(isinstance(li3, Iterable))  # True

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

res2 = map(func, li)# 返回一个对象print(res2)  # <map object at 0x10666a3c8>print(list(res2))  # [False, False, False, True, True, True, True, True]

# zip  打包,将可迭代对象作为参数,将对象中对应的元素打包成一个个元组res4 = zip([1, 2, 3], [11, 22, 33])print(res4)  # <zip object at 0x10466e7c8>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=100if a>100:    print(100)else:    print(22)

# 三目运算符print(100) if a>100 else print(22)

# 偏函数from functools import partialls1 = [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 numprint(‘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)


原文地址:https://www.cnblogs.com/vivian0119/p/12019795.html

时间: 2025-01-07 12:34:56

python测试开发(01-递归函数+内置函数)的相关文章

python&#39;s fourthday for me 内置函数

locals:  函数会以字典的类型返回当前位置的全部局部变量. globals:  函数会以字典的了类型返回全部的全局变量. a = 1 def func(): b = 2 print(locals()) print(globals()) func() 字符串类型的代码执行:eval, exec, complie eval: 执行字符串类型的代码,并返回最终结果. print(eval('2+2')) # 4 n = 4 print(eval('n+4')) # 8 eval('print(6

python基础12_匿名_内置函数

一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66] def binary_search(dataset, find_num): print(dataset) if len(dataset) > 1: mid = int(len(dataset) / 2) if dataset[mid] == find_num: # find it print

Python开发基础 day10 内置函数 匿名函数 递归

匿名函数lambda 匿名函数:lambda  x,y:x+y 上述解释:x,y分别是函数的参数,x+y是函数的返回值 匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b). 因为lamdba在创建时不需要命名,所以叫匿名函数 等同于普通函数: 1 2 def test(x,y):     return x+y 匿名函数只是没有函数名,主要是配合内置函数使用 示例1: 1 2 3 4 5 6 7 8 9 10 #

14 python初学(高阶函数 递归函数 内置函数)

高阶函数:1.  函数名是一个变量,函数名可以进行赋值 2. 函数名可以作为函数参数,还可以作为函数返回值(函数名称作为函数返回值时返回的是:函数的地址:print 这个返回值的调用相当于执行这个函数. 函数调用作为函数返回值相当于返回这个函数的执行结果) def f(n): return n*n def foo(a, b, func): return func(a)+func(b) print(foo(1, 2, f)) # >>> 5 递归函数: 调用自身函数 设置结束条件 每次进入

python补充最常见的内置函数

最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2.6)                       # 四舍五入取整,也就是3.0 pow(2, 3)                        # 相当于2**3,如果是pow(2, 3, 5),相当于2**3 % 5 cmp(2.3, 3.2)                   # 比较两个数的大小

[python] 之all()和any()内置函数

在python 2.5版本以上开始引入,其基本使用方法如下: 一.all()内置函数 语法:all(iter) 说明: 1. iter为可迭代对象,比如列表,元组,字符串... 2. 若iter中的每一个元素(全部)都为布尔真(或布尔值意味着False的一些元素,比如'0','False',空字符' ' 等)时,返回True 3. 空的列表或元组,也返回True 二.any()内置函数 语法:any(iter) 说明: 1. iter为可迭代对象,比如列表,元组,字符串... 2. 若iter中

Python之lambda表达式和内置函数

lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式: def  func(arg):       return arg +1 result = func(100) print result 101 以上函数用lambda表达式可以这么写: func2 = lambda a: a+1 result = func2(100) print result 在lambda表达式中,func2 相当于函数表达式中的func,即函数的

Python基础(七)内置函数

今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. 1 2 3 4 5 6 print(abs(-18))          print(abs(0.15)) result: 18 0.15 2.all(iterable) 如果iterable的所有元素不为0.''.False或者iterable为空,all(iterable)返回True,否则返回False

python学习之路-4 内置函数和装饰器

本篇涉及内容 内置函数 装饰器 内置函数 callable()   判断对象是否可以被调用,返回一个布尔值 1 2 3 4 5 6 7 8 9 10 11 num = 10 print(callable(num))   # num不能够被调用,返回False    def f1():     print("name")    print(callable(f1))     # f1可以被调用,返回True    # 输出 False True ?chr()   将十进制整数转换为asc

Python自学之路——Python基础(四)内置函数

对上表一些比较重要常用的内置函数做一个整理 chr()与ord()     chr()是将ASCII中十进制编号转换成相应的字符,而ord()刚好相反 c = chr(49) o = ord('1') print(c) print(o) 输出结果: 1 49 知道了chr()的基本用法,可以利用它来生成一个字母验证码,因为验证码都是随机生成的,所以这里要涉及到random模块.在ASCII中,大写字母的十进制编号是从65到90. 小写字母是97到122 1 import random 2 li