python切片求水仙花数
时间: 2023-07-01 22:19:01 浏览: 148
好的,针对你的问题,我来为你解答。
首先,水仙花数是指一个三位数,其各个数位数字立方和等于该数本身。比如153就是一个水仙花数,因为1的立方加上5的立方加上3的立方等于153。
而Python中的切片操作可以通过冒号分隔的两个索引来截取一个序列的子序列。
因此,我们可以通过如下代码来求出所有的三位水仙花数:
```python
result = []
for i in range(100, 1000):
num_str = str(i)
if int(num_str[0])**3 + int(num_str[1])**3 + int(num_str[2])**3 == i:
result.append(i)
print(result)
```
上述代码中,我们通过一个for循环遍历100到999之间的所有三位数,使用切片操作将其转换为字符串,再分别取出各个数位上的数字并计算其立方和。如果该立方和等于该数本身,那么就将该数加入到一个结果列表中。
最终,我们可以打印结果列表来查看所有的三位水仙花数。
相关问题
python用列表切片求水仙花数
可以使用以下代码来求出100-999之间的水仙花数:
```
lst = []
for i in range(100, 1000):
s = str(i)
if int(s[0])**3 + int(s[1])**3 + int(s[2])**3 == i:
lst.append(i)
print(lst)
```
其中,我们先定义一个空列表`lst`,然后通过`for`循环遍历100到999之间的所有数字。对于每个数字,我们将它转换成字符串类型`str(i)`,然后利用切片取出百位、十位和个位上的数字,并分别计算它们的立方和是否等于该数字本身。如果相等,则将该数字添加到列表`lst`中。最后输出`lst`即可得到所有的水仙花数。
python用字符串求水仙花数
以下是Python用字符串求水仙花数的代码:
```python
narcissistic_nums = []
for num in range(100, 1000):
digits = str(num)
if num == sum([int(d)**3 for d in digits]):
narcissistic_nums.append(num)
print(narcissistic_nums)
```
通过循环遍历100到999的整数,将每个整数转换为字符串,然后使用字符串切片或循环遍历的方式将每个数字单独取出,再使用列表解析式求列表中每个数字的立方和,判断是否等于原数,如果是,则将该数添加到水仙花数列表中。最后打印输出水仙花数列表。
阅读全文