Python 实验8 函数1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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()

相关文档
最新文档