Làm thế nào để bạn tìm thấy các chữ số trong một số trong python?

Sử dụng python, đếm số chữ số trong một số. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách đếm tổng số chữ số trong một số bằng python. Chương trình sẽ nhận đầu vào từ người dùng và in ra kết quả

Chúng tôi sẽ chỉ cho bạn hai cách khác nhau để tính tổng các chữ số trong một số

Giải pháp 1 (sử dụng vòng lặp while)

Ý tưởng đằng sau giải pháp này là tiếp tục xóa từng chữ số ngoài cùng bên phải của một số cho đến khi số đó trở thành số không

Thuật toán sau chúng ta sẽ sử dụng cho phương pháp này

  1. Lấy đầu vào của người dùng và lưu trữ nó trong một biến
  2. Tạo một biến đếm để giữ tổng số đếm. Khởi tạo biến này bằng 0 khi bắt đầu chương trình
  3. Sử dụng vòng lặp while, xóa chữ số ngoài cùng bên phải của số hoặc chuyển đổi số thành số mới này. Ví dụ: nếu số là 123, hãy chuyển đổi thành 12, sau đó chuyển đổi thành 1 và cuối cùng là 0
  4. Tăng biến đếm lên 1 trên mỗi chuyển đổi. Làm điều đó cho đến khi số trở thành số không. Vào cuối vòng lặp while, biến đếm này sẽ giữ tổng số chữ số của số
  5. In biến đếm

chương trình Python

Bạn cũng có thể tải xuống chương trình này từ đây

python count digits in number

  1. Mã tương tự như thuật toán chúng tôi đã giải thích ở trên. 'count' là biến đếm được sử dụng để chứa tổng số chữ số trong số. Biến này được khởi tạo bằng 0 ngay từ đầu
  2. Chúng tôi đang sử dụng phương thức input() để đọc đầu vào của người dùng. Phương thức này trả về một chuỗi, chúng ta sẽ gói giá trị này bằng int() để lấy giá trị nguyên của số mà người dùng đã nhập. Giá trị này được lưu trữ trong biến 'số'
  3. 'Vòng lặp while' sẽ chạy cho đến khi giá trị của 'số' lớn hơn 0
  4. Trong vòng lặp, chúng tôi đang chia số cho 10 và gán giá trị mới này cho số. Nếu giá trị là 123, nó sẽ là 12 sau khi chia. Nó giống như xóa chữ số cuối cùng của số
  5. Tăng giá trị của count lên 1 sau khi chuyển đổi. Cuối cùng, biến 'số' sẽ trở thành 0 và vòng lặp sẽ dừng lại
  6. In giá trị của 'đếm' ở cuối chương trình

python count digits number

Giải pháp 2 (Sử dụng các phương thức sẵn có)

Thay vì sử dụng vòng lặp while, chúng ta có thể chuyển đổi trực tiếp số nguyên thành chuỗi và lấy độ dài của chuỗi. Trong python, việc lấy độ dài của chuỗi rất dễ dàng bằng cách sử dụng phương thức 'len()'. Để chuyển đổi một số thành một chuỗi, chúng ta có thể sử dụng phương thức 'str()'

'abs' được dùng để lấy giá trị tuyệt đối của một số. tôi. e. để xử lý trường hợp ngay cả khi số âm

Ví dụ: nếu giá trị đầu vào của chúng tôi là '-123', abs() sẽ chuyển đổi nó thành '123'. str() sẽ chuyển đổi nó thành một chuỗi và len() sẽ trả về độ dài của chuỗi hoặc 3

Xin chào độc giả. Trong bài viết này, chúng tôi sẽ tập trung vào các cách trích xuất các chữ số từ Chuỗi Python. Vì vậy, chúng ta hãy bắt đầu


1. Sử dụng hàm isdigit() để trích xuất các chữ số từ chuỗi Python

Python cung cấp cho chúng tôi string.isdigit() để kiểm tra sự hiện diện của các chữ số trong một chuỗi

Hàm isdigit() trong Python trả về True nếu chuỗi đầu vào chứa các ký tự chữ số trong đó

cú pháp

string.isdigit()

Chúng ta không cần truyền bất kỳ tham số nào cho nó. Là một đầu ra, nó trả về Đúng hoặc Sai tùy thuộc vào sự hiện diện của các ký tự chữ số trong một chuỗi

ví dụ 1

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

Trong ví dụ này, chúng tôi đã lặp lại ký tự chuỗi đầu vào theo ký tự bằng cách sử dụng vòng lặp for. Ngay khi hàm isdigit() gặp một chữ số, nó sẽ lưu nó vào một biến chuỗi có tên là ‘num’

Do đó, chúng ta thấy đầu ra như hình dưới đây–

đầu ra

Original String : Python4Journaldev
Extracted numbers from the list : 4

Giờ đây, chúng ta thậm chí có thể sử dụng khả năng hiểu danh sách Python để ghép hàm lặp và hàm idigit() thành một dòng

Bằng cách này, các ký tự chữ số được lưu vào danh sách 'num' như hình bên dưới

ví dụ 2

inp_str = "Hey readers, we all are here be 4 the time!"


print("Original string : " + inp_str) 


num = [int(x) for x in inp_str.split() if x.isdigit()] 

 
print("The numbers list is : " + str(num)) 

đầu ra

Original string : Hey readers, we all are here be 4 the time!
The numbers list is : [4]


2. Sử dụng thư viện regex để trích xuất các chữ số

Thư viện biểu thức chính quy Python được gọi là 'thư viện regex' cho phép chúng tôi phát hiện sự hiện diện của các ký tự cụ thể như chữ số, một số ký tự đặc biệt, v.v. từ một chuỗi

Chúng ta cần nhập thư viện regex vào môi trường python trước khi thực hiện bất kỳ bước nào tiếp theo

import re

Hơn nữa, chúng tôi, chúng tôi re.findall(r'\d+', string) để trích xuất các ký tự chữ số từ chuỗi. Phần ‘\d+’ sẽ giúp hàm findall() phát hiện sự hiện diện của bất kỳ chữ số nào

Thí dụ

import re
inp_str = "Hey readers, we all are here be 4 the time 1!"


print("Original string : " + inp_str) 

num = re.findall(r'\d+', inp_str) 

print(num)

Vì vậy, như được thấy bên dưới, chúng ta sẽ nhận được một danh sách tất cả các ký tự chữ số từ chuỗi

đầu ra

Original string : Hey readers, we all are here be 4 the time 1!
['4', '1']


Sự kết luận

Đến đây, chúng ta đã đi đến cuối chủ đề này. Vui lòng bình luận bên dưới, trong trường hợp bạn gặp bất kỳ câu hỏi nào

Tôi khuyên tất cả các bạn nên thử triển khai các ví dụ trên bằng cách sử dụng các cấu trúc dữ liệu như danh sách, dict, v.v.