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

Làm thế nào để kiểm tra xem một chuỗi trong Python có trong ASCII không?


Cách đơn giản nhất là lặp lại các ký tự của chuỗi và kiểm tra xem mỗi ký tự có phải là ASCII hay không.

ví dụ

def is_ascii(s):
    return all(ord(c) < 128 for c in s)
print is_ascii('ӓmsterdӒm')

Đầu ra

Điều này sẽ cung cấp kết quả:

False

Nhưng phương pháp này rất kém hiệu quả. Một cách tốt hơn là giải mã chuỗi bằng str.decode ('ascii') và kiểm tra các ngoại lệ.

ví dụ

mystring = 'ӓmsterdӓm'
try:
    mystring.decode('ascii')
except UnicodeDecodeError:
    print "Not an ASCII-encoded string"
else:
    print "May be an ASCII-encoded string"

Đầu ra

Điều này sẽ cung cấp kết quả:

Not an ASCII-encoded string