python实验八答案_Python实验8函数(1).doc-资源下载人人文库网

Python 实验8 函数(1).doc

实验8 函数(一)实验目的:1、 理解自定义函数过程的定义和调用方法;2、 掌握自定义函数的定义和调用方法;3、 理解函数中的参数的作用;实验内容:1、 编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。While循环def fib(n):if n=1 or n=2:return 1a=1b=1i=2while True:c=a+ba=bb=ci+=1 #第i次迭代,也就是第i个数if i=n:return cbreakdef main():n=input(Enter a number of generation:)print fib(n)main()或者用for循环def fib(n):a=1b=1c=0if n=1 or n=2:return 1else:for i in range(3,n+1):c=a+ba=bb=creturn cdef main():n=input(enter n:)print fib(n)main()2、 编写一函数Prime(n),对于已知正整数n,判断该数是否为素数,如果是素数,返回True,否则返回False。def prime(n):if n2:return Falsea=0for i in range(1,n+1):if n%i=0:a+=1if a2:return Falseelse:return Truedef main():n=input(Enter a number:)print prime(n) main()Or:def prime(n):if n2:return Falseif n=2:return Truefor i in range(2,n):if n%i=0:return Falsereturn Truedef main():n=input(Enter a number:)print prime(n) main()3、利用上题中判断素数的函数,编写程序找出1100之间的所有孪生素数(若两个素数之差为2,则这两个素数就是一对孪生素数)。例如:3和5、5和7、11和13等都是孪生素数。【提示】如果n和n+2都是素数,那就是孪生素数。def prime(n):if n2:return Falseif n=2:return Truefor i in range(2,n):if n%i=0:return Falsereturn Truedef main():for i in range(1,100):if prime(i) and prime(i+2):print i,i+2main()4、 求润年Leapyear(n),输入年份,统计该年是不是润年,如果是润年,返回True;否则返回False。def leapyear(n):if n%4=0 and n%100!=0 or n%400=0:return Trueelse:return Falsedef main():n=input(Enter the year:)print leapyear(n)main()5、 计算三角形面积函数,TriangleArea(a,b,c),其中a,b,c为分别为三角形三条边,面积公式为。def TriangleArea(a,b,c):C=0.5*(a+b+c)area=(C*(C-a)*(C-b)*(C-c)*0.5return areadef main():a,b,c=input(enter three lengths:)print TriangleArea(a,b,c)main()6、 思考题.豆堆堆里有16颗豆子,有两个玩家(假设一个玩家是电脑)。每个玩家都可以从堆中的16颗豆子中取出1颗,2颗或者3颗豆子。每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后一颗豆子的玩家是输家。 思路: 写一个人取豆子的函数 帮电脑设计一个算法,实现取豆子的函数 在主程序中进行输流调用,谁最后拿到1粒豆子谁就输import randomdef pp(n):while True:num=input(Pick some beans, only 1,2 or 3:)if num1 or num3:print Wrong, try again.continuereturn n-numdef cp(n):if n=4:return 3if n=3:return 2if n=2:return 1else:i=random.randint(1,3)return idef main():total=16while True:ppickrest=pp(total)cpick=cp(ppickrest)total=ppickrest-cpickif ppickrest=1:print people winbreakprint comp=%d, rest=%d%(cpick,total)if total=1:print computer winbreakmain()【此文档部分内容来源于网络,如有侵权请告知删除,本文档可自行编辑和修改内容,感谢您的支持!】可编辑word,供参考版

你可能感兴趣的:(python实验八答案)