Python教程:5道函数练习题

1、编写函数f(n),实现输入n的值,求出n的阶乘。然后调用此函数计算1! +2!+3!+……10!的结果,输出到屏幕上。
def f(n):
    count = 1;
    for i in range(1,n+1):
       count =count*i
    return count

def main():
    sum = 0   
    n = int(input("请输入一个整数n,以求1-n的阶乘之和"))
    for i in range(1,n+1):
        sum = sum + f(i)
    print(sum)

main()           
2、定义一个函数is_prime(n),判断输入的n是不是素数,是的话返回True,否则返回False。通过键盘输入两个整数X和Y,调用此函数输出两数范围之内素数的个数(包括X和Y)。
import math
def isprime(n):
    m = int(math.sqrt(n)+1)
    for i in range(2,m):
        if n%i==0:
           return False
           break
    else:
           return True
def main():
    n,m =eval(input("请输入两个数,来求这两个数之间素数的个数,逗号作为分隔符:"))
    count = 0
    for i in range (n,m+1):
        if isprime(i) == True:
            count=count+1
    print(count)               

main()
3、一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。现在请写出一个函数h(n),判断n是否为回文数,是的话返回True,否则返回False。利用上面的判断素数函数,找出所有既是回文数又是素数的3位十进制数。
import math
def isprime(n):
    m = int(math.sqrt(n)+1)
    for i in range(2,m):
        if n%i==0:
           return False
           break
    else:
           return True

def h(n):
    a = n//100
    b = n%10
    if a == b:
       return True
    else:
       return False

def main():
    print("既是素数又是回文数的3位十进制数:")   
    for i in range (100,1000):
        if isprime(i) == True:
               if h(i) == True:
                      print(i)               

main()
4.输入要过生日的人的名字,唱生日歌给他听
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def happy():
    print("Happy Birthday to you!")   
def sing(person):
       '''person must be string'''#注释
       happy()
       happy()
       print("Happy Birthday, dear",person,"!")
       happy()
person = input("请输入人名")
sing(person)
5.编写函数,接收整数参数t,返回斐波那契数列中大于t的第一个数。
def demo(t):
    a, b = 1, 1
    while b<t:
         a, b = b, a+b
    else:
         return b
def main():
    n=int(input("请输入一个整数"))
    print(demo(n))
main()

你可能感兴趣的:(python练习题,python,开发语言)