面试过程中,提到python,面试最多的就是让你现场写代码实现水仙花、冒泡、九九乘法表,这些面试方法旨在校验面试者的python基础和思维逻辑。

先从水仙花说起,水仙花是指一个n位正整数(n>=3),它的每个微商的数字的n次幂之和等于它本身。下面将从“输入任意正整数n(n>=3)打印”和“打印100-999的水仙花数”具体代码讲解分析

1、输入任意正整数n(n>=3)打印:

#!/usr/bin/python
#-*- coding:UTF-8 -*-
#水仙花是指一个n位正整数(n>=3),它的每个微商的数字的n次幂之和等于它本身。
#输入任意正整数n(n>=3)打印
def test(n):
list = [] #定义一个list列表
for i in range(pow(10,n-1),pow(10,n)): #range函数定义一个循环区间,pow函数实现参数的n次方。
# 假如n=3,那么range函数里面的参数为:range(100,10000).
# for循环会遍历包含100到9999之间的数 list = map(int,str(i)) #map(x,y)中,x作为要实现的结果,y为原始参数。
# python2.x会返回列表,python3.x会返回迭代器。
# 在此把map返回的结果放到list列表中,相当于把上面遍历的数值的百位、十位、个位分离,如上面的for循环遍历到153,会返回[1,5,3]格式
num = 0 #定义一个变量
for j in range(0,len(list)): #在上一个for循环里再嵌套一个循环,比如上一个循环遍历到153,列表形式为[1,5,3]
#在这里len函数取list表的长度,list表有3个数,所以长度为3.故该循环从0到2进行循环
num = num+pow(list[j],n) #pow函数返回每个循环数的n次方结果,如[1,5,3],循环完毕后pow函数返回的结果为1、75、27.
# 因为num每次循环都会加上一个循环返回的结果,故num=153
if num==i: #在此进行判断,如果num值等于第一个for循环遍历的值,就进行打印
print i #这里重点说明一下:如果写成"return i",在调用方法时只会打印一个数值 if __name__ == '__main__':
n = int(raw_input('请输入立方数:')) #raw_input函数直接读取控制台输入(任何类型的输入它都会接受),int函数的作用是将输入的字符转换为int类型
test(n) #调用方法

2、打印100-999的水仙花数:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#打印100-999的水仙花数 for i in range(100,1000):#for循环区间为100-999的数
a = i//100 #取整除,返回商的整数部分。该处返回百位数数字
b = (i-a*100)//10 #该处返回十位数上的数字
c = i-a*100-b*10 #该处返回个位上的数字
if a*a*a+b*b*b+c*c*c == i : #这里做是否满足水仙花数的逻辑判断
print i #打印符合条件的数字

希望能帮助到需要的伙伴,如有疑惑可联系我。也欢迎大牛指正!

参考资料:http://blog.csdn.net/guo_apple/article/details/68944653

https://www.lijinlong.cc/python/pyxt/1525.html

python打印水仙花数的个人总结的更多相关文章

  1. 打印水仙花数(narcissus number)

    题目:打印出所有的"水仙花数(narcissus number)",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个" ...

  2. Python判断水仙花数

    水仙花数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数( ...

  3. Java50道经典习题-程序3 打印水仙花数

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...

  4. python练习——水仙花数

    题目: 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数.输入有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)输入0表示程序输入结束.输出 ...

  5. 【Java基础】for循环实现在控制台打印水仙花数

    代码: /* * 需求:在控制台输出所有的”水仙花数” * * 分析: * 什么是水仙花数呢? * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身. * 举例:153就是一个水仙花数. ...

  6. C++打印水仙花数

    #include <iostream> #include <Windows.h> using namespace std; int main(void) { int a, b, ...

  7. Python输出水仙花数,用逗号分隔

    描述 "水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪ ...

  8. 用Python编写水仙花数

    #找出水仙花数 def sxh(start, end): if end >= start and start >=100 and end<= 999: num=start #将num ...

  9. python初学者-水仙花数简单算法

    输出"水仙花数".所谓水仙花是指一个3位数的十进制数,其各位数字的立方和等于该数本身.例如:153是水仙花数. 用for循环实现水仙花数的计算图如下所示: 1 for i in r ...

随机推荐

  1. Win10安装Ubuntu子系统

    相信我,这是最后一次折腾系统了qaq,以后一定开始认真用Linux编程 跟的一个博客安装,传送门:Win10安装Ubuntu子系统及图形化界面详细教程 文章是2019的,加上我装的是Ubuntu 20 ...

  2. 《kubernetes + .net core 》dev ops部分

    目录 1.kubernetes 预备知识 1.1 集群资源 1.1.1 role 1.1.2 namespace 1.1.3 node 1.1.4 persistent volume 1.1.5 st ...

  3. Numpy中的shape和reshape()

    shape是查看数据有多少行多少列reshape()是数组array中的方法,作用是将数据重新组织 1.shape import numpy as np a = np.array([1,2,3,4,5 ...

  4. python在一个画布上画多个子图

    转载:https://blog.csdn.net/qq_26449287/article/details/103022636 matplotlib 是可以组合许多的小图, 放在一张大图里面显示的. 使 ...

  5. error C2491: 不允许 dllimport 函数 的定义

    转载:https://blog.csdn.net/gaofeidongdong/article/details/7781345 在工程属性中 预编译宏中加上 DLL_EXPORT为了减少使用dll时候 ...

  6. CF149D Coloring Brackets

    CF149D Coloring Brackets Link 题面: 给出一个配对的括号序列(如"\((())()\)"."\(()\)"等, "\() ...

  7. 习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)

    #include<stdio.h> #include<string.h> char s[5][5]; int main() { while(gets(s[0])) { int ...

  8. 【C语言C++编程入门】——程序结构:构思!

    学习编程语言的最好方法是编写程序.一般来说,初学者编写的第一个程序是一个名为"Hello World"的程序,它简单地将"Hello World"打印到你的电脑 ...

  9. 35岁的程序员正在消失?No,我认识了一个50岁的程序员!

    35岁的话题真是无穷无尽.一开始的时候,以为只有社交媒体上会有这种问题的讨论,没想到,公司内部的论坛上也有不少这类的文章.大家各有各的说法,但终究也没有找到银弹似的解决方案. 这段时间,倒是接触了一个 ...

  10. centos8平台使用pstree查看进程树

    一,pstree用途 Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 systemd 这个基本行程为根 (root) 说明:centos6及更旧版本为 ...