上节用最基本的Python运算符 “//” 和 “%”来拿到一个三位数的个位、十位、百位,方法如下:a = i//100 # 获取百位,a b = (i//10) % 10 # 获取十位,b c = i % 10 # 获取个数,c
今天用一种更简单、方便易懂的方法来拿到一个数的各位上的数值,那就是列表、字符串的切片、索引。 今天咱们用字符串切片的方法来获取个位、十位、百位的数字;本节要回顾下列表的索引,又叫切片(就是从现有的列表或字符串中切一部分元素出来),如下面一个列表,我要拿到列表里面的元素:a = [4, 5, 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}个;