目录

  • 水仙花数简介
  • 初阶研究
    • 源码分享
    • 程序分析
      • 判断水仙花数的函数
      • 用户输入
      • 使用函数判断
    • 运行结果展示
  • 高阶研究
    • 源码分享
    • 程序分析
      • 根据数字n得出数字范围
      • 遍历列表以寻找所有水仙花数
      • 简单判断列表内是否有水仙花数
    • 运行结果展示

水仙花数简介

如果一个数各个数位上的数字的立方之和等于这个数本身,那么这个数被称为“水仙花数”。

例:
23不是水仙花数,因为23+33=8+27=35≠23
153是水仙花数,因为13+53+33=1+125+27=153=153

初阶研究

目标:根据用户输入的数,判断它是不是水仙花数。

源码分享

以下是程序的源码:

def check_number(n):'''给定一个数n,判定它是不是水仙花数'''list_n = list(str(n))result = 0for a in list_n:result += int(a)**3# 根据是否相等返回True或Falseif result == n:return Trueelse:return Falseif __name__ == '__main__':while True:message = "输入一个数,我来告诉你它是不是水仙花数。\n输入“q”退出。"number = input(message) # 用户输入if number == "q": # 退出程序breaknumber = int(number)# 转为数字# 根据判定结果输出结果if check_number(number) == True:print('它是水仙花数。\n')elif check_number(number) == False:print('它不是水仙花数。\n')

程序分析

判断水仙花数的函数

check_number()函数提供一个参数n,判断它是不是水仙花数。

def check_number(n):'''给定一个数n,判定它是不是水仙花数'''list_n = list(str(n))result = 0for a in list_n:result += int(a)**3# 根据是否相等返回True或Falseif result == n:return Trueelse:return False

用户输入

根据用户输入的数字或者“q”来继续小程序的行为。

    while True:message = "输入一个数,我来告诉你它是不是水仙花数。\n输入“q”退出。"number = input(message) # 用户输入if number == "q": # 退出程序breaknumber = int(number)# 转为数字

使用函数判断

        # 根据判定结果输出结果if check_number(number) == True:print('它是水仙花数。\n')elif check_number(number) == False:print('它不是水仙花数。\n')

运行结果展示

高阶研究

目标:输入数字n,返回长度为n的所有水仙花数。

源码分享

以下是程序源码:
(备注:如果输入数字n较大,程序运行会比较慢)

def check_number(n):'''给定一个数n,判定它是不是水仙花数'''list_n = list(str(n))result = 0for a in list_n:result += int(a)**3# 根据是否相等返回True或Falseif result == n:return Trueelse:return Falsedef main():num = input('输入数字n,输出长度为n的所有水仙花数。\n')num = int(num)if num == 1:f_n = 0else:f_n = int('1'+'0'*(num-1))l_n = int('1'+'0'*num)result = []for n in range(f_n,l_n):if check_number(n) == True:result.append(str(n))elif check_number(n) == False:passreturn resultif __name__ == '__main__':num_list = main()if num_list:print(','.join(num_list))else:print('没有水仙花数!')

程序分析

注:判断水仙花数的函数和初阶研究一样。

根据数字n得出数字范围

构造出数字上限和下限(下限+1,为了后面range()函数做铺垫)

 num = input('输入数字n,输出长度为n的所有水仙花数。\n')num = int(num)if num == 1:f_n = 0else:f_n = int('1'+'0'*(num-1))l_n = int('1'+'0'*num)

遍历列表以寻找所有水仙花数

用定义好的函数check_number()寻找水仙花数。

    result = []for n in range(f_n,l_n):if check_number(n) == True:result.append(str(n))elif check_number(n) == False:passreturn result

简单判断列表内是否有水仙花数

这里比较简单,就不多加以分析了。

if __name__ == '__main__':num_list = main()if num_list:print(','.join(num_list))else:print('没有水仙花数!')

运行结果展示

这是程序的运行结果:







Python水仙花数研究相关推荐

  1. 全网最短!python水仙花数

    python水仙花数 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次 ...

  2. python水仙花数的代码_Python 求“水仙花数”的方法和具体代码

    时间:2018-10-29 概述:水仙花数 Python打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一 ...

  3. python水仙花数_scratch与pythonc++的不同,你了解吗?

    scratch与python\c++的不同 一直有妈妈们问我,编程的各种学习有什么不同,每个年龄应该从什么开始 今天我来给大家分享一下scratch与python\c++的不同. 首先,我先给大家看看 ...

  4. python水仙花数总结_python打印n位数“水仙花数”(实例代码)

    注:所谓n位数"水仙花数"是指一个n数,其各位数字n次方和等于该数本身.如三位数"水仙花数"是指一个三位数,其各位数3次方和等于该数本身. 一.3位数" ...

  5. python 水仙花数代码

    以下是 Python 代码来查找水仙花数: for num in range(100, 1000):# 分离出每一位数字unit_digit = num % 10tens_digit = (num / ...

  6. python 水仙花数 并以列表的形式返回_Python一句代码实现找出所有水仙花数的方法...

    用Python分享出所有的三位水仙花数,感谢(财富可追加) for i in range(100, 1000): if i == sum(map(lambda x: int(x)**3, str(i) ...

  7. python水仙花数的编程讲解_《scratch编程+数学》课程:找寻水仙花数

    在自然数里有很多有趣的数字,他们本身有一些有趣的规律,比如水仙花数,英文叫做Narcissistic Number,是指一个三位数,它各位数字的立方和等于该数本身. 为什么这样的数叫作水仙花数呢?据说 ...

  8. Python水仙花数,鸡兔同笼问题,百钱买百鸡问题,斐波那契数列,模拟发微信红包

    一.题目: 1.求50以内能被7整除,但不能同时被5整除的所有整数. 2.如果一个3位数的各位数字的立方和等于该数自身,则该数称为"水仙花数". 例如,153 = 13 + 53  ...

  9. python 水仙花数 map函数

    打印出所有的"水仙花数",所谓的水仙花数是一个三位数,其各位数字立方和等于其本身: L=[] for i in range(100,1000):if sum(map(lambda ...

最新文章

  1. 使用简单的轻量级移动web应用开发框架 - Sidetap
  2. java 操作oracle 源码_java对oracle的常用操作示例源码
  3. windows下QtSDK/QTCreator安装
  4. python的django_django能用来做什么
  5. mysql和mysqldump出现command not found 问题解决
  6. 超34款吸费手机被曝光下架 天语TCL大显等在其中
  7. Hug a developer today
  8. idea中查看maven依赖树
  9. 淘宝退款崩溃;马云预言成真;谷歌推新API | 极客头条
  10. Beyond Compare可以进行二进制比较
  11. Android开发眼镜店管理系统,智能眼镜店管理系统(基于BS架构互联网版)下载_智能眼镜店管理系统(基于BS架构互联网版)官方下载-太平洋下载中心...
  12. NLP-信息抽取-NER-2019:LGN【A Lexicon-Based Graph Neural Network for Chinese NER】
  13. 企业微信客户端API分享微信朋友圈使用过程及总结
  14. PyCharm跑项目时遇到的一些问题及解决办法
  15. 纽约大学文理学院转计算机专业,纽约大学文理学院内部转专业 看看你能否转专业...
  16. linux系统安装flash
  17. 【金猿信创展】数新网络——国内云数智操作系统信创领导者
  18. 笔试题:计算机网络 (1)
  19. 简述计算机数控系统的工作原理,计算机数控系统复习题-20210321010307.docx-原创力文档...
  20. css 背景效果_软件技术:我写CSS的常用套路(附demo的效果实现与源码)

热门文章

  1. 产业与金融如何融合创新?百度智能云阐述产融一体化解决方案
  2. 发刊词 | 智能控制开关专辑
  3. 【t072】国际象棋
  4. 启迪国信灵通发布NQSky EMM 4.0
  5. java怎么保留一位小数_java四舍五入保留一位小数代码要怎么编写?
  6. 数据结构——二叉树 1.0
  7. Refused to execute script from ‘http://localhost:8080/src/23-namespace/a.js‘ because its MIME type (
  8. Hangouts高清视频的背后:从H.264编码向WebRTC的进化
  9. 分布式(一)分布式事务解决方案
  10. 前端基础之bootstrap