作业"/>
第三次Python程序设计课程作业
代码仅供参考、学习、交流,请勿直接复制与提交,后果自负,转发请不要删去作者信息。
1、计算球的体积。编写一个计算球的体积的函数,调用该函数,计算 10-99 之 间所有为 3 的倍数的数作为半径的球的体积和。
#Auther: 叶绿体
#Time: 2021/04/27
#调用math.pi用作后续计算
import math
#规定形参为整数型
def VofBall(r:int):#直接返回(4/3)*pi*r^3return (4.0/3.0)*math.pi*(r**3);if __name__ == "__main__":#i在10-99区间内循环for i in range(10,99):#判断i是否是3的倍数if i%3 == 0:#判断为真,代入函数计算并输出返回值print(VofBall(i))
2、编写函数,计算两个数字的最大公约数,要求该函数具有两个形式参数(形 参),实际参数(实参)通过 input 函数从键盘输入。
#Auther: 叶绿体
#Time: 2021/04/27
#规定两个形参为整数
def MaxCD(x:int, y:int):#利用辗转相减法求解最大公约数r = 1while(r>=0):if x > y:r = x - yx = relif x < y:r = y - xy = relif x == y:return xif __name__ == "__main__":x = int(input())y = int(input())print(MaxCD(x, y))
3、编写函数,输出如下图所示的图形:
#Auther: 叶绿体
#Time: 2021/04/27
def triangle(r:int):#思路:循环叠层,在每一层输出所需的空格和数字#一共有r层,所以外部i从1循环到rfor i in range(1,r+1):#输出空格的数量for j in range(1,r-i+1):print(' ',end='')#输出数字的数量for k in range(0,2*i-1):print(i,end='')#结束每一层输出一个换行print()if __name__ == '__main__':#参数为5triangle(5)
4、分别用循环法和递归法编写函数,输出斐波那契数列{1,1,2,3,5,8,…}的第 15 项。
#Auther: 叶绿体
#Time: 2021/04/27
#迭代法(循环法)求解数列
def iterative(r:int):#初始值为a0、a1fnlow = 0fnup = 1#利用temp储存fnup,防止数据覆盖temp = fnupfor i in range(2,r+1):fnup = fnup + fnlowfnlow = temptemp = fnupreturn fnup#递归法(无限套娃法)求解数列
def recursive(r:int):sum = 0#两种特殊的returnif r <= 0:return 0if r == 1:return 1sum = recursive(r-1) + recursive(r-2)return sumif __name__ == '__main__':print(iterative(15))print(recursive(15))
5、实现 isPrime()函数,参数为整数,要有异常处理,如果 整数是质数,返回 True,否则返回 False。
#Auther: 叶绿体
#Time: 2021/04/27
def isPrime(x:int):#最小的素数是2,所以小于2的都是异常,抛出if x < 2:raise Exception('请输入大于1的正整数!')#预设isPrime为真isPrime = True#对x为2的特殊情况判断if x == 2:return True#其他情况进入循环判断,有余数isPrime则为假for i in range(2, int(pow(x,0.5))+1):if x%i == 0:isPrime = Falsereturn isPrimeif __name__ == '__main__':#利用try-except机制处理抛出的异常try:print(isPrime(int(input())))except Exception as e:print(e)
6、如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数,编写判断一个 3 位数是否为水仙花数的函数,并循环调用输出所有的水仙花数。
#Auther: 叶绿体
#Time: 2021/04/27
def NarN(x:int):#先对x进行异常判断并抛出if x < 100 or x > 999:raise Exception('请输入正确的三位整数!')#利用str的特性对三位数进行分割#这里也可以使用除余来获取三位数字s = str(x)#预设isNarN为假isNarN = False#如果符合水仙花数要求,那么isNarN为真if pow(int(s[0]),3) + pow(int(s[1]),3) + pow(int(s[2]),3) == x:isNarN = Truereturn isNarNif __name__ == '__main__':#利用try-except机制来处理抛出的异常try:#在三位数内循环,如果isNarN为真,输出ifor i in range(100,1000):if NarN(i):print(i)except Exception as e:print(e)
更多推荐
第三次Python程序设计课程作业
发布评论