Python水仙花数读写文件
时间: 2024-11-13 21:08:01 浏览: 17
在Python中,水仙花数是一种特殊的整数,其各位数字立方和等于原数本身。例如,370是一个水仙花数,因为3^3 + 7^3 + 0^3 = 370。如果你想要编写一个程序来找出并读取文件中的所有水仙花数,你可以按照以下步骤操作:
1. **定义查找函数**:
创建一个函数来检查一个数字是否是水仙花数。这个函数接收一个整数作为输入,计算各个位的立方和并与原始数值比较。
```python
def is_armstrong_number(n):
# 对n进行字符串转换以便处理每一位
str_n = str(n)
length = len(str_n)
sum_of_cubes = sum(int(digit) ** length for digit in str_n)
return n == sum_of_cubes
```
2. **读取文件**:
使用内置的`open()`函数打开一个文本文件,并逐行读取其中的数字进行检查。
```python
def read_numbers_from_file(file_path):
with open(file_path, 'r') as file:
numbers = [int(line.strip()) for line in file]
return numbers
numbers_to_check = read_numbers_from_file('input.txt')
```
3. **筛选水仙花数**:
应用`is_armstrong_number`函数到文件中的每个数字,并记录下来哪些是水仙花数。
```python
armstrong_numbers = [num for num in numbers_to_check if is_armstrong_number(num)]
```
4. **写入结果**:
如果你想要将找到的水仙花数写入另一个文件,可以这样做:
```python
with open('output.txt', 'w') as output_file:
for number in armstrong_numbers:
output_file.write(f'{number}\n')
```
完成以上步骤后,`input.txt`中的数字会被读取,如果是水仙花数则会写入`output.txt`。
阅读全文