python每日一练(8)

简介: python每日一练(8)

(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("输入有误!")

目录
相关文章
|
6月前
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
103 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
6月前
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
68 0
Linux 终端命令之文件浏览(3) less
|
6月前
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
200 0
Rust 编程小技巧摘选(8)
|
6月前
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
63 0
力扣 C++|一题多解之动态规划专题(1)
|
6月前
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
56 0
Python Numpy入门基础(二)数组操作
|
6月前
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
49 0
力扣C++|一题多解之数学题专场(1)
|
6月前
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
58 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
6月前
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
62 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
6月前
|
Java Go C++
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
85 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
6月前
|
Java Go Rust
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
85 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II