Python练习—函数
1、编写函数f(n),实现输入n的值,求出n的阶乘。然后调用此函数计算1! +2!+3!+……10!的结果,输出到屏幕上。
1 def f(n): 2 count = 1; 3 for i in range(1,n+1): 4 count =count*i 5 return count 6 7 def main(): 8 sum = 0 9 n = int(input("请输入一个整数n,以求1-n的阶乘之和")) 10 for i in range(1,n+1): 11 sum = sum + f(i) 12 print(sum) 13 14 main()
2、定义一个函数is_prime(n),判断输入的n是不是素数,是的话返回True,否则返回False。通过键盘输入两个整数X和Y,调用此函数输出两数范围之内素数的个数(包括X和Y)。
1 import math
2 def isprime(n):
3 m = int(math.sqrt(n)+1)
4 for i in range(2,m):
5 if n%i==0:
6 return False
7 break
8 else:
9 return True
10 def main():
11 n,m =eval(input("请输入两个数,来求这两个数之间素数的个数,逗号作为分隔符:"))
12 count = 0
13 for i in range (n,m+1):
14 if isprime(i) == True:
15 count=count+1
16 print(count)
17
18 main()
3、一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。现在请写出一个函数h(n),判断n是否为回文数,是的话返回True,否则返回False。利用上面的判断素数函数,找出所有既是回文数又是素数的3位十进制数。
1 import math
2 def isprime(n):
3 m = int(math.sqrt(n)+1)
4 for i in range(2,m):
5 if n%i==0:
6 return False
7 break
8 else:
9 return True
10
11 def h(n):
12 a = n//100
13 b = n%10
14 if a == b:
15 return True
16 else:
17 return False
18
19 def main():
20 print("既是素数又是回文数的3位十进制数:")
21 for i in range (100,1000):
22 if isprime(i) == True:
23 if h(i) == True:
24 print(i)
25
26 main()
4.输入要过生日的人的名字,唱生日歌给他听
1 def happy(): 2 print("Happy Birthday to you!") 3 def sing(person): 4 '''person must be string'''#注释 5 happy() 6 happy() 7 print("Happy Birthday, dear",person,"!") 8 happy() 9 person = input("请输入人名") 10 sing(person)
5.编写函数,接收整数参数t,返回斐波那契数列中大于t的第一个数。
1 def demo(t): 2 a, b = 1, 1 3 while b<t: 4 a, b = b, a+b 5 else: 6 return b 7 def main(): 8 n=int(input("请输入一个整数")) 9 print(demo(n)) 10 main()