题目:打印出如下图案(菱形):

我们首先分析一下,本题实现的步骤主要有两个,分别是前四行和后三行
这里我们就可以找到规律了,如果以行为函数的参数,我们不妨将其设定为外循环的参数
代码如下
def f1(rowup): # 前四行
for i in range(rowup):
for j in range(rowup - i):
print(' ',end='')
for k in range(2 * i +1):
print("*",end='')
print()
def f2(rowdown): # 后三行
for i in range(rowdown):
for j in range(i + 2):
print(" ",end='')
for k in range(5- 2 * i):
print("*",end='')
print()
运行结果

有一分数序列:2/1,3/2,5/3,8/5, 13/8,21/13…求出这个数列的前20项之和。
def generate_fibonacci(n):
fib = [0, 1] # 初始化斐波那契数列的前两项
while len(fib) < n:
next_fib = fib[-1] + fib[-2] # 计算下一项
fib.append(next_fib) # 将下一项添加到列表中
return fib
# 生成斐波那契数列的前n项
n = 23 # 你可以替换成任何你想要的项数
fibonacci_sequence = generate_fibonacci(n)
sum_numbers= []
for i in range(20):
result = float(fibonacci_sequence[3:][i] / fibonacci_sequence[2:][i])
sum_numbers.append(result)
print(sum(sum_numbers))
本题我的思路采用列表切片,看起来有点傻,但是能做出来就是好滴
运行结果如下

题目:求1+2!+3!+…+20!的和。
本题采用三种方法进行求解
方法一:使用循环计算阶乘和求和
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
n = 20
total = sum(factorial(i) for i in range(1, n + 1))
print("方法一的结果:", total)
方法一:使用循环计算阶乘和求和
这个方法使用了一个for循环来计算每个数字的阶乘,然后将它们相加以得到最终的和。具体思路如下:
方法二:使用递归计算阶乘和求和
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
n = 20
total = sum(factorial(i) for i in range(1, n + 1))
print("方法二的结果:", total)
方法二:使用递归计算阶乘和求和
这个方法使用了递归来计算每个数字的阶乘,然后将它们相加以得到最终的和。具体思路如下:
方法三:使用预先计算好的阶乘值求和
def precompute_factorials(n):
factorials = [1]
for i in range(1, n + 1):
factorials.append(factorials[-1] * i)
return factorials
n = 20
factorials = precompute_factorials(n)
total = sum(factorials[i] for i in range(1, n + 1))
print("方法三的结果:", total)
方法三:使用预先计算好的阶乘值求和
这个方法首先预先计算了1到20的所有数字的阶乘值,然后直接使用这些值来求和。具体思路如下:

挑战与创造都是很痛苦的,但是很充实。