Bagaimana saya bisa menguji jika string hanya berisi spasi putih?
Contoh string:
" "
(ruang, ruang, ruang)" \t \n "
(spasi, tab, spasi, baris baru, spasi)"\n\n\n\t\n"
(baris baru, baris baru, baris baru, tab, baris baru)
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.
U+00A0
atauALT+160
. Tampak diperbaiki di Python 2.7, namun.None
, atau''
if len(str) == 0 or str.isspace():
len(my_str) == 0
juga bisa ditulisnot my_str
.sumber
True
untukNone
?Anda ingin menggunakan
isspace()
metode iniItu didefinisikan pada setiap objek string. Ini adalah contoh penggunaan untuk kasus penggunaan spesifik Anda:
sumber
Anda dapat menggunakan
str.isspace()
metode ini.sumber
bagi mereka yang mengharapkan perilaku seperti apache StringUtils.isBlank atau Guava Strings.isNullOrEmpty :
sumber
Periksa panjang daftar yang diberikan oleh metode split ().
Atau Bandingkan keluaran metode strip () dengan nol.
sumber
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:
Jika variabelnya adalah Tidak ada, itu akan berhenti pada
not s
dan tidak mengevaluasi lebih lanjut (sejaknot None == True
). Tampaknya,strip()
metode ini menangani kasus tab, baris baru, dll.sumber
not None == True
Mungkin lebih jelas untuk hanya mengatakanNone 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.
Catatan ini tidak memeriksa
None
sumber
Saya menggunakan berikut:
sumber
None
?Untuk memeriksa apakah string hanya spasi atau baris baru
Gunakan kode sederhana ini
sumber
Kemiripan dengan metode statis c # string isNullOrWhiteSpace.
sumber
return (str is None) or (str == "") or (str.isspace())
None
dan""
palsu, sehingga Anda bisa saja:return not str or str.isspace()