Python 实验8 函数(1) 下载本文

实验8 函数(一)

实验目的:

1、 理解自定义函数过程的定义和调用方法; 2、 掌握自定义函数的定义和调用方法; 3、 理解函数中的参数的作用;

实验内容:

1、 编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。

While循环 def fib(n): 或者用for循环 if n==1 or n==2: def fib(n): return 1 a=1 a=1 b=1 b=1 c=0 i=2 if n==1 or n==2: while True: return 1 c=a+b else: a=b for i in range(3,n+1): b=c c=a+b i+=1 #第i次迭代,也就是第i个数 a=b if i==n: b=c return c return c break def main(): def main(): n=input(\ n=input(\ print fib(n) print fib(n) main() main()

2、 编写一函数Prime(n),对于已知正整数n,判断该数是否为素数,如果是素数,返回True,否则返回

False。

def prime(n): Or: if n<2: def prime(n): return False if n<2: a=0 return False for i in range(1,n+1): if n==2: if n%i==0: return True a+=1 for i in range(2,n): if a>2: if n%i==0: return False return False else: return True return True def main(): def main(): n=input(\ n=input(\ print prime(n) print prime(n) main() 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 n0!=0 or n@0==0: return True else:

return False def main():

n=input(\ print leapyear(n) main()

5、 计算三角形面积函数,TriangleArea(a,b,c),其中a,b,c为分别为三角形三条边,面积公式为

1area?c(c?x)(c?y)(c?z)c?(x?y?z)。

2def 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(\ print TriangleArea(a,b,c) main()

6、 思考题.豆堆

堆里有16颗豆子,有两个玩家(假设一个玩家是电脑)。每个玩家都可以从堆中的16颗豆子中取出1颗,2颗或者3颗豆子。每个玩家在每回合中必须从堆中取出一定数目的豆子。玩家轮流取出豆子,取到最后一颗豆子的玩家是输家。 思路:

写一个人取豆子的函数

帮电脑设计一个算法,实现取豆子的函数

在主程序中进行输流调用,谁最后拿到1粒豆子谁就输

import random def pp(n):

while True:

num=input(\ if num<1 or num>3:

print \ 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 \ break

print \ if total==1:

print \ break

main()