Cách dễ nhất để kiểm tra điều này trong Python là dùng regular expressions. Để kiểm tra xem chuỗi cho trước có ít nhất một chữ cái và một số, ta dùng re.match(regex, string).
Ví dụ
import re
print(bool(re.match('^(?=.*[0-9]$)(?=.*[a-zA-Z])', 'hasAlphanum123')))
print(bool(re.match('^(?=.*[0-9])(?=.*[a-zA-Z]$)', 'some string')))
Kết quả
True False
Cú pháp ?= dùng để gọi lookaheads trong regular expressions. Lookaheads thực sự look ahead trong chuỗi từ vị trí hiện tại để tìm matches trong chuỗi cho trước. Bạn có thể đọc thêm về chúng tại đây.
Chúng ta cũng có thể kiểm tra một chữ cái và một số bằng vòng lặp for đơn giản và 2 flag.
Ví dụ
def validateString(s):
letter_flag = False
number_flag = False
for i in s:
if i.isalpha():
letter_flag = True
if i.isdigit():
number_flag = True
return letter_flag and number_flag
print(validateString('hasAlphanum23'))
print(validateString('some string'))
Kết quả
Điều này cho ra kết quả:
True False