मैं यह जांचने की कोशिश कर रहा हूं कि स्ट्रिंग में केवल अक्षर हैं, न कि अंकों या प्रतीकों।मैं कैसे जांच सकता हूं कि स्ट्रिंग में केवल पायथन में अक्षर हैं या नहीं?
उदाहरण के लिए:
>>> only_letters("hello")
True
>>> only_letters("he7lo")
False
मैं यह जांचने की कोशिश कर रहा हूं कि स्ट्रिंग में केवल अक्षर हैं, न कि अंकों या प्रतीकों।मैं कैसे जांच सकता हूं कि स्ट्रिंग में केवल पायथन में अक्षर हैं या नहीं?
उदाहरण के लिए:
>>> only_letters("hello")
True
>>> only_letters("he7lo")
False
str.isalpha()
समारोह काम करता है। अर्थात।
if my_string.isalpha():
print('it is letters')
सरल:
if string.isalpha():
print("It's all letters")
str.isalpha()
ही सच्चा अगर सभी पत्र स्ट्रिंग में वर्णों हैं:
वापसी अगर सही है स्ट्रिंग में सभी पात्रों वर्णमाला कर रहे हैं और वहाँ है कम से कम एक चरित्र, अन्यथा झूठा।
डेमो:
>>> 'hello'.isalpha()
True
>>> '42hello'.isalpha()
False
>>> 'hel lo'.isalpha()
False
string.isalpha()
समारोह आप के लिए काम करेंगे।
import re
def only_letters(tested_string):
match = re.match("^[ABCDEFGHJKLM]*$", tested_string)
return match is not None
देखें जो पता करने के लिए चाहते हो सकता है अगर एक स्ट्रिंग सभी पत्र का केवल एक सबसेट शामिल गूगल के जरिये इस सवाल खोजने लोगों के लिए, मैं regexes उपयोग करने की अनुशंसा (अजगर 3)
def only_letters(tested_string):
for letter in tested_string:
if not letter in "abcdefghjklmnopqrstuvwxyz":
return False
return True
आप स्ट्रिंग आप यदि आप रिक्त स्थान की अनुमति दी जा करना चाहते हैं के खिलाफ जाँच कर रहे हैं में एक अंतरिक्ष जोड़ सकते हैं: के साथ आया था।
नाइटपिकिंग जाने के लिए खेद है, लेकिन आपके उदाहरण में रेगेक्स भी '^ [ए-एचजे-एम] * $' हो सकता है, जो मेरी राय में अधिक पठनीय है । – Petzku
एक बहुत सरल समाधान मैं:
यदि पत्र * नहीं * "abcdefghjklmnopqrstuvwxyz" – Guibod
में आप एक I खो रहे हैं, और ठीक से उपयोग नहीं करते हैं: 'अगर अक्षर ** ** ** में" abcdefgh ** i ** jklmnopqrstuvwxyz "' – Guibod
शायद आप चाहें 'if letter.lower() ... का उपयोग करने के लिए, जैसा कि है, अपरकेस अक्षरों की गणना नहीं होगी। 'स्ट्रिंग' मॉड्यूल में वर्णमाला में सभी अक्षरों के लिए पूर्वनिर्धारित एक चर भी है। वास्तव में, तीन हैं: अपरकेस, लोअरकेस, और दोनों के लिए। बेशक, सरल समाधान पहले ही ऊपर दिया गया है: 'इस्लाफा'। – zondo
ऐसा लगता है कि लोग str.isalpha
का उपयोग करने के लिए कह रहे हैं।
यह जांचने के लिए एक पंक्ति कार्य है कि सभी वर्ण पत्र हैं या नहीं।
def only_letters(string):
return all(letter.isalpha() for letter in string)
all
बूलियन्स का एक iterable स्वीकार करता है, और True
रिटर्न iff बूलियन्स के सभी True
हैं।
आम तौर पर, all
रिटर्न True
अगर में अपने iterable True
पर विचार किया जाएगा वस्तुओं। (: len(list) == 0
यानी)
False
ये False
None
func only_letters(str):
return not any(str.isdigit(c) for c in str)
ऐसे कई वर्ण हैं जो गैर अंकों हैं और वर्णमाला भी नहीं हैं, इसलिए यह एक अविश्वसनीय समाधान है। – zondo
असल में, हम 21 वीं सदी और लोग अब ASCII केवल इसलिए का उपयोग करते समय के बारे में सवाल anwering संवाद की वैश्विक दुनिया में अब कर रहे हैं "यह केवल अक्षर है" आप खाते पत्र में लेने की जरूरत गैर-ASCII अक्षरों से भी।
unicodedata.category('陳')
'Lo'
unicodedata.category('A')
'Lu'
unicodedata.category('1')
'Nd'
unicodedata.category('a')
'Ll'
categories and their abbreviations यूनीकोड मानक में परिभाषित कर रहे हैं: अजगर जो अन्य बातों के अलावा यूनिकोड वर्ण के वर्गीकरण की अनुमति देता है एक बहुत अच्छा unicodedata पुस्तकालय है।
def only_letters(s):
for c in s:
cat = unicodedata.category(c)
if cat not in ('Ll','Lu','Lo'):
return False
return True
और फिर: यहाँ से आप काफी आसानी से आप इस तरह एक समारोह के साथ आ सकते हैं कर सकते हैं
only_letters('Bzdrężyło')
True
only_letters('He7lo')
False
आप देख सकते हैं श्वेतसूची वाले श्रेणियों काफी आसानी से अंदर टपल द्वारा नियंत्रित किया जा सकता समारोह। अधिक विस्तृत चर्चा के लिए this article देखें।
(1) स्ट्रिंग मुद्रित करते समय str.isalpha() का उपयोग करें।
(2) अपने संदर्भ के लिए कार्यक्रम नीचे की जांच करें: -
str = "this"; # No space & digit in this string
print str.isalpha() # it gives return True
str = "this is 2";
print str.isalpha() # it gives return False
नोट: - मैं Ubuntu में उपरोक्त उदाहरण जाँच।
नोट: पायथन 2 में, यह यूनिकोड जागरूक नहीं है इसलिए "" ä ".isalpha()' गलत है। हालांकि, python3 '' ä ".isalpha() 'में सत्य है, क्योंकि python3 में यूनिकोड तार डिफ़ॉल्ट रूप से है। – Squidly
@MrBones: पायथन 2 में, यदि मायने रखता है तो 'यूनिकोड' ऑब्जेक्ट का उपयोग करें। –
हाँ, मैं इसे अनजाने पाठकों के लिए अतिरिक्त उपयोगी जानकारी के रूप में जोड़ रहा था – Squidly