Python 实验8 函数1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8 函数(一)实验目的:
1、理解自定义函数过程的定义与调用方法;
2、掌握自定义函数的定义与调用方法;
3、理解函数中的参数的作用;
实验内容:
1、编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。While循环
def fib(n):
if n==1 or n==2:
return 1
a=1
b=1
i=2
while True:
c=a+b
a=b
b=c
i+=1 #第i次迭代,也就就是第i个数
if i==n:
return c
break
def main():
n=input("Enter a number of generation:")
print fib(n)
main() 或者用for循环
def fib(n):
a=1
b=1
c=0
if n==1 or n==2:
return 1
else:
for i in range(3,n+1):
c=a+b
a=b
b=c
return c
def main():
n=input("enter n:")
print fib(n)
main()
2、编写一函数Prime(n),对于已知正整数n,判断该数就是否为素数,如果就是素数,返回True,否则返回
False。
def prime(n):
if n<2:
return False
a=0
for i in range(1,n+1):
if n%i==0:
a+=1
if a>2:
return False
else:
return True
def main():
n=input("Enter a number:")
print prime(n)
main() Or:
def prime(n):
if n<2:
return False
if n==2:
return True
for i in range(2,n):
if n%i==0:
return False
return True
def main():
n=input("Enter a number:")
print prime(n)
main()
3、利用上题中判断素数的函数,编写程序找出1~100之间的所有孪生素数(若两个素数之差为2,则这两个素数就就是一对孪生素数)。例如:3与5、5与7、11与13等都就是孪生素数。
【提示】如果n 与n+2都就是素数,那就就是孪生素数。
def prime(n):
if n<2:
return False
if n==2:
return True
for i in range(2,n):
if n%i==0:
return False
return True
def main():
for i in range(1,100):
if prime(i) and prime(i+2):
print i,i+2
main()
4、 求润年Leapyear(n),输入年份,统计该年就是不就是润年,如果就是润年,返回True;否则返回False 。 def leapyear(n):
if n%4==0 and n%100!=0 or n%400==0:
return True
else:
return False
def main():
n=input("Enter the year:")
print leapyear(n)
main()
5、 计算三角形面积函数,TriangleArea(a,b,c),其中a,b,c 为分别为三角形三条边,面积公式为
)(2
1))()((z y x c z c y c x c c area ++=---=。 def TriangleArea(a,b,c):
C=0、5*(a+b+c)
area=(C*(C-a)*(C-b)*(C-c))**0、5
return area
def main():
a,b,c=input("enter three lengths:")
print TriangleArea(a,b,c)
main()
6、思考题、豆堆
堆里有16颗豆子,有两个玩家(假设一个玩家就是电脑)。每个玩家都可以从堆中的16颗豆子中取出1颗,2颗或者3颗豆子。每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后一颗豆子的玩家就是输家。
思路:
写一个人取豆子的函数
帮电脑设计一个算法,实现取豆子的函数
在主程序中进行输流调用,谁最后拿到1粒豆子谁就输
import random
def pp(n):
while True:
num=input("Pick some beans, only 1,2 or 3:")
if num<1 or num>3:
print "Wrong, try again、"
continue
return n-num
def cp(n):
if n==4:
return 3
if n==3:
return 2
if n==2:
return 1
else:
i=random、randint(1,3)
return i
def main():
total=16
while True:
ppickrest=pp(total)
cpick=cp(ppickrest)
total=ppickrest-cpick
if ppickrest==1:
print "people win"
break
print "comp=%d, rest=%d"%(cpick,total)
if total==1:
print "computer win"
break
main()