疯狂Python讲义Unit5Test

本文深入探讨了Python的单元测试框架Unit5Test,详细介绍了如何编写测试用例、断言方法以及测试套件的组织。通过实例解析,帮助读者理解如何有效地进行代码测试,确保软件质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python3

# Test1.定义一个函数,该函数可接收一个list作为参数,该函数使用直接选择排序对list排序
# 直接排序:重复的访问序列(len-1)次,每次选出一个最小或者最大的数字并放在截取序列的首位(与首位的值做比较),数列的访问比较范围依次减少:每次从i遍历到到len-1(i累加)
def pureSort(list):
    lens=len(list)
    for i in range(lens-1):
        minPos=i # 此时的i为当前访问序列的首位,即本轮需要选出最小的数字
        for j in range(i,lens-1): #从当前i遍历到lens-1(下面j+1相当于遍历到lens),每次和minPos比较序列的值,若小于minPos,则交换索引
            if list[j+1]<list[minPos]:
                minPos=j+1
        list[minPos],list[i]=list[i],list[minPos] # 每轮比较结束交换最小值
list1=[99,2,1,3,4,10,5,9,7]
pureSort(list1)
print(list1)
# Test2.定义一个函数,该函数可接收一个list作为参数,该函数使用冒泡排序对list排序
# 冒泡排序:重复的走访序列(len-1)次,依次比较两个相邻元素的大小(len-i-1),如果顺序错误就将他们调换过来。i为走访轮数
k=0
def bubbleSort(list):
    length=len(list)
    global k
    for i in range(length-1):
        for j in range(length-i-1):
            k=k+1
            if list[j]>list[j+1]:
                list[j],list[j+1]=list[j+1],list[j]
    return list
list2=[99,2,1,3,4,10,3,11]
print(bubbleSort(list2))
print(k)
# Test3:定义一个 isleap(year)函数,该函数可判断year是否为闰年。若是闰年,则返回 True;否,则返回False
def isleap(year):
    if year % 100 == 0:# 整除100的数字能整除400则是闰年
        if year % 400 ==0:
            return True
    elif year % 4 == 0:# 不整除100的整除4则是闰年
        return True
print(isleap(2004))
print(isleap(2003))
# Test4:定义一个函数,该函数返回参数字符串中包含多少个数字、多少个英文字母、多少个空白字符、多少个其他字符
def count_str_char(str):
    x,y,z,k =0,0,0,0
    for i in str:
        if i.isdigit():# 判断数字
            x+=1
        elif i.encode('utf-8').isalpha():# 判断字母
            y+=1
        elif i.isspace():# 判断空白
            k+=1
        else:
            k+=1
    return [x,y,k,z]
print(count_str_char('qwe12 ..'))
# Test5:定义一个函数,该函数返回1~n的立方和,即求1+2*2*2+3*3*3+…+n*n*n
def countCube(n):
    sum=0
    for i in range(n+1):
        sum+=i*i*i
    return sum
print(countCube(1))
# Test6:定义一个函数,该函数返回n!的阶乘
def sumFactorial1(n):
    if n==0:
        return 1
    else:
        return n*sumFactorial1(n-1)
print(sumFactorial1(3))
# 方法二
def sumFactorial2(n):
    if n==0:
        return 1
    else:
        multiply=1
        for i in range(1,n+1):
            multiply=multiply*i
        return multiply
print(sumFactorial2(3))
# Test6+:n!(阶乘)和
def sumFactorial(n):
    if n==0:
        return 1
    else:
        sum=0
        for i in range(1,n+1):
            multiply = 1
            for j in range(1,i+1):
                multiply = multiply*j
            print('multiply', multiply)
            sum+=multiply
    return sum
print(sumFactorial(3))
# Test7:定义一个函数,该函数可接收一个list作为参数,该函数用于去除list中重复的元素
def removeMulitplyStr(list):
    temp=[]
    for i in list:
        if i not in temp:
            temp.append(i)
    return temp
print(removeMulitplyStr([1,1,2,2,'a','a','b','b',1]))
# Test8:定义一个函数,该函数返回一个包含n个不重复的O~100之间整数的元组
import random
def randomInt(n):
    tempList=[]
    for i in range(n):
        while True:
            num=int(random.randint(0,100))
            if num not in tempList:
                tempList.append(num)
                break
    return tuple(tempList)
print(randomInt(10))
# Test9:定义一个函数,该函数返回一个包含n个不重复的大写字母的元组
def randomStr(n):
    templeList=[]
    for i in range(n):
        while True:
            chars= chr(random.randint(65, 91))
            if chars not in templeList:
                templeList.append(chars)
                break
    return templeList
print(randomStr(10))
# Test10:定义一个函数,其中n表示输入n行n列的矩阵(数的方阵).在输出时,先输出 n行n列的矩阵,再输出该矩阵的转置形式
temp=[]
def matrix(n):
    for i in range(n):
        for j in range(n):
            print("%2d"%(i*n+j+1),end=' ')# 进制
        print()
    for i in range(n):
        for j in range(n):
            print("%2d"%(j*n+i+1), end=' ')# 进制
        print()

matrix(4)
# 方法二
def matrix1(n,function):
    list=[]
    for i in range(n):
        list.append([0]*n)
    def origin():
        for i in range(n):
            for j in range(n):
                pass
                list[i][j]=i*n+j+1
        printList()
    def zhuanzhi():
        for i in range(n):
            for j in range(n):
                pass
                list[i][j] = j*n+i+1
        printList()
    def printList():
        for i in range(n):
            for j in range(n):
                print("%2d"%(list[i][j]),end=" ")
            print()
    if function==0:
        return origin
    elif function==1:
        return zhuanzhi

matrix1(4,0)()
matrix1(4,1)()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值