实验11 函数(二)
实验目的:
1、 理解自定义函数过程的定义和调用方法;
2、 掌握自定义函数的定义和调用方法;
3、 理解函数中的参数的作用;
实验内容:
1、编写一函数Prime(n),对于已知正整数n,判断该数是否为素数,如果是素数,返回True,否则返回False。
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
break
return True
def main():
n=input("Enter a number:")
print prime(n)
main()
2、利用上题中判断素数的函数,编写程序出1~100之间的所有孪生素数(若两个素数之差为2,则这两个素数就是一对孪生素数)。例如:3和5、5c++判断素数和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)==True and prime(i+2)==True:
print i,i+2
main()
3、编写一函数,将摄氏温度与华氏温度互转。
公式:C*1.8+32=F
def c2f(char):
if char[-1]=="f" or char[-1]=="F":
v=(float(char[:-1])-32)/1.8
else:
v=float(char[:-1])*1.8+32
return v
def main():
char=raw_input("Enter a temperature with a unit:")
if char[-1]=="f" or char[-1]=="F":
print c2f(char),"c"
else:
print c2f(char),"f"
main()
4、 思考题.豆堆
堆里有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()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论