课时47:while练习_特定条件数字求和

简介: 本文围绕Python编程的几个基础练习展开讲解,涵盖求100以内所有奇数之和、100以内所有七的倍数之和及个数、1000以内的所有水仙花数,以及判断用户输入的任意数是否为质数等内容。详细阐述了每个练习的解题思路、代码实现步骤,并强调了代码编写过程中的注意事项。1. 求100以内所有奇数之和2. 求100以内所有七的倍数之和及个数3. 求1000以内的所有水仙花数4. 判断用户输入的任意数是否为质数

课时47:while练习_特定条件数字求和


摘要本文围绕Python编程的几个基础练习展开讲解,涵盖求100以内所有奇数之和、100以内所有七的倍数之和及个数、1000以内的所有水仙花数,以及判断用户输入的任意数是否为质数等内容。详细阐述了每个练习的解题思路、代码实现步骤,并强调了代码编写过程中的注意事项。

1. 求100以内所有奇数之和

2. 求100以内所有七的倍数之和及个数

3. 求1000以内的所有水仙花数

4. 判断用户输入的任意数是否为质数

 

01、 求100以内所有奇数之和

接下来看这个练习,先看练习一和练习二。先创建新文件,保存为“code_07_练习点.py”。

先看第一个练习,把题粘过来,题目是求100以内所有奇数之和。做这种题别着急,一步一步来。就算到了工作中也一样,领导或者老板给新需求,得完成。这时候要做的头一件事,就是把大需求、大问题拆成小问题。

要是你头一回做这种题,求100以内所有奇数之和没思路?先把问题细化。比如让求100以内所有奇数之和先获取100以内所有的数?这就简单了,写个循环执行100次就可以了

初始化一个变量 `i = 0`,用 `while` 循环,条件是 `i < 100`,因为要循环100次。然后 `i += 1`,每次让 `i` 自增1。再 `print(i)`,现在 `i` 就是1到100的数。执行一下,看看效果,是不是 `i` 从1到100都有了。

image.png

现在有1到100的数了,新需求是求奇数之和。先不求奇数,先求1到100所有数的和。创建变量来保存结果,就叫 `result = 0`。要求1到100的和,就把这些数一个一个加到 `result` 里。在循环里写 result += i`,意思就是把每个 `i` 累加到 `result` 里。注意,`print(result)` 要写在循环外边,不然每次循环都会打印。保存代码一执行,结果是5050。

image.png

要求的是奇数之和,所以在加之前得判断 `i` 是不是奇数。判断方法是 `i % 2 != 0`,如果不能被2整除,那就是奇数。在 `while` 循环里套个 `if` 语句,`if i % 2 != 0`,如果是奇数,再对它进行累加。保存代码一执行,结果是2500。

image.png

注意点:一是保存奇数之和的变量 `result` 要创建在循环外边,要是写里边,每次循环都会初始化,结果就不对了;二是在循环内部要判断数是不是奇数,是奇数才累加。

其实还有另一种方式获取100以内所有奇数。还是 `i = 0`,`while i < 100`,之前是 `i += 1`,现在改成 `i += 2`,让 `i` 每隔两个数累加一次。但这样从0开始,结果是2、4、6、8……让 `i` 初始值为 -1,第一次加就变成1,再加变成3,不过到最后101,不准确。

image.png

image.png

image.png

所以改成 `i = 1`,结果是3、5、7……没1了。把 `i += 2` 放到 `print(i)` 后面,先打印再自增,结果就是1、3、5、7……一直到99。这样就不用判断了,直接在这个位置对 `i` 进行累加就可以

image.png

用循环时,要调整循环次数或变量的值,注意三个位置:初始化表达式、条件表达式、更新表达式。这三个如何写,对结果影响很大,做循环时考虑清楚。

 

02、  求100以内所有七的倍数之和及个数


接下来求100以内所有七的倍数之和及个数。同理,求七的倍数之和,可以先求出100以内所有七的倍数。可以从七的最小倍数7开始,用 `while` 循环,条件是 `i < 100`,然后 `i += 7`,每次让 `i` 自增7,这样每次加起来都是七的倍数。执行代码,结果是7、14、21、28……

image.png

获取到所有七的倍数后,求它们的和。创建个变量 `result = 0`,在循环里 `result += i` 进行累加。最后打印 `result`,结果是735。

image.png

接下来求七的倍数的个数,其实就是循环执行的次数。创建个计数器,也就是一个变量 `count = 0`,循环执行一次,`count += 1`。最后打印 `总数量为:,count`,结果是14,也就是说100以内七的倍数有14个,它们的和是735。

image.png

image.png

 

03、 求1000以内的所有水仙花数


练习三是水仙花数,水仙花数是指一个 `n` 位数(`n >= 3`),它每个位上的数字的 `n` 次幂之和等于它本身。比如153,`1³ + 5³ + 3³ = 153`,那153就是水仙花数。

练习要求求出1000以内的所有水仙花数。第一步先获取1000以内的三位数,从100开始,用 `while` 循环,条件是 `i < 1000`,然后 `i += 1`。保存代码一执行,就能得到100到999的所有数。

要判断一个数是不是水仙花数,比如100,就得看 `1³ + 0³ + 0³` 等不等于100。难点是如何获取每一个位上的数字,获取到后一起求和,判断是否等于这个数本身就可以

 

04、  判断用户输入的任意数是否为质数


练习四是获取用户输入的任意数,判断其是否为质数。质数是只能被1和它自身整除的数,1既不是质数也不是合数。像2、3、5、7、11、13、17、19这些都是质数,它们的因数只有1和它本身。比如6,除了1和6,还能被2和3整除,就不是质数。关键是怎么去判断这个数是否是质数,这道题稍微有点难度,思考一下如何处理。


相关文章
QGS
|
存储 NoSQL Java
手拉手Centos7安装配置Redis7
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
QGS
709 0
|
Java Scala
Scala 异常处理
Scala 异常处理
178 1
|
10月前
|
存储 人工智能 测试技术
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
141683 29
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
|
9月前
|
弹性计算 调度 云计算
课时27:案例分享——追光动画
案例分享——追光动画 本文分享了追光动画如何计算8000万核小时的渲染时间,以及通过任务调度和云计算应对制作过程中的波峰波谷。在动画制作中,灯光、合成等部门需反复渲染,总渲染量达8000万核小时的4-5倍。为解决波峰压力,追光动画与阿里云合作,利用其弹性资源,确保高效渲染和快速迭代,满足高画质需求并降低成本。
227 1
|
弹性计算 运维 搜索推荐
幻兽帕鲁内存溢出怎么办,一键设置定时重启,修改虚拟内存,定时清理,轻松解决卡顿!再也不怕爆内存了!
幻兽帕鲁的内存溢出问题,玩久了确实会变卡。这里给出三个解决思路:第一种方法是定时进行内存清理(装个软件就可以),网上也有很多教程,我会把下载地址放在文章后面,大家可以去下载。第二种方法是调大虚拟内存,这个可以一键设置。第三种方法是定时重启游戏服务,这个也可以一键设置。这三种方法我下面都会教给大家,可以有效解决内存增长过快的问题,避免游戏卡顿甚至崩溃。
1102 3
|
11月前
|
人工智能 API UED
AI智能体再进化,工作流怎么玩?阿里云百炼上手教程
本次分享由讲师林粒粒呀介绍如何快速制作AI智能工具,特别是利用阿里云百炼平台创建工作流。通过简单的拖拽操作,小白用户也能轻松上手,实现从PPT主题到大纲的自动生成,并能一次性生成多个版本。借助API和Python脚本,还可以将Markdown格式的大纲转换为本地PPT文件。整个流程展示了AI智能体在实际应用中的高效性和实用性,帮助用户大幅提升工作效率。
1870 32
|
存储 人工智能 文字识别
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
本文介绍了纸质档案数字化的技术流程,包括高精度扫描、图像预处理、自动边界检测与切割、文字与图片分离抽取、档案识别与文本提取,以及识别结果的自动保存。通过去噪、增强对比度、校正倾斜等预处理技术,提高图像质量,确保OCR识别的准确性。平台还支持多字体识别、批量处理和结构化存储,实现了高效、准确的档案数字化。具体应用案例显示,该技术在江西省某地质资料档案馆中显著提升了档案管理的效率和质量。
1462 1
|
缓存 安全 Java
Elasticsearch—生产环境集群核心配置
Elasticsearch—生产环境集群核心配置
302 0
|
缓存 自然语言处理 JavaScript
Web服务器的动态内容生成与处理
【8月更文第28天】在Web开发领域,动态内容生成是指根据用户请求实时生成页面内容的过程。这与静态内容生成不同,后者的内容在部署时就已经确定,不会随用户的请求而改变。动态内容生成通常依赖于服务器端脚本语言,例如PHP、Node.js等,它们能够根据不同的请求参数生成特定的响应数据。本文将探讨几种流行的服务器端脚本语言在动态网页生成中的作用及其优化方法,并提供相应的代码示例。
470 0
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
702 0

热门文章

最新文章