Kiểm tra xem số có phải là python một chữ số không

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

  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

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

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Biết cách kiểm tra xem một chuỗi Python có chứa số hay không có thể là điều bạn sẽ phải làm vào một lúc nào đó trong ứng dụng của mình

Một cách tiếp cận đơn giản để kiểm tra xem một chuỗi Python có chứa một số hay không là xác minh mọi ký tự trong chuỗi bằng phương thức chuỗi isdigit[]. Khi đã xong, chúng tôi nhận được một danh sách các booleans và nếu bất kỳ phần tử nào của nó là True, điều đó có nghĩa là chuỗi chứa ít nhất một số

Có nhiều cách để giải quyết vấn đề này và hướng dẫn này đi qua một vài trong số đó

Bắt đầu nào

Mục lục

Sử dụng vòng lặp For và isdigit[] để tìm hiểu xem chuỗi có chứa số không

Một cách tiếp cận cơ bản để thực hiện kiểm tra này là sử dụng vòng lặp for đi qua mọi ký tự của chuỗi và kiểm tra xem ký tự đó có phải là số hay không bằng cách sử dụng phương thức chuỗi isdigit[]

Nếu ít nhất một ký tự là chữ số thì trả về True nếu không thì trả về False

Chúng ta sẽ viết một hàm để thực hiện logic này

def containsNumber[value]:
    for character in value:
        if character.isdigit[]:
            return True
    return False

Việc thực thi hàm dừng ngay khi tìm thấy số đầu tiên trong chuỗi hoặc sau khi thực hiện vòng lặp nếu không tìm thấy số nào

Hãy áp dụng chức năng này cho một số chuỗi để xem nó có hoạt động tốt không

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True

Nó đang làm công việc của nó

Một cách khác để sử dụng isdigit[] để kiểm tra xem chuỗi có chứa số không

Một cách khác để kiểm tra xem một chuỗi Python có chứa một số hay không bằng cách sử dụng phương thức chuỗi isdigit[] cùng với khả năng hiểu danh sách

Trước tiên hãy tóm tắt lại cách thức hoạt động của phương thức isdigit

>>> '123'.isdigit[]
True
>>> '1'.isdigit[]
True
>>> 'a'.isdigit[]
False
>>> 'a1'.isdigit[]
False
>>> ''.isdigit[]
False         

Hãy lấy một chuỗi và áp dụng isdigit[] cho mọi ký tự của chuỗi

>>> value = 'adf2'
>>> [char.isdigit[] for char in value]
[False, False, False, True]         

Chúng tôi đã sử dụng cách hiểu danh sách để tạo danh sách các phép toán luận trong đó mọi phần tử là giá trị được trả về bởi isdigit[] cho mỗi ký tự trong chuỗi

Vì vậy, chúng ta có thể làm gì với danh sách này?

Chúng tôi có thể xác minh xem giá trị boolean True có trong danh sách này không. Điều này sẽ chỉ ra rằng chuỗi chứa ít nhất một số

Để làm điều đó, chúng ta có thể sử dụng câu lệnh if other

>>> if True in [char.isdigit[] for char in value]:
…     print["The string contains a number"]
… else:
…     print["The string doesn't contain a number"]
… 
The string contains a number         

Hãy tạo một hàm kết hợp những gì chúng ta đã thấy cho đến nay

Câu lệnh if được sử dụng để trả về True nếu chuỗi chứa ít nhất một số. Nếu không, nó trả về Sai

def containsNumber[value]:
    if True in [char.isdigit[] for char in value]:
        return True
    return False

Đây là những gì hàm trả về khi chúng ta truyền vài chuỗi cho nó

>>> print[containsNumber['']]
False
>>> print[containsNumber['awirfd']]
False
>>> print[containsNumber['dfgh3']]
True
>>> print[containsNumber['12345']]
True

Đầu ra của chức năng của chúng tôi có vẻ tốt

Sử dụng hàm Any[] để kiểm tra xem chuỗi có chứa số không

Chúng ta có thể bắt đầu từ mã mà chúng ta đã tạo trong phần trước và thay thế câu lệnh if bằng một thứ khác…

…Python có cú pháp sau

any[iterable]

Hàm any[] trả về True nếu bất kỳ phần tử nào trong iterable là True, ngược lại nó trả về False. Hàm cũng trả về Sai nếu lần lặp trống

Điều này có nghĩa là chúng ta có thể chuyển danh sách các phép toán luận được tạo trong phần trước cho hàm any[] và loại bỏ câu lệnh if được sử dụng trước đó

________số 8_______

Như bạn có thể thấy, chúng ta đã chuyển khả năng hiểu danh sách cho hàm any[] Python

Đây là đầu ra của hàm khi chúng ta chuyển đến nó các chuỗi tương tự đã được kiểm tra trong phần trước

>>> print[containsNumber['']]
False
>>> print[containsNumber['awirfd']]
False
>>> print[containsNumber['dfgh3']]
True
>>> print[containsNumber['12345']]
True

Kiểm tra xem chuỗi Python có chứa số bằng biểu thức chính quy không

Một cách tiếp cận khác để tìm hiểu xem một số có phải là một phần của chuỗi hay không bằng cách sử dụng biểu thức chính quy Python

Tên của mô-đun Python để xử lý các biểu thức chính quy là

Đầu tiên, hãy nghĩ ra một biểu thức chính quy mà chúng ta có thể sử dụng để phát hiện bất kỳ số nào trong một chuỗi. Để làm điều này, chúng ta có thể sử dụng lại. hàm findall[]

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
0

Đối số đầu tiên chúng tôi chuyển đến re. findall là mẫu chúng tôi đang tìm kiếm

Để tìm kiếm nhiều hơn một số, chúng ta có thể sử dụng ‘[0-9]+’

Đối số thứ hai là chuỗi mà chúng tôi tìm kiếm mẫu cụ thể

Đây là đầu ra của biểu thức chính quy này được áp dụng cho nhiều chuỗi

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
1

Chúng tôi có thể cập nhật chức năng của mình để gọi lại. findall[] và kiểm tra xem danh sách kết quả có rỗng hay không

Nếu danh sách kết quả không trống thì chuỗi chứa ít nhất một số. Chúng ta cũng có thể sử dụng thực tế là trong Python các chuỗi rỗng là sai

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
2

Câu lệnh trả về của hàm này sử dụng toán tử bậc ba Python để trả về Đúng hoặc Sai tùy thuộc vào thực tế là danh sách số có trống hay không

Một tùy chọn khác là sử dụng hàm bool[] để chuyển đổi danh sách được trả về bởi. hàm findall[] thành boolean

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
3

Hãy áp dụng chức năng này cho một vài chuỗi để xác nhận rằng nó hoạt động như mong đợi

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
4

Làm cách nào để bạn kiểm tra xem chuỗi có chứa số bằng hàm Map không?

Và đây là một cách khác để tìm xem có bất kỳ số nào trong chuỗi của bạn không

Lần này chúng ta sẽ sử dụng hàm map[] áp dụng một chức năng cụ thể cho các thành phần của một lần lặp [một chuỗi là một lần lặp vì bạn có thể xem nó dưới dạng một chuỗi ký tự]

Nếu chúng ta chuyển hàm isdigit[] và một chuỗi vào hàm bản đồ, chúng ta sẽ lấy lại một đối tượng bản đồ

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
5

Chúng ta có thể làm gì với nó?

Chúng ta có thể sử dụng hàm list[] để chuyển đổi nó thành danh sách Python

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
6

Như bạn có thể thấy từ đầu ra ở trên, chúng tôi lấy lại danh sách các phép toán luận trong đó mọi phép toán luận có liên quan đến một ký tự trong chuỗi. Boolean là Đúng nếu ký tự là một số và là Sai nếu không

Sau đó, chúng ta có thể sử dụng hàm any[], đã được sử dụng ở một trong các phần trước, để biết liệu danh sách có chứa ít nhất một phần tử True hay không

>>> print[containsNumber['1s4f6h']]
True
>>> print[containsNumber['python']]
False
>>> print[containsNumber['python3']]
True
7

Có ý nghĩa?

Phần kết luận

Chúng tôi đã trải qua nhiều cách để tìm hiểu xem một chuỗi Python có chứa một số hay không

Bạn đã học cách sử dụng phương thức chuỗi isdigit[], hàm any[], biểu thức chính quy và hàm map

Cách yêu thích của bạn là gì?

Hãy cho tôi biết trong phần bình luận bên dưới 🙂

Bài viết liên quan

Tìm giá trị tối thiểu và tối đa trong từ điển Python [Từng bước]

Python với câu lệnh mở. Hướng dẫn đơn giản

Chức năng giảm Python. Bạn có nên sử dụng nó hay không?

Claudio Sabato

Tôi là Trưởng nhóm công nghệ, Kỹ sư phần mềm và Huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành Nhà phát triển siêu hạng

Chủ Đề