Câu trả lời:
Sử dụng str.isspace()
phương pháp:
Trả về
True
nếu chỉ có các ký tự khoảng trắng trong chuỗi và có ít nhất một ký tựFalse
.Một ký tự là khoảng trắng nếu trong cơ sở dữ liệu ký tự Unicode (xem unicodingata ), hoặc loại chung của nó là Zs (Dấu phân cách, dấu cách không gian) hoặc lớp hai chiều của nó là một trong các WS, B hoặc S.
Kết hợp điều đó với một trường hợp đặc biệt để xử lý chuỗi rỗng.
Ngoài ra, bạn có thể sử dụng str.strip()
và kiểm tra xem kết quả có trống không.
None
, hoặc''
if len(str) == 0 or str.isspace():
len(my_str) == 0
cũng có thể được viết not my_str
.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
True
cho None
?
Bạn muốn sử dụng isspace()
phương pháp
str. không gian ()
Trả về true nếu chỉ có các ký tự khoảng trắng trong chuỗi và có ít nhất một ký tự, sai khác.
Điều đó được định nghĩa trên mọi đối tượng chuỗi. Đây là một ví dụ sử dụng cho trường hợp sử dụng cụ thể của bạn:
if aStr and (not aStr.isspace()):
print aStr
Bạn có thể sử dụng str.isspace()
phương pháp.
đối với những người mong đợi một hành vi như chuỗi apache StringUtils.isBlank hoặc Guava String.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Kiểm tra độ dài của danh sách được đưa ra bởi phương thức split ().
if len(your_string.split()==0:
print("yes")
Hoặc So sánh đầu ra của phương thức dải () với null.
if your_string.strip() == '':
print("yes")
len()
hoạt động trên chuỗi. Ngoài ra, OP không yêu cầu kiểm tra chuỗi trống, nhưng đối với một chuỗi là tất cả các khoảng trắng. Phương pháp thứ hai của bạn không phải là xấu. Ngoài ra, parens của bạn xung quanh điều kiện không cần thiết trong python.
==0
bằng==1
if len(your_string.split())==0:
-> if not your_string.split():
, if your_string.strip() == '':
-> if not your_string.strip():
. Trong mọi trường hợp, giải pháp thứ nhất kém hơn các giải pháp hiện có và giải pháp thứ hai đã được đề cập trong các câu trả lời khác.
Đây là một câu trả lời nên hoạt động trong mọi trường hợp:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Nếu biến là Không, nó sẽ dừng tại not s
và không đánh giá thêm (kể từ đó not None == True
). Rõ ràng, strip()
phương thức này xử lý các trường hợp thông thường của tab, dòng mới, v.v.
not None == True
có lẽ rõ ràng hơn để nói None is False
. Ngoài ra, ==
không nên được sử dụng cho những so sánh này.
Tôi giả sử trong kịch bản của bạn, một chuỗi rỗng là một chuỗi thực sự trống hoặc một chuỗi chứa tất cả khoảng trắng.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Lưu ý điều này không kiểm tra None
Tôi đã sử dụng như sau:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None
?
Tương tự với phương thức tĩnh chuỗi c # làNullOrWhiteSpace.
def isNullOrWhiteSpace(str):
"""Indicates whether the specified string is null or empty string.
Returns: True if the str parameter is null, an empty string ("") or contains
whitespace. Returns false otherwise."""
if (str is None) or (str == "") or (str.isspace()):
return True
return False
isNullOrWhiteSpace(None) -> True // None equals null in c#, java, php
isNullOrWhiteSpace("") -> True
isNullOrWhiteSpace(" ") -> True
return (str is None) or (str == "") or (str.isspace())
None
và ""
đều là giả, vì vậy bạn chỉ có thể:return not str or str.isspace()
U+00A0
hoặcALT+160
. Trông có vẻ cố định trong Python 2.7, tuy nhiên.