实验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,则这两个素数就是一对孪生素数)。例如:355c++判断素数和71113等都是孪生素数。
【提示】如果nn+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小时内删除。