当前位置: 首页 > news >正文

4. python练习题4-水仙花数

4. python练习题4-水仙花数

【目录】

文章目录

  • 4. python练习题4-水仙花数
    • 1. 目标任务
    • 2. 水仙花数的特点
    • 3. 如何判断一个数是否是水仙花数?
    • 4. 打印3位水仙花数
    • 5. 判断一个数是不是水仙花数
    • 6. 列表推导式
    • 6. 列表推导式判断一个数是不是水仙花数

【正文】

1. 目标任务

水仙花数是三位数,其各位数字立方和等于该数本身,请打印所有水仙花数。

2. 水仙花数的特点

水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

【三位水仙花数的特点】

  • 一个三位数,范围从100到999。
  • 各个位上的数字的立方和等于该数本身。

【示例】

153是一个水仙花数。
因为1^3 + 5^3 + 3^3 = 153。

3. 如何判断一个数是否是水仙花数?

  • 将给定的数拆分为各个位上的数字。
  • 计算每个位上数字的n次幂。
  • 将每个位上数字的n次幂相加。
  • 判断相加的结果是否等于原始数。

4. 打印3位水仙花数

【代码示例】

# 使用range函数生成一个从100到999的整数序列
# 并将每个数字赋值给变量num
# range函数含前不含后,因此不包含1000
for num in range(100, 1000):# 通过整除运算符//将num除以100得到的商即为百位数字。hundreds = num // 100# 先将num除以10得到商,再对10取余得到十位数字tens = (num // 10) % 10# 通过对10取余运算得到个位数字ones = num % 10# 将百位、十位和个位数字的立方和与num进行比较# 如果相等,则说明该数是水仙花数if num == hundreds**3 + tens**3 + ones**3:print('%d是水仙花数。'% num)        

【终端输出】

153是水仙花数。
370是水仙花数。
371是水仙花数。
407是水仙花数。

5. 判断一个数是不是水仙花数

# def 语句定义一个名为sxh的函数
# 该函数接收一个参数num
# 自定义函数以英文冒号结尾
def sxh(num):# str函数将数字(num)转换为字符串类型,以便逐位处理    num_str = str(num)# 使用len()函数获取字符串num_str的长度,并赋值给变量nn = len(num_str)# 初始化变量sum为0,用于存储各个位上数字的n次方之和    sum = 0# 遍历字符串num_str中的每个字符,将每个字符赋值给变量ifor i in num_str:# 将变量i转换为整数类型,并计算其n次方,然后加到变量sum上# 备注:sum = sum +int(digit) ** nsum += int(i) ** n# 判断变量sum是否等于参数numif sum == num:# 如果条件成立,返回Truereturn Trueelse:# 如果条件不成立,返回Falsereturn False# 测试示例
num = 153
# 调用函数sxh()判断给定的数字是否为水仙花数
if sxh(num):# 如果是水仙花数,则打印出该数字是水仙花数print('%d是水仙花数。'% num)  
else:# 如果不是水仙花数,则打印出该数字不是水仙花数print('%d不是水仙花数。'% num)  

【终端输出】

153是水仙花数。

6. 列表推导式

【语法】

[表达式 for 迭代变量 in 可迭代对象 if条件表达式]

【代码示例】

list4 = [ i for i in range(1,6)]
print(list4)

【终端输出】

[1, 2, 3, 4, 5]

list4 = [i for i in range(1, 6)] 是一个列表推导式。
作用是创建一个包含从1到5的整数的列表。
具体来说,它使用了一个for循环来遍历1到5 。
并将每个遍历到的元素添加到列表中。
最终,list4 的值为 [1, 2, 3, 4, 5]。

【代码示例】

list5 = [ i**2 for i in range(1,6)]
print(list5)

【终端输出】

[1, 4, 9, 16, 25]

计算输出0~5序列的所有数的平方。

【代码示例】

# 定义字符串变量num_str,其值为'123'
num_str = '123'
# len函数计算字符串num_str的长度
# 此时n的值为3,因为字符串num_str包含3个字符
n = len(num_str)
# 使用列表推导式来计算每个字符的立方和
# 表达式为:int(i) ** n
# int(i)将每个字符转换为整数类型,然后求它的n次方
# for 循环遍历num_str,num_str是字符串类型
# 因此i也是字符串类型,用int 转换为整数才能参与计算
# n=3,1的立方是1,2的立方是8,3的立方是27
# sum()函数将所有立方值相加,并将结果赋值给变量s。
s = sum(int(i) ** n for i in num_str)
print(s)

【终端输出】

36

列表推导式可参考如下链接:

90. Python列表推导式

6. 列表推导式判断一个数是不是水仙花数

# def 语句定义一个名为sxh的函数
# 该函数接受一个参数num
# 自定义函数以英文冒号结尾
def sxh(num):# str函数将数字(num)转换为字符串类型,以便逐位处理num_str = str(num)# len函数获取数字的位数n = len(num_str)# 列表推导式计算每个位上数字的n次幂之和sum_of_powers = sum(int(digit) ** n for digit in num_str)# 判断结果是否等于原始数if sum_of_powers == num:return Trueelse:return False# 测试示例
num = 153
# 调用函数sxh()判断给定的数字是否为水仙花数
if sxh(num):# 如果是水仙花数,则打印出该数字是水仙花数print('%d是水仙花数。'% num)  
else:# 如果不是水仙花数,则打印出该数字不是水仙花数print('%d不是水仙花数。'% num)  

【终端输出】

153是水仙花数。

相关文章:

4. python练习题4-水仙花数

4. python练习题4-水仙花数 【目录】 文章目录 4. python练习题4-水仙花数1. 目标任务2. 水仙花数的特点3. 如何判断一个数是否是水仙花数?4. 打印3位水仙花数5. 判断一个数是不是水仙花数6. 列表推导式6. 列表推导式判断一个数是不是水仙花数 【正文】 1. 目标任务…...

【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt 开发环境的搭建 | Qt 安装教程 文章编号:Qt 学习笔记 /…...

ids工业相机与电控位移台同步控制及数据采集

通过VS2017和OpenCV,实现ids工业相机与电控位移台同步控制及数据采集 目录项目环境配置代码流程及思路项目架构项目开发运行效果开发关键ids相机配置位移台环境配置相机头文件相机参数设置保存图像函数设置电控位移台头文件电控位移台设置参数最后就是通过main函数进行调用和控…...

景联文科技提供高质量医疗健康AI大模型数据

医疗行业是典型的知识和技术密集型行业,其发展水平直接关系到国民健康和生命质量。 医疗健康AI大模型,作为人工智能的一个分支,能够通过学习大量的数据来生成新的数据实例,在医药研发、医学影像、医疗文本分析等都有广泛的应用前景…...

【Python第三方库】lxml 解析器和xpath路径语言

1.lxml是做什么的 是xml/html的解析器,主要是用来解析和提取html/xml数据 2.lxml语法 使用etree.HTML(html字符串),将字符串转换为Element对象通过使用Element对象.xpath(语法)提取信息,返回的是一个列表的内存地址,需要通过使用索引获取信…...

Java(Lambda、集合)、题解

一、Lambda表达式 标准格式 ()对应方法的形参 ;->固定格式 注意点: Lambda表达式可以用来简化匿名内部类的书写 Lambda表达式只能简化函数式接口的匿名内部类的写法 函数式接口: 有且仅有一个抽象方法的接口叫做函数式接口&…...

Transformer学习: Transformer小模块学习--位置编码,多头自注意力,掩码矩阵

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Transformer学习 1 位置编码模块1.1 PE代码1.2 测试PE1.3 原文代码 2 多头自注意力模块2.1 多头自注意力代码2.2 测试多头注意力 3 未来序列掩码矩阵3.1 代码3.2 测试掩码 1 …...

easyexcel 动态列导出

1. 引入easyexcel <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version></dependency> 2.导出write public void export(HttpServletResponse response) {try {String f…...

flink源码编译-job提交

1、启动standalone集群的taskmanager standalone集群中的taskmanager启动类为 TaskManagerRunner 2 打开master启动类 通过 ctrln快捷键&#xff0c;找到、并打开类&#xff1a; org.apache.flink.runtime.taskexecutor.TaskManagerRunner 3 修改运⾏配置 基本完全按照mas…...

Mysql密码修改问题

docker安装mysql&#xff0c;直接拉取镜像&#xff0c;挂载关键目录即可启动&#xff0c;默认3306端口。此时无法直接连接&#xff0c;需要配置密码。docker进入mysql容器中 docker exec -it mysql bash #mysq是容器名称&#xff0c;也可以用容器id通过修改mysql的配置进行免密…...

建独立站,对FP商家有什么好处?

2024年都过去四分之一了&#xff0c;还有许多人对是否投身于跨境独立站领域仍犹豫不决。然而&#xff0c;观望不如实践&#xff0c;如果渴望在跨境电商领域开创一片新天地&#xff0c;那么现在就是行动的最佳时机。 特别是对于FP商家来说&#xff0c;由于电商平台对于黑五类产品…...

使用Postman进行websocket接口测试

因为最近要搞关于基于AI的文本接口测试.需要用到websocket协议,于是看了一下发现postman也可以测而且很方便 位置 File->New->WebSocket 可以看到不止WebSocket还支持其他的各种协议 使用 首先先点击connect进行连接 连接成功之后可以选择多种文本格式添加请求参数 每…...

Android音视频开发 - MediaMetadataRetriever 相关

Android音视频开发 - MediaMetadataRetriever 相关 MediaMetadataRetriever 是android中用于从媒体文件中提取元数据新的类. 可以获取音频,视频和图像文件的各种信息,如时长,标题,封面等. 1:初始化对象 private MediaMetadataRetriever mediaMetadataRetriever new MediaMe…...

注解(Annotation)

10.1 注解概述 10.1.1 什么是注解 注解&#xff08;Annotation&#xff09;是从JDK5.0开始引入&#xff0c;以“注解名”在代码中存在。例如&#xff1a; Override Deprecated SuppressWarnings(value”unchecked”) Annotation 可以像修饰符一样被使用&#xff0c;可用于修饰…...

蓝桥杯:七步诗 ← bfs

【题目来源】https://www.lanqiao.cn/problems/3447/learning/【题目描述】 煮豆燃豆苴&#xff0c;豆在釜中泣。本是同根生&#xff0c;相煎何太急?---曹植 所以&#xff0c;这道题目关乎豆子! 话说赤壁之战结束后&#xff0c;曹操的船舰被刘备烧了&#xff0c;引领军队从华容…...

Vue 如何快速上手

目录 1. Vue 是什么 &#xff08;概念&#xff09; 1.1. Vue 的两种使用方式 1.2. 优点 1.3. 缺点 2. 创建 Vue 实例&#xff0c;初始化渲染 2.1. 步骤&#xff08;核心步骤 4步&#xff09; 2.2. 练习——创建一个Vue实例 3. 插值表达式 {{ }} 3.1. 介绍 3.2. 作用…...

Vue3:组件间通信-provide和inject实现祖先组件与后代组件间直接通信

一、情景说明 我们学习了很多的组件间通信 这里在学习一种&#xff0c;祖先组件与后代组件间通信的技术 这里的后代&#xff0c;可以是多层继承关系&#xff0c;子组件&#xff0c;子子组件&#xff0c;子子子组件等等。 在祖先组件中通过provide配置向后代组件提供数据在后代…...

微信小程序——小程序和页面生命周期详解

小程序的生命周期 小程序的生命周期主要分为以下几个阶段&#xff1a; 创建&#xff08;onLoad&#xff09;&#xff1a; 当小程序启动时&#xff0c;或者从其他页面跳转到当前页面时&#xff0c;会触发 onLoad 生命周期函数。 这个阶段通常用于初始化页面数据&#xff0c;从服…...

android studio中添加module依赖

android常用的三种依赖 库依赖&#xff08;Library dependency&#xff09;&#xff1a;以访问网址的形式将依赖库相应版本下载到本地; 文件依赖&#xff08;File dependency&#xff09;&#xff1a; 将下载下来的依赖库以.jar文件的形式添加依赖. module依赖&#xff08;Modu…...

【.NET全栈】.NET全栈学习路线

一、微软官方C#学习 https://learn.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/ C#中的数据类型 二、2021 ASP.NET Core 开发者路线图 GitHub地址&#xff1a;https://github.com/MoienTajik/AspNetCore-Developer-Roadmap/blob/master/ReadMe.zh-Hans.md 三、路线…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...