Cho dù bạn đang tạo tập lệnh xác minh cho đầu vào của người dùng, biểu mẫu đăng nhập yêu cầu người dùng đưa ký tự vào mật khẩu - kiểm tra xem chuỗi có chứa ký tự không phải là thao tác không phổ biến
Trong hướng dẫn này - chúng ta sẽ xem xét nhiều cách để bạn có thể kiểm tra xem một chuỗi có chứa chữ số/số trong Python hay không, bao gồm điểm chuẩn cho phương pháp hiệu quả nhất cuối cùng
Kiểm tra xem chuỗi có chứa số trong Python không
Có nhiều cách để kiểm tra xem một ký tự có phải là một số hay không [
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
2, str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3, str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4], mà bạn có thể kết hợp với vòng lặp for, để kiểm tra ít nhất một lần truy cập tích cực. Ngoài ra, bạn có thể sử dụng Biểu thức chính quy làm công cụ đối sánh mẫu chung, linh hoạt, mạnh mẽ và được thiết kế để áp dụng cho khối văn bản lớn. Cuối cùng - bạn luôn có thể str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
5 mỗi ký tự được đưa ra một câu lệnh có điều kiện và trả về str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6 là str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
7 trong số đó dẫn đến str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6Việc lựa chọn giữa những điều này nên xem xét hiệu quả của các phương pháp, mức độ chi tiết và kiểu mã hóa, cũng như các tác vụ ngược dòng hoặc xuôi dòng liên quan đến hoạt động
Kiểm tra xem chuỗi có chứa số với ord[]
Hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
2 nhận một ký tự và trả về giá trị ASCII của nóGiá trị ASCII của
String is whole numeric? True
String is whole numeric? False
0 là 48 và giá trị ASCII của String is whole numeric? True
String is whole numeric? False
1 là 57. Bất kỳ số nào trong số này, theo phần mở rộng, sẽ có giá trị ASCII trong khoảng từ 48 đến 57. Bây giờ để kiểm tra xem chuỗi có bất kỳ số nào không, chúng tôi sẽ duyệt qua toàn bộ chuỗi đầu vào và kiểm tra giá trị ASCII của từng ký tự, nếu giá trị ASCII lớn hơn 47 và nhỏ hơn 58, có nghĩa đó là một số và chúng tôi sẽ trả về str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
1Kết quả này trong
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
2Kiểm tra xem chuỗi có chứa số với innumeric[] không
Hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 trả về str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6 nếu chuỗi đầu vào chỉ chứa số, ngược lại, nó trả về String is whole numeric? True
String is whole numeric? False
5str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
Kết quả này trong
________số 8Ghi chú. Hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 sẽ không hoạt động như bạn mong đợi đối với số âm hoặc số thực. Nếu chúng ta chuyển một chuỗi chỉ có số âm hoặc số thực, nó sẽ trả về String is whole numeric? True
String is whole numeric? False
5, bởi vì các ký tự String is whole numeric? True
String is whole numeric? False
8 và String is whole numeric? True
String is whole numeric? False
9 được liên kết với số âm và số thực thực sự là, không phải sốMặc dù vậy, vì các ký tự chỉ là các chuỗi có độ dài 1 trong Python - bạn có thể lặp qua các ký tự và sử dụng
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 để kiểm tra xem chúng có phải là số khôngstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3Kiểm tra xem chuỗi có chứa số với isdigit[]
Hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4 kiểm tra xem tất cả các ký tự trong chuỗi có phải là chữ số không. Nếu có - nó trả về str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6 và nếu không, nó trả về String is whole numeric? True
String is whole numeric? False
5. Một lần nữa, vì các ký tự chỉ là các chuỗi có độ dài 1 trong Python - phương thức này có thể được sử dụng trong một vòng lặp cho mỗi ký tựstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
7Ghi chú. Phương thức
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4 chỉ hoạt động theo cách tương tự như str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 và nếu bạn chuyển một chuỗi chứa số float hoặc số âm cho nó, thì String is whole numeric? True
String is whole numeric? False
5 sẽ được trả về do các ký tự đặc biệt không phải là số. Tuy nhiên, ở cấp độ ký tự, nếu chỉ cần một giá trị str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6 là đủ để xác định xem chuỗi có chứa số hay không - thì có thể áp dụngSự khác biệt giữa isnumeric[] và isdigit[]?
Vậy, sự khác biệt giữa
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 và str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4 là gì?
3 kiểm tra xem có bất kỳ ký tự nào là biểu diễn unicode của một giá trị số hay không [bao gồm biểu diễn số La Mã, chỉ số trên, chỉ số dưới và phân số]str1 = "918" print["String is whole numeric?", str1.isnumeric[]] str2 = "The meaning of the universe is 42" print["String is whole numeric?", str2.isnumeric[]]
4 kiểm tra xem có bất kỳ ký tự nào là chữ số unicode hay không [không bao gồm biểu diễn số La Mã, nhưng bao gồm siêu/chỉ số dưới và phân số]str1 = "918" print["String is whole numeric?", str1.isnumeric[]] str2 = "The meaning of the universe is 42" print["String is whole numeric?", str2.isnumeric[]]
70 kiểm tra xem có bất kỳ ký tự nào là chữ số thập phân hay không [sẽ trả vềstr1 = "918" print["String is whole numeric?", str1.isnumeric[]] str2 = "The meaning of the universe is 42" print["String is whole numeric?", str2.isnumeric[]]
5 cho bất kỳ ký tự nào không phải làString is whole numeric? True String is whole numeric? False
75 trong cơ số 10]str1 = "918" print["String is whole numeric?", str1.isnumeric[]] str2 = "The meaning of the universe is 42" print["String is whole numeric?", str2.isnumeric[]]
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3 là phương pháp rộng nhất, trong khi str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
70 là phương pháp hẹp nhất giữa baKiểm tra xem chuỗi có chứa số với map[] và any[]
Hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
5 thực thi hàm được cung cấp cho từng thành phần của iterable được truyền trong hàm bản đồ. Mỗi phần tử của một iterable được truyền cho hàm dưới dạng tham sốstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
79 được thực hiện cho mọi mục của str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
30. Điều này cho phép logic rất linh hoạt và mạnh mẽ, chỉ bị giới hạn bởi phạm vi mở rộng của str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
79 mà bạn gọi trên đầu vào. Phương thức này trả về một thể hiện str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
32, có thể dễ dàng biến thành các bộ sưu tập khác như danh sách hoặc tập hợpChúng ta có thể viết một hàm trả về một giá trị boolean cho biết một ký tự có phải là một số hay không và lệnh gọi
5 do đó sẽ dẫn đến một danh sách các giá trị booleanstr1 = "918" print["String is whole numeric?", str1.isnumeric[]] str2 = "The meaning of the universe is 42" print["String is whole numeric?", str2.isnumeric[]]
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
7 trả về str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6 nếu bất kỳ phần tử nào của iterable được truyền là str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
6, nếu không, nó trả về String is whole numeric? True
String is whole numeric? False
5Xâu chuỗi hai thứ này lại với nhau - chúng ta có thể tạo một tập lệnh ngắn, cấp cao và trừu tượng hóa vòng lặp for
Kết quả này trong
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3Nếu chức năng của bạn là một lớp lót - không cần trích xuất nó dưới dạng một chức năng được đặt tên. Thay vào đó, bạn có thể viết một hàm lambda ẩn danh vì mục đích ngắn gọn
Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4Điều này cũng dẫn đến
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
5Kiểm tra xem chuỗi có chứa số trong Python với biểu thức chính quy không
Cụm từ thông dụng là các mẫu tìm kiếm được thiết kế để khớp với văn bản đầu vào. Chúng linh hoạt và có bản chất của chúng - bạn có thể viết một số biểu thức tùy ý cho cùng một mẫu để tìm kiếm, cũng như bao gồm bất kỳ mẫu dễ hiểu nào mà bạn có thể nghĩ ra
Mô-đun
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
38 của Python được sử dụng để viết, biên dịch và khớp văn bản với các biểu thức thông thường. Nó đưa ra nhiều phương thức khác nhau, chẳng hạn như str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
39 khớp với việc một chuỗi có bắt đầu bằng một mẫu hay không, str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
30 tìm lần xuất hiện đầu tiên của nhiều lần khớp trong một chuỗi và str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
31 kiểm tra tất cả các lần xuất hiệnGhi chú. Cả ba phương thức đều chấp nhận đối số
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
32 và str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
33 và chạy tìm kiếm str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
32 trong chuỗi str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
33Mẫu xác định một chữ số là
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
36str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
20Phương thức
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
30 trả về một đối tượng str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
38, chứa kết quả tìm được và chỉ số bắt đầu và kết thúcstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
21Đối tượng is có thể được đánh giá thành giá trị boolean dựa trên việc đó là đối tượng
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
38 hay str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
40. Kết quả này trongstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
22Không giống như phương thức
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
30, phương thức str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
31 trả về tất cả các lần xuất hiện của mẫu thay vì chỉ lần đầu tiênstr1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
23Kết quả này trong
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
22điểm chuẩn
Còn hiệu suất thì sao?
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
25Kết quả này trong
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
26Nói chung, các cách tiếp cận vòng lặp for chạy trong cùng một khoảng thời gian, với ít chi phí từ các phương thức cụ thể. Lambda với
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
7 thực tế là chậm nhất [rất nhiều thao tác dư thừa, do chuyển đổi danh sách thành danh sách rồi giảm danh sách], trong khi Biểu thức chính quy có thời gian chạy nhanh nhất với phương sai xung quanh nó thấp nhất [chúng luôn nhanh]Tuy nhiên, trên các văn bản đầu vào dài hơn, độ phức tạp về thời gian của từng cách tiếp cận khác nhau được nhấn mạnh, đặc biệt tùy thuộc vào số lượng chữ số khớp [dù chữ số có phổ biến hay không]
Chuỗi đầu tiên tạo ra một chuỗi ngẫu nhiên có số lượng chữ số và ký tự bằng nhau, trong khi chuỗi sau là chuỗi chỉ có ký tự có một chữ số duy nhất ở cuối [độ phức tạp về thời gian tồi tệ nhất]
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
27str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
28str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
29str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
0str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
1Với số lần truy cập thấp - Cụm từ thông dụng có hiệu suất cao nhất. Với nhiều lần truy cập, cách tiếp cận hàm lambda là hiệu quả nhất và nó duy trì độ phức tạp về thời gian bất kể đầu vào có nhiều lần truy cập hay một lần truy cập. Nhược điểm chính [tính toán dư thừa khi tỷ lệ trúng thấp] được biến thành điểm mạnh chính của nó vì tính dự phòng làm cho nó trở nên mạnh mẽ khi nhập liệu
Phần kết luận
Trong hướng dẫn này, chúng ta đã xem xét nhiều cách để kiểm tra xem một chuỗi trong Python có chứa ít nhất một ký tự hay không. Chúng ta đã xem xét hàm
str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
2, str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
3, str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
4 và str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
70, cũng như cách trừu tượng hóa logic này bằng lệnh gọi hàm lambda bằng cách sử dụng str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
5 và str1 = "918"
print["String is whole numeric?", str1.isnumeric[]]
str2 = "The meaning of the universe is 42"
print["String is whole numeric?", str2.isnumeric[]]
7. Sau đó, chúng tôi đã khám phá Biểu thức chính quy và đánh giá các cách tiếp cận với đầu vào khác nhau