স্ট্রিংয়ে কেবল সাদা স্থান রয়েছে কিনা তা পরীক্ষা করুন


219

স্ট্রিংয়ে কেবল সাদা স্থান থাকলে আমি কীভাবে পরীক্ষা করতে পারি?

উদাহরণস্বরূপ স্ট্রিং:

  • " " (স্থান, স্থান, স্থান)

  • " \t \n " (স্পেস, ট্যাব, স্পেস, নিউলাইন, স্পেস)

  • "\n\n\n\t\n" (নিউলাইন, নিউলাইন, নতুন লাইন, ট্যাব, নিউলাইন)

উত্তর:


312

str.isspace()পদ্ধতিটি ব্যবহার করুন :

Trueস্ট্রিংয়ে কেবল শ্বেতক্ষেত্রের অক্ষর রয়েছে এবং সেখানে অন্তত একটি অক্ষর থাকলে তা ফিরে আসুন Falseotherwise

একটি চরিত্র হোয়াইটস্পেস যদি ইউনিকোড অক্ষর ডাটাবেসের মধ্যে (দেখুন unicodedata ) হয়, এর সাধারণ বিভাগটি হয় জেডএস ("বিভাজক, স্থান"), অথবা এর দ্বিদ্বিতীয় শ্রেণিটি ডাব্লুএস, বি, বা এস এর মধ্যে একটি is

খালি স্ট্রিং পরিচালনা করার জন্য একটি বিশেষ ক্ষেত্রে এটি একত্রিত করুন।

বিকল্পভাবে, আপনি ব্যবহার করতে str.strip()এবং ফলাফল খালি কিনা তা পরীক্ষা করতে পারেন ।


পাইথন ২.৪ এ ব্যর্থ হয় যদি স্ট্রিংটিতে একটি নন-ব্রেকিং স্পেস, চারকোড U+00A0বা থাকে ALT+160। পাইথন ২.7 এ স্থির দেখায়।
কুম্বা

18
মনে রাখবেন যে এটি চেক করে না None, বা''
পার্থ মেহরোত্র

1
পাইথন ২.7.১৩-এ, স্পেস () অবিচ্ছেদ্য স্থানকে একটি স্থান হিসাবে বিবেচনা করবে। নিস!
ইচিং চ্যাং

আপনি খালি স্ট্রিংগুলিও বাদ দিতে পারেন, সেক্ষেত্রে আপনি এটি করতে পারেন:if len(str) == 0 or str.isspace():
জো

@ জোও len(my_str) == 0লেখা যেতে পারে not my_str
এএমসি

55
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]

কেন এটির Trueজন্য পছন্দটি ফিরে আসবে None?
এএমসি

32

আপনি isspace()পদ্ধতিটি ব্যবহার করতে চান

Str। isspace ()

যদি স্ট্রিংয়ে কেবল শ্বেতক্ষেত্রের অক্ষর থাকে এবং কমপক্ষে একটি অক্ষর থাকে তবে অন্যথায় মিথ্যা হলে সত্যটি প্রত্যাবর্তন করুন।

এটি প্রতিটি স্ট্রিং অবজেক্টে সংজ্ঞায়িত করা হয়। আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে এটি ব্যবহারের উদাহরণ হিসাবে রয়েছে:

if aStr and (not aStr.isspace()):
    print aStr

এটি কি বর্তমান শীর্ষ এবং স্বীকৃত উত্তরের মতো একই সমাধান নয় ?
এএমসি



6

বিভক্ত () পদ্ধতি দ্বারা প্রদত্ত তালিকার দৈর্ঘ্য পরীক্ষা করুন।

if len(your_string.split()==0:
     print("yes")

অথবা শূন্যের সাথে স্ট্রিপ () পদ্ধতির আউটপুট তুলনা করুন।

if your_string.strip() == '':
     print("yes")

1
স্ট্রিংকে বিভক্ত করার কোনও কারণ নেই, len()স্ট্রিংগুলিতে কাজ করে। এছাড়াও, ওপি খালি স্ট্রিংয়ের জন্য পরীক্ষা করতে বলছিল না, তবে এমন স্ট্রিংয়ের জন্য যা সমস্ত স্থান ছিল। যদিও আপনার দ্বিতীয় পদ্ধতিটি খারাপ নয়। এছাড়াও, শর্তসাপেক্ষে আপনার পেরেনগুলি অজগরটিতে প্রয়োজন হয় না।
নীলকে

1
আশ্চর্যজনকভাবে যথেষ্ট, প্রথম পদ্ধতিটি হ'ল অক্ষরের চেয়ে কোনও স্থান ফাঁকা নয় যাচাই করার একটি ভাল উপায় , আপনি যদি প্রতিস্থাপন ==0করেন==1
ম্যাড ফিজিকালিস্ট

if len(your_string.split())==0:-> if not your_string.split():, if your_string.strip() == '':-> if not your_string.strip():। যাই হোক না কেন, প্রথমটি বিদ্যমান সমাধানগুলির চেয়ে নিকৃষ্ট, এবং দ্বিতীয়টি ইতিমধ্যে অন্যান্য উত্তরে উল্লেখ করা হয়েছে।
এএমসি

3

এখানে একটি উত্তর যা সমস্ত ক্ষেত্রে কাজ করা উচিত:

def is_empty(s):
    "Check whether a string is empty"
    return not s or not s.strip()

যদি ভেরিয়েবলটি কোনও না হয় তবে এটি থামবে not sএবং আরও মূল্যায়ন করবে না (যেহেতু not None == True)। স্পষ্টতই, strip()পদ্ধতিটি ট্যাব, নিউলাইন ইত্যাদির স্বাভাবিক ক্ষেত্রে যত্ন নেয়


যেহেতুnot None == True সম্ভবত এটি স্পষ্টভাবে বলা যায় None is False। এছাড়াও, ==এই তুলনাগুলির জন্য ব্যবহার করা উচিত নয়।
এএমসি

2

আমি আপনার দৃশ্যে ধরে নিচ্ছি, একটি খালি স্ট্রিং একটি স্ট্রিং যা সত্যই খালি বা এমন একটি সাদা শূন্যস্থান রয়েছে।

if(str.strip()):
    print("string is not empty")
else:
    print("string is empty")

নোট করুন এটি পরীক্ষা করে না None


এটি ইতিমধ্যে বিদ্যমান উত্তরগুলি কভার করা হয়নি?
এএমসি


1

স্ট্রিংটি কেবল একটি ফাঁকা জায়গা বা নিউলাইন কিনা তা পরীক্ষা করতে

এই সহজ কোড ব্যবহার করুন

mystr = "      \n  \r  \t   "
if not mystr.strip(): # The String Is Only Spaces!
    print("\n[!] Invalid String !!!")
    exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)

1

সি # স্ট্রিং স্ট্যাটিক পদ্ধতির সাথে সাদৃশ্য হ'ল নুলআরওহাইটস্পেস।

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এবং ""মিথ্যা, তাই আপনি ঠিক করতে পারেন:return not str or str.isspace()
আলেকজান্ডার - মনিকা পুনরায় স্থাপন করুন

এটি বেশ ইউনিডিওমেটিক।
এএমসি

@ এএমসি আপনি এইটি ব্যাখ্যা করতে পারেন, আপনি কী বলতে চাইছেন তা আমি বুঝতে পারি না।
ব্রডব্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.