当前位置:首页>python>20.Python实战__用Python找“水仙花数”解法二

20.Python实战__用Python找“水仙花数”解法二

  • 2026-10-11 08:38:05
20.Python实战__用Python找“水仙花数”解法二
    上节用最基本的Python运算符 “//” 和 “%”来拿到一个三位数的个位、十位、百位,方法如下:
a = i//100        # 获取百位,a  b = (i//10) % 10  # 获取十位,b  c = i % 10        # 获取个数,c
    今天用一种更简单、方便易懂的方法来拿到一个数的各位上的数值,那就是列表、字符串的切片、索引。
一、列表、字符串切片操作
    今天咱们用字符串切片的方法来获取个位、十位、百位的数字;本节要回顾下列表的索引,又叫切片(就是从现有的列表或字符串中切一部分元素出来),如下面一个列表,我要拿到列表里面的元素:a = [4, 5, 6]
    a[0] 就是 4,
    a[1] 就是 5,
    a[2] 就是 6;
1)像 列表、字符串这种对象都可以使用索引、切片操作来获取他们里面的元素;
2)Python中索引值大都是从0开始的,即第一个元素对应的索引值就是0;
二、字符串如何切片
下面一个数字(类型为整型) a = 153,如何拿到个位、十位、百位:
1)如果是数字,先用str( )强制把数字转成字符串 ;
2)对字符串切片操作:如 str(a) 就是一个字符串了;
3)str(a)[0] 就是 a 中的第1个字符,就是1;
    str(a)[1] 就是 a 中的第2 个字符,就是5;
    str(a)[2] 就是 a 中的第3 个字符,就是3;
4)如果要用来计算还要用int( )把字符强制转换成整型数字;
    上面就很好理解了,不管多少位数想拿第n位数就是str(a)[n-1]即可;
#  一个三位数,他各位数的立方的和等于这个数本身num = 0for i in range(100, 1000):  a = str(i)[0]  b = str(i)[1]  c = str(i)[2]#  进行计算前要用int()转换成整型数字    if i == (int(a)**3 + int(b)**3 + int(c)**3):    print(i)    num += 1print(f"三位数水仙花数共有{num}个;
运行效果如下:
    可以看到,结果与上面的写法运行结果完全一样。

最新文章

随机文章