(1)求各个阶乘的和
求1+2!+3!+...+20!的和。
tip1: 递归
# 求各个阶乘的和 # 求1+2!+3!+...+20!的和。 #递归 #递归条件: n! = n*(n-1) #结束条件: n = 1 sum = 0 for i in range(1,21): def f(n): if n == 0 or n == 1: return 1 else: return n*f(n-1) sum += f(i) print(sum)
tip2: 内置函数 factorial
#tip2: 内置函数-factorial import math sum = 0 for i in range(1,21): sum += math.factorial(i) print(sum)
Python 内置函数
factorial
是用来计算一个非负整数的阶乘,即 n! 的值。用法如下:
import math math.factorial(n)
其中,
n
表示要计算阶乘的非负整数。示例:
import math result = math.factorial(5) print(result) # 输出 120
注意,如果你传入的不是整数或负数,会抛出
ValueError
异常。
(2)年龄急转弯
问第五个人多少岁? 他有5个人坐在一起,i说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
# 年龄急转弯 # 问第五个人多少岁? 他有5个人坐在一起,i说比第4个人大2岁。 # 问第4个人岁数,他说比第3个人大2岁。 # 问第三个人,又说比第2人大两岁。 # 问第2个人,说比第一个人大两岁。 # 最后问第一个人,他说是10岁。 # 请问第五个人多大? def age(n): for i in range(1, 6): #终止条件 if n == 1: return 10 #递归条件 else: return 2 + age(n-1) print(age(5))
(3)判断回文数
输入一个数,判断它是不是回文数。12321是回文数,个位与万位相同,十位与千位相司
# 判断回文数 # 输入一个数,判断它是不是回文数。 # 12321是回文数,个位与万位相同,一位与千位相同 a = input("请输入一个数字:") b = a[::-1]#通过切片操作将字符串反转 if a==b : print("它是回文数")
(4)判断星期几
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。星期一 Monday、星期二 Tuesday、星期三 Wednesday、星期四 Thursday、星期五 Friday 、星期六 Saturday、星期日Sunday.
# 判断星期几 # 请输入星期几的第一个字母来判断一下是星期几, # 如果第一个字母一样,则继续判断第二个字母。 # 星期一 Monday、星期二 Tuesday、星期三 Wednesday、 # 星期四 Thursday、星期五 Friday 、星期六 Saturday、星期日Sunday. a = input("请输入周几:") if a == "M": print("是周一") if a == "T": b = input("请输入第二个字母") if b == "u": print("是周二") elif b == "h": print("是周四") else: print("输入有误") elif a == "W": print("是周三") elif a == "F": print("是周五") elif a == "S": b = input("请输入第二个字母:") if b == "a": print("是周六") elif b =="u": print("是周日") else: print("输入有误!") else: print("输入有误!")