题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期

博主:命运之光

🦄专栏:算法修炼之练气篇(C\C++版)

🍓专栏:算法修炼之筑基篇(C\C++版)

🍒专栏:算法修炼之练气篇(Python版)

博主的其他文章:点击进入博主的主页​​​​​​

前言:Python是一门很重要的语言,不管如何我们都要去了解和使用它,次专栏目的为了打牢小白蒟蒻们的Python基础,适合第一天刚开始学习Python的蒟蒻们来学习练习观看。一共三十篇分为练气一层到十层(初期,中期,后期)三十篇完后进入筑基期的修炼。筑基期可学习更深层次的人工智能方面的(机器学习和深入学习),人工智能离不开Python所以大家想走人工智能,深入学习,机器学习,图像处理,数据挖掘的蒟蒻们,基础打起来,习题连起来。跟着命运之光冲就完事了,每周更新两篇,敬请期待。

目录

题目描述

输入格式

输出格式

样例输入

样例输出

 题解

代码逐步解释

提交结果

结语

 


题目描述

输出所有的"水仙花数".所谓"水仙花数"是指这样的一个三位数:其各位数字的立方和等于该数本身。例如:371是一个"水仙花数",371=3^3+7^3+1^3.

输入格式

输出格式

输出所有的"水仙花数"(从小到大的顺序输出,一行一个)

样例输入

样例输出

 题解

num = 100 # 初始化变量 num 的值为 100
while num < 1000: # 当 num 小于 1000 时执行循环体内的代码
    if num == int(str(num)[0])**3 + int(str(num)[1])**3 + int(str(num)[2])**3:
        # 如果 num 的百位、十位和个位上的数字立方和等于 num 本身,则输出 num
        print(num)
        num += 1 # 将 num 的值加 1,继续下一次循环
    else:
        num += 1 # 将 num 的值加 1,继续下一次循环
        continue # 跳过当前循环中的剩余语句,并开始下一次循环

代码逐步解释

这段代码是一个简单的 Python 程序,用于查找所有的水仙花数并输出。下面是对代码的详细解析:

  1. num = 100
    • 这一行代码初始化变量 num 的值为 100。
  2. while num < 1000:
    • 这一行代码使用 while 循环,循环条件为 num < 1000,即当 num 的值小于 1000 时执行循环体内的代码。
  3. if num == int(str(num)[0])**3 + int(str(num)[1])**3 + int(str(num)[2])**3:
    • 这一行代码使用条件判断语句,检查当前的 num 是否等于各个位数上的数字立方和。
    • str(num) 将整数类型的 num 转换为字符串类型。
    • int(str(num)[0])int(str(num)[1])int(str(num)[2]) 分别表示 num 的百位、十位和个位上的数字。
    • ** 运算符表示乘方操作,x**3 表示将 x 的立方作为结果。
  4. print(num)
    • 如果当前的 num 是水仙花数,则打印输出 num
  5. num += 1
    • 每次循环结束后,将 num 的值加 1。
  6. else:
    • 如果当前的 num 不是水仙花数,则执行下面的代码块。
  7. num += 1
    • 将 num 的值加 1。
  8. continue
    • continue 语句用于跳过当前循环中的剩余语句,并开始下一次循环。

因此,这段代码的作用是:从 100 到 999 的所有三位数中,找出所有的水仙花数并输出。

以下是对代码中每行语句的解释:

  • num = 100

    • 该行代码初始化变量 num 的值为 100。
  • while num < 1000:

    • 这一行代码使用 while 循环,循环条件为 num < 1000,即当 num 的值小于 1000 时执行循环体内的代码。
  • if num == int(str(num)[0])**3 + int(str(num)[1])**3 + int(str(num)[2])**3:

    • 这一行代码使用条件判断语句,检查当前的 num 是否等于各个位数上的数字立方和。
    • str(num) 将整数类型的 num 转换为字符串类型。
    • int(str(num)[0])int(str(num)[1])int(str(num)[2]) 分别表示 num 的百位、十位和个位上的数字。
    • ** 运算符表示乘方操作,x**3 表示将 x 的立方作为结果。
  • print(num)

    • 如果当前的 num 是水仙花数,则打印输出 num
  • num += 1

    • 每次循环结束后,将 num 的值加 1。
  • else:

    • 如果当前的 num 不是水仙花数,则执行下面的代码块。
  • num += 1

    • 将 num 的值加 1。
  • continue

    • continue 语句用于跳过当前循环中的剩余语句,并开始下一次循环。

以下是一些 Python 基础知识点的解释:

  • while 循环:while 循环用于重复执行一段代码,直到指定的条件不再满足为止。循环条件通常是一个布尔表达式,如果该表达式的值为 True,则执行循环体内的代码,否则跳出循环。

  • 条件判断语句:Python 中的条件判断语句包括 ifelifelse。它们用于根据不同的条件执行不同的代码。如果条件成立,则执行 ifelif 后面的代码块;否则执行 else 后面的代码块。

  • 字符串类型:字符串是一种 Python 数据类型,用于表示文本。在 Python 中,字符串可以用单引号或双引号括起来。例如,'hello'"world" 都是字符串。

  • 字符串索引操作:字符串可以看作是字符的序列,每个字符都有一个对应的位置。在 Python 中,可以使用方括号 [] 来获取字符串中指定位置的字符。例如,s[0] 表示字符串 s 的第一个字符,s[1] 表示第二个字符,以此类推。

  • int() 函数:int() 函数用于将字符串或浮点数转换为整数类型。例如,int('123') 的结果为整数 123。

  • print() 函数:print() 函数用于打印输出。它可以接受多个参数,用逗号分隔。例如,print('hello', 'world') 将同时打印出字符串 'hello''world'

  • += 运算符:+= 运算符用于将左侧操作数的值加上右侧操作数的值,并将结果赋值给左侧操作数。例如,a += 1 等价于 a = a + 1

  • continue 语句:continue 语句用于跳过当前循环中的剩余语句,并开始下一次循环。

提交结果

结语

再接再厉,接着让我们来练下一题!

 🌌点击下方个人名片,交流会更方便哦~(欢迎到博主主页加入我们的 CodeCrafters联盟一起交流学习↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

今天玩到一个微信钓鱼小游戏,很有趣,居然还能玩萝卜刀

这款钓鱼冠军微信小游戏很有创意&#xff0c;除了传统的钓鱼玩法&#xff0c;居然还融合了黄金矿工的玩法&#xff0c;很不错的想法&#xff0c;而且居然还能玩最近比较火的萝卜刀&#xff0c;快来扫码体验一下吧&#xff0c;或者微信里搜索 《钓鱼冠军》小游戏&#xff0c;认…

2023年Q3线上生鲜水产数据分析:市场不景气,销额同比下滑44%

事实上&#xff0c;今年线上的生鲜生意市场并不景气。无论是Q1季度还是Q2季度&#xff0c;线上&#xff08;京东平台&#xff09;的销售额均同比去年下滑了10%左右。 然而到了Q3季度&#xff0c;整个下滑态势愈发严峻。可以看到鲸参谋数据显示&#xff0c;7月至9月生鲜水产在京…

Jmeter性能测试 —— TPS拐点寻找

寻找TPS性能拐点1、准备脚本①在本地电脑调试Jmeter压测脚本 ②上传到压测机Jmeter所在的服务器 2、执行压力测试①执行压测脚本 jmeter –n –t xianchengzuse.jmx ②记录业务压测数据 3、监控服务器性能指标 ①监控CPU输入top命令 ②监控内存 free –m ③jstat监控sweep和…

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上&#xff0c;没有感知到异常或中断 3.2、Windbg感知到了中断&#xff0c;中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

大数据-Storm流式框架(四)---storm容错机制

1、集群节点宕机 Nimbus服务器 硬件 单点故障&#xff1f;可以搭建HA jStorm搭建 nimbus的HA nimbus的信息存储到zookeeper中&#xff0c;只要下游没问题&#xff08;进程退出&#xff09;nimbus退出就不会有问题&#xff0c; 如果在nimbus宕机&#xff0c;也不能提交…

特约|数码转型思考:Web3.0与银行

日前&#xff0c;欧科云链研究院发布重磅报告&#xff0c;引发银行界及金融监管机构广泛关注。通过拆解全球70余家银行的加密布局&#xff0c;报告认为&#xff0c;随着全球采用率的提升与相关技术的成熟&#xff0c;加密资产已成为银行业不容忽视也不能错过的创新领域。 作为…

机器学习实验一:KNN算法,手写数字数据集(使用汉明距离)(2)

KNN-手写数字数据集&#xff1a; 使用sklearn中的KNN算法工具包&#xff08; KNeighborsClassifier)替换实现分类器的构建&#xff0c;注意使用的是汉明距离&#xff1b; 运行结果&#xff1a;&#xff08;大概要运行4分钟左右&#xff09; 代码&#xff1a; import pandas as…

记录一次时序数据库的实战测试

0x1.前言 ​ 本文章仅用于信息安全防御技术分享&#xff0c;因用于其他用途而产生不良后果&#xff0c;作者不承担任何法律责任&#xff0c;请严格遵循中华人民共和国相关法律法规&#xff0c;禁止做一切违法犯罪行为。文中涉及漏洞均以提交至教育漏洞平台。 0x2.背景 ​ 在某…

023-第三代软件开发-自定义Button

第三代软件开发-自定义Button 文章目录 第三代软件开发-自定义Button项目介绍自定义Button第一类型-加声音第二类型-加样式 第三类型-减声音总结一下存在一点小问题 关键字&#xff1a; Qt、 Qml、 Button、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&…

Redis缓存(缓存预热,缓存穿透,缓存雪崩,缓存击穿)

目录 一, 缓存 1, 什么是缓存 2, 什么是热点数据(热词) 3, 缓存更新策略 3.1 定期生成 3.2 实时生成 二, Redis缓存可能出现的问题 1, 缓存预热 1.1 什么是缓存预热 1.2 缓存预热的过程 2, 缓存穿透 2.1 什么是缓存穿透 2.2 缓存穿透产生的原因 2.3 缓存穿透的解…

优思学院|中质协六西格玛考试形式是什么样的?

中质协的考试形式主要为单选和多选题&#xff0c;近年也有加了一小部分填空题&#xff0c;和国际认证考试有很大区别&#xff0c;因为美质协&#xff08;ASQ&#xff09;、国际精益六西格玛研究所&#xff08;ILSSI&#xff09;&#xff0c;又或者著名的PMP项目管理认证等都是采…

Java性能分析工具

Arthas 官网&#xff1a;简介 | arthas Arthas 是 Alibaba 开源的 Java 诊断工具&#xff0c;深受开发者喜爱。Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业…

Spark SQL概述与基本操作

目录 一、Spark SQL概述 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;特点 &#xff08;3&#xff09;Spark SQL与Hive异同 &#xff08;4&#xff09;Spark的数据抽象 二、Spark Session对象执行环境构建 (1)Spark Session对象 &#xff08;2&#xff09;代码演…

【深度学习实验】循环神经网络(五):基于GRU的语言模型训练(包括自定义门控循环单元GRU)

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容&#xff08;一&#xff09;自定义门控循环单元&#xff08;GRU&#xff0c;Gated Recurrent Unit&#xff09;1. get_params2. init_gru_state3. gru &#xff08;二&#xff09;创建模型0. 超参数…

3. 博弈树 (15分)

下棋属于一种博弈游戏&#xff0c;博弈过程可以用树&#xff08;博弈树&#xff09;来表示。假设游戏由两个人&#xff08; A 和 B &#xff09;玩&#xff0c;开始由某个人从根结点开始走&#xff0c;两个人轮流走棋&#xff0c;每次只能走一步&#xff0c; 下一步棋只能选择当…

OTA语音芯片NV040C在智能电动牙刷的应用

以往我们对牙齿的清洁是使用的是手动方式进行&#xff0c;用柔软的牙刷刷毛去进行牙齿的清洁。但现在我们拥有了一种新颖的刷牙方式&#xff0c;靠电力去驱动、清洁我们的牙齿。电动牙刷的刷头通过快速旋转&#xff0c;产生高频振动&#xff0c;将牙膏迅速分解为细小的泡沫&…

支付宝支付接入流程

一、 接入准备 支付宝支付流程没有微信那么复杂&#xff0c;而且支付宝支持沙箱。登录支付宝开放平台控制台 点击开发工具中的沙箱 接口加密方式&#xff0c;我这里使用的是自定义密钥。生成密钥的方式 使用支付宝官方提供的密钥工具&#xff0c;唯一要注意的是支付宝密钥工具…

idea + Docker-Compose 实现自动化打包部署(仅限测试环境)

一、修改docker.service文件&#xff0c;添加监听端口 vi /usr/lib/systemd/system/docker.service ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock重启docker服务 systemctl daemo…

线性代数3:矢量方程

一、前言 欢迎回到系列文章的第三篇文章&#xff0c;内容是线性代数的基础知识&#xff0c;线性代数是机器学习背后的基础数学。在我之前的文章中&#xff0c;我介绍了梯队矩阵形式。本文将介绍向量、跨度和线性组合&#xff0c;并将这些新想法与我们已经学到的内容联系起来。本…

基于 Redis + Lua 脚本实现分布式锁,确保操作的原子性

1.加锁的Lua脚本&#xff1a; lock.lua --- -1 failed --- 1 success--- getLock key local result redis.call(setnx , KEYS[1] , ARGV[1]) if result 1 then--PEXPIRE:以毫秒的形式指定过期时间redis.call(pexpire , KEYS[1] , 3600000) elseresult -1;-- 如果value相同&…