Jawaban:
Gunakan str.isspace()
metode:
Kembali
True
jika hanya ada karakter spasi putih di string dan setidaknya ada satu karakterFalse
.Karakter adalah spasi bila dalam database karakter Unicode (lihat unicodedata ), kategori umumnya adalah Zs ("Separator, space"), atau kelas dua arahnya adalah salah satu dari WS, B, atau S.
Kombinasikan dengan case khusus untuk menangani string kosong.
Atau, Anda dapat menggunakan str.strip()
dan memeriksa apakah hasilnya kosong.
None
, atau''
if len(str) == 0 or str.isspace():
len(my_str) == 0
juga bisa ditulis not my_str
.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
True
untuk None
?
Anda ingin menggunakan isspace()
metode ini
str. isspace ()
Kembalikan true jika hanya ada karakter spasi putih di string dan setidaknya ada satu karakter, false jika tidak.
Itu didefinisikan pada setiap objek string. Ini adalah contoh penggunaan untuk kasus penggunaan spesifik Anda:
if aStr and (not aStr.isspace()):
print aStr
Anda dapat menggunakan str.isspace()
metode ini.
bagi mereka yang mengharapkan perilaku seperti apache StringUtils.isBlank atau Guava Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Periksa panjang daftar yang diberikan oleh metode split ().
if len(your_string.split()==0:
print("yes")
Atau Bandingkan keluaran metode strip () dengan nol.
if your_string.strip() == '':
print("yes")
len()
bekerja pada string. Juga, OP tidak meminta untuk menguji string kosong, tetapi untuk string yang semua spasi. Metode kedua Anda tidak buruk. Juga, orang tua Anda yang berada di sekitar kondisi tidak diperlukan dalam python.
==0
dengan==1
if len(your_string.split())==0:
-> if not your_string.split():
, if your_string.strip() == '':
-> if not your_string.strip():
. Bagaimanapun, yang pertama lebih rendah daripada solusi yang ada, dan yang kedua telah disebutkan dalam jawaban lain.
Berikut ini jawaban yang cocok untuk semua kasus:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Jika variabelnya adalah Tidak ada, itu akan berhenti pada not s
dan tidak mengevaluasi lebih lanjut (sejak not None == True
). Tampaknya, strip()
metode ini menangani kasus tab, baris baru, dll.
not None == True
Mungkin lebih jelas untuk hanya mengatakan None is False
. Juga, ==
tidak boleh digunakan untuk perbandingan ini.
Saya berasumsi dalam skenario Anda, string kosong adalah string yang benar-benar kosong atau yang berisi semua ruang putih.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Catatan ini tidak memeriksa None
Saya menggunakan berikut:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None
?
Kemiripan dengan metode statis c # string isNullOrWhiteSpace.
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
dan ""
palsu, sehingga Anda bisa saja:return not str or str.isspace()
U+00A0
atauALT+160
. Tampak diperbaiki di Python 2.7, namun.