Python经典练习题(四)

news2025/2/24 13:57:53

文章目录

  • 🍀第一题
  • 🍀第二题
  • 🍀第三题

🍀第一题

题目:打印出如下图案(菱形):
在这里插入图片描述
我们首先分析一下,本题实现的步骤主要有两个,分别是前四行和后三行

  • 前四行:第一行三空格+一*,第二行两空格+三*,第三行一空格+五*,第四行五空格+七*
  • 后三行:第一行一空格五*,第二行两空格+三*,第三行三空格+一*

这里我们就可以找到规律了,如果以行为函数的参数,我们不妨将其设定为外循环的参数

代码如下

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循环来计算每个数字的阶乘,然后将它们相加以得到最终的和。具体思路如下:

  • 创建一个函数factorial(n),它接受一个整数n作为输入,并返回n的阶乘。
  • 在主程序中,通过一个for循环遍历从1到20的所有数字,分别调用factorial()函数来计算它们的阶乘。
  • 将每个阶乘值加到一个累加器变量中,最终得到总和。

方法二:使用递归计算阶乘和求和

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)

方法二:使用递归计算阶乘和求和

这个方法使用了递归来计算每个数字的阶乘,然后将它们相加以得到最终的和。具体思路如下:

  • 创建一个函数factorial(n),它接受一个整数n作为输入,并返回n的阶乘。
  • 在factorial()函数内部,使用递归来计算阶乘。基本情况是当n为0时,阶乘为1;否则,递归调用factorial(n-1)并将结果与n相乘。
  • 在主程序中,通过一个for循环遍历从1到20的所有数字,分别调用factorial()函数来计算它们的阶乘。
  • 将每个阶乘值加到一个累加器变量中,最终得到总和。

方法三:使用预先计算好的阶乘值求和

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的所有数字的阶乘值,然后直接使用这些值来求和。具体思路如下:

  • 创建一个函数precompute_factorials(n),它接受一个整数n作为输入,并返回一个包含1到n的所有数字的阶乘值的列表。
  • 在precompute_factorials()函数内部,使用一个for循环来计算1到n的所有数字的阶乘,并将它们存储在列表中。
  • 在主程序中,调用precompute_factorials(20)来获取1到20的所有数字的阶乘值列表。
  • 使用一个for循环遍历从1到20的所有数字,直接从阶乘值列表中取出对应的阶乘值,并将它们相加以得到总和。

请添加图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构--二叉树(2)

文章目录 二叉树的存储结构二叉树的链式结构二叉树的遍历结点个数寻找二叉树的某个结点二叉树的层遍历判断是否为完全二叉树 上一节 二叉树的堆链接入口 二叉树的存储结构 对于二叉树的存储&#xff0c;有两种存储方式&#xff1a;一种是顺序存储&#xff0c;另一种是链式存储…

linux 清除卸载jenkins

1、停服务进程 查看jenkins服务是否在运行&#xff0c;如果在运行&#xff0c;停掉 查看服务 ps -ef|grep jenkins 停掉进程 kill -9 XXX2、查找安装目录 find / -name "jenkins*"3、删掉相关目录 删掉相关安装目录 rm -rf /root/.jenkins/# 删掉war包 rm -rf /…

服务断路器_Resilience4j异常比例熔断降级

给coud-consumer-feign-order80添加resilience4j依赖 修改yml文件 resilience4j.circuitbreaker:configs:default:# 熔断器打开的失败阈值failureRateThreshold: 30# 默认滑动窗口大小&#xff0c;circuitbreaker使用基于计数和时间范围欢动窗口聚合统计失败率slidingWindowS…

如何写公众号推文?公众号文章写作步骤分享

一篇优质的公众号文章&#xff0c;不仅能提升品牌知名度&#xff0c;增强用户粘性&#xff0c;还能引导潜在客户&#xff0c;实现商业价值。那么&#xff0c;如何才能写出一篇引人入胜的公众号文章呢&#xff1f;本文伯乐网络传媒将为您详细解析写公众号文章的步骤&#xff0c;…

模块接口测试

单元测试是代码正确性验证的最重要的工具&#xff0c;也是系统测试当中最重要的环节。也是唯一需要编写代码才能进行测试的一种测试方法。在标准的开发过程中&#xff0c;单元测试的代码与实际程序的代码具有同等的重要性。每一个单元测试&#xff0c;都是用来定向测试其所对应…

【笔记】Splay

【笔记】Splay 目录 简介右旋左旋 核心思想操作a. Splayb. 插入c. 删除 信息的维护例题AcWing 2437. SplayP3369 【模板】普通平衡树 简介 Splay 是一种平衡树&#xff0c;并且是一棵二叉搜索树&#xff08;BST&#xff09;。 它满足对于任意节点&#xff0c;都有左子树上任意…

fdbus之CBaseMessage

总体介绍 这个类是一个很重要的的类&#xff0c;fdbus中传递对象就是这个类的实例&#xff0c;该类中包含了很多重要的信息。可以这样理解&#xff0c;再fdbus的通信中&#xff0c;这个类的地位至关重要。他们的通信的内容就是该类定义的一些信息。 虽然CFdbBaseObject定义了…

如何进一步全面提高项目估算精准度?

项目估算非常重要&#xff0c;这直接关系着项目的成本和收入&#xff0c;如果估算不准确&#xff0c;将为项目带来较大风险。一般软件规模可以用多种方式进行估算&#xff0c;但是用功能点估算方式更准确&#xff0c;而自动估算让估算更快速&#xff0c;我们以CoCode开发的估算…

初识网络编程

一、概述 地球村&#xff1a;亦称世界村&#xff0c;是通过电子媒介将世界紧密联系起来的形象表达&#xff0c;是信息网络时代的集中体现 TCP和UDP&#xff1a; TCP&#xff1a;打电话 -->连接 -->接了 -->通话 UDP&#xff1a;发送完即可 -->接收 计算机网络&a…

QQ表情包存储位置解析

一些常见的设备和系统的QQ表情包存储位置&#xff1a; Windows系统&#xff1a; 路径&#xff1a;C:\Users[用户名]\Documents\Tencent Files[QQ号码]\Image\Image\CustomFace 在这个文件夹中&#xff0c;您可以找到所有自定义的QQ表情包。 Android系统&#xff1a; 路径&am…

程序开发常用在线工具汇总

菜鸟工具# https://c.runoob.com/ 编码# ASCII码# https://www.habaijian.com/ 在线转换# https://www.107000.com/T-Ascii/http://www.ab126.com/goju/1711.html Base64# 在线转换# https://www.qqxiuzi.cn/bianma/base64.htmhttp://www.mxcz.net/tools/Unicode.aspx …

软件架构的演化和维护

软件架构的演化和维护 定义 定义 顶不住了&#xff0c;刷题去了&#xff0c;不搞这个了&#xff0c;想吐。。。

STM32Cube 开发之读写内部Flash--电源项目ADC采样校准系数存储-实现掉电读取数据--STM32或者GD32F处理器

STM32Cube 开发之读写内部Flash–电源项目ADC采样校准系数存储-实现掉电读取数据 一、需求介绍 1.1 在进行电源项目开发中&#xff0c;输入与输出的电压电流经过硬件电路分压或者差分变换后&#xff0c;将低压的电压信号给到单片机如STM32F1系列单片机的ADC采样端口&#xff…

网速Full Power!这款4G网关信号达360度无死角

数字化转型浪潮下,如何实现可靠的无线互联成为制造企业面临的新课题。广州数智自动化最近通过部署星创SG500 4G网关,成功实现了某工业园区全域无线覆盖和多系统安全访问。 SG500支持全球主流的4G网络频段,可灵活搭配通信运营商,提供高达150Mbps的无线传输速率。它采用强大的四核…

性能压测工具:wrk

一般我们压测的时候&#xff0c;需要了解衡量系统性能的一些参数指标&#xff0c;比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线&#xff1a;P95。平均100%的请求中95%已经响应的时间 99线&#xff1a;P99。平均100%的请求中99%已经响应的时间 平…

三.vue2路由知识全总结

Vue Devtools&#xff1a;插件安装&#xff0c;展示模块中的数据 vue-router 应用场景&#xff1a;Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成&#xff0c;让用 Vue.js 构建单页应用变得轻而易举。 嵌套的路由/视图表模块化的、基于组件的路由配置路由参数、…

谷器数据参加世界制造业大会及数字化转型高峰论坛

9月20日至24日&#xff0c;由工业和信息化部、科技部、商务部、国务院国资委、中国工程院、安徽省人民政府等单位组织共同主办的2023世界制造业大会在合肥市滨湖国际会展中心盛大举行。谷器数据受邀出席&#xff0c;并同期参加”数字化转型高峰论坛”&#xff0c;与国家工信部相…

向量数据库X云计算驱动大模型落地电商行业,Zilliz联合AWS探索并贡献成熟解决方案

近日,由Zilliz 联合亚马逊云科技举办的【向量数据库 X 云计算 驱动大模型落地电商行业】活动在上海落幕,获得业内专业人士的广泛好评。 众所周知,大模型技术的发展正加速对千行万业的改革和重塑,向量数据库作为大模型的海量记忆体、云计算作为大模型的大算力平台,是大模型…

机器人中的数值优化|【五】BFGS算法非凸/非光滑处理

机器人中的数值优化|【五】BFGS算法的非凸/非光滑处理 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化&#xff0…

微信里怎么添加阅读付费链接

在微信中添加阅读付费链接为主题&#xff0c;首先需要开通微信支付商户号&#xff0c;然后创建自定义菜单&#xff0c;并设置跳转到付费链接的逻辑。以下是详细步骤&#xff1a; 注册并开通微信支付商户号 在微信开放平台上注册并开通微信支付商户号。这一步需要营业执照、法…