Computer >> Máy Tính >  >> Lập trình >> Python

Viết một chương trình bằng Python để lọc các số mạnh trong một chuỗi nhất định

Giả sử bạn có một chuỗi và kết quả để lọc các số khó,

original series is
0    153
1    323
2    371
3    420
4    500
dtype: int64
Armstrong numbers are:-
0    153
2    371
dtype: int64

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước dưới đây -

  • Xác định một chuỗi.

  • Tạo một danh sách trống và đặt vòng lặp for để truy cập tất cả dữ liệu chuỗi.

  • Đặt giá trị intial armstrong là 0 và tạo biến tạm thời để lưu trữ từng phần tử của chuỗi. Nó được định nghĩa bên dưới,

l = []
for val in data:
   armstrong = 0
   temp = val
  • Tạo vòng lặp while và kiểm tra nhiệt độ> 0 và tính phần dư theo nhiệt độ% 10. Thêm giá trị armstrong bằng cách lấy khối của phần dư và chia giá trị tạm thời cho 10 cho đến khi nó đạt đến 0 để kết thúc vòng lặp. Nó được định nghĩa bên dưới,

while(temp>0):
   rem = temp % 10
   armstrong = armstrong + (rem**3)
   temp = temp // 10
  • Đặt điều kiện if để so sánh giá trị ban đầu với giá trị tạm thời. Nếu nó được khớp, thì nối các giá trị vào danh sách.

if(armstrong==val):
   l.append(val)
  • Cuối cùng, kiểm tra các giá trị danh sách có trong chuỗi bằng cách sử dụng isin (). Nó được định nghĩa bên dưới,

data[data.isin(l)]

Ví dụ

Hãy xem đoạn mã dưới đây để triển khai tốt hơn -

import pandas as pd
data = pd.Series([153,323,371,420,500])
print("original series is\n", data)
l = []
for val in data:
   armstrong = 0
   temp = val
   while(temp>0):
      rem = temp % 10
      armstrong = armstrong + (rem**3)
      temp = temp // 10
   if(armstrong==val):
      l.append(val)
print("Armstrong numbers are:-")
print(data[data.isin(l)])

Đầu ra

original series is
0    153
1    323
2    371
3    420
4    500
dtype: int64
Armstrong numbers are:-
0    153
2    371
dtype: int64