दिलचस्प पोस्ट
अपाचे पीडीएफबॉक्स पीडीएफ़ को छवियों में परिवर्तित करें एएसपी.नेट वेबफॉर्म को रनैट = "सर्वर" विशेषता की आवश्यकता क्यों है? सुपर फास्ट getimagesize php में जब एक .jar चलाने का प्रयास करते समय "अमान्य हस्ताक्षर फ़ाइल" एंड्रॉइड में गेम क्लायंट शुरू कर रहा है गिट में एक फ़ाइल की कॉपी संशोधनों को वापस लाएं? आईएसएसएल – ओरेकल के सैकड़ों के समान एक तंत्र बनाना क्यों Spring's ApplicationContext.getBean खराब माना जाता है? वेतन वृद्धि और पूर्व वृद्धि की अवधारणा? एक चार * के एक उपस्ट्रिंग प्राप्त करें संग्रहीत डेटा की अजीब चरित्र एन्कोडिंग, पुरानी स्क्रिप्ट उन्हें दिखा रहा है कि ठीक नया नहीं है जावास्क्रिप्ट का उपयोग करते हुए * .CSV फ़ाइल से डेटा कैसे पढ़ा जाए? एचटीएमएल 5 अजीब आईएमजी हमेशा नीचे 3px मार्जिन जोड़ता है Laravel 5.2 सत्यापन त्रुटि ब्लेड में प्रकट नहीं हुई ग्लोबल इंटरप्रेटर लॉक क्यों?

जांचें कि एक स्ट्रिंग में कोई संख्या है या नहीं

मैंने जो कुछ प्रश्न पाये हैं, वे इस तथ्य पर पक्षपाती हैं कि वे अपनी संख्याओं में पत्रों की तलाश कर रहे हैं, जबकि मैं उन संख्याओं की तलाश कर रहा हूं जो मुझे एक संख्याहीन स्ट्रिंग होना पसंद है। मुझे एक स्ट्रिंग दर्ज करने और देखने की आवश्यकता है कि इसमें कोई भी संख्या है और यदि वह इसे अस्वीकार करता है

फ़ंक्शन isdigit () केवल सच देता है अगर सभी वर्ण संख्याएं हैं मैं सिर्फ यह देखना चाहता हूं कि उपयोगकर्ता ने किसी संख्या में प्रवेश किया है ताकि "I own own dog 1" या कुछ और वाक्य

कोई विचार?

वेब के समाधान से एकत्रित समाधान "जांचें कि एक स्ट्रिंग में कोई संख्या है या नहीं"

आप any समारोह का उपयोग कर सकते हैं, जैसे कि str.isdigit फ़ंक्शन, जैसे

 >>> def hasNumbers(inputString): ... return any(char.isdigit() for char in inputString) ... >>> hasNumbers("I own 1 dog") True >>> hasNumbers("I own no dog") False 

वैकल्पिक रूप से आप इस तरह, एक नियमित अभिव्यक्ति का उपयोग कर सकते हैं

 >>> import re >>> def hasNumbers(inputString): ... return bool(re.search(r'\d', inputString)) ... >>> hasNumbers("I own 1 dog") True >>> hasNumbers("I own no dog") False 

आप any और str.isdigit संयोजन का उपयोग कर सकते हैं:

 def num_there(s): return any(i.isdigit() for i in s) 

यदि स्ट्रिंग में कोई अंक मौजूद है तो फ़ंक्शन True वापस करेगा, अन्यथा False

डेमो:

 >>> king = 'I shall have 3 cakes' >>> num_there(king) True >>> servant = 'I do not have any cakes' >>> num_there(servant) False 

https://docs.python.org/2/library/re.html

आपको नियमित अभिव्यक्ति का बेहतर उपयोग करना चाहिए यह बहुत तेज़ है

 import re def f1(string): return any(i.isdigit() for i in string) def f2(string): return re.search('\d', string) # if you compile the regex string first, it's even faster RE_D = re.compile('\d') def f3(string): return RE_D.search(string) # Output from iPython # In [18]: %timeit f1('assdfgag123') # 1000000 loops, best of 3: 1.18 µs per loop # In [19]: %timeit f2('assdfgag123') # 1000000 loops, best of 3: 923 ns per loop # In [20]: %timeit f3('assdfgag123') # 1000000 loops, best of 3: 384 ns per loop 

आप स्ट्रिंग में प्रत्येक अक्षर पर समारोह isdigit () लागू कर सकते हैं। या आप नियमित अभिव्यक्ति का इस्तेमाल कर सकते हैं

इसके अलावा मैंने पाया कि मुझे पायथन में एक स्ट्रिंग में एक नंबर कैसे मिल सकता है? संख्याओं को वापस करने के लिए बहुत उपयुक्त तरीके हैं। नीचे दिए गए समाधान उस प्रश्न के उत्तर से हैं।

 number = re.search(r'\d+', yourString).group() 

वैकल्पिक रूप से:

 number = filter(str.isdigit, yourString) 

अधिक जानकारी के लिए regex docu पर एक नज़र डालें: http://docs.python.org/2/library/re.html

संपादित करें: यह वास्तविक संख्या देता है, बुलियन मान नहीं, इसलिए ऊपर दिए गए उत्तर आपके मामले के लिए अधिक सही हैं

पहला तरीका पहला अंक और उसके बाद के लगातार अंक वापस करेगा। इस प्रकार 1.56 को 1 के रूप में लौटा दिया जाएगा। 10,000 को 10 के रूप में लौटा दिया जाएगा। 0207-100-1000 को 0207 के रूप में वापस किया जाएगा।

दूसरी विधि काम नहीं करती।

सभी अंक, बिन्दुओं और अल्पविरामों को निकालने के लिए, और गैर-लगातार अंकों को खोना नहीं, का उपयोग करें:

re.sub ('[^ \ d।,]', '', yourString)

उपयोग

  str.isalpha () 

रेफरी: https://docs.python.org/2/library/stdtypes.html#str.isalpha

सच तो वापस लौटें अगर स्ट्रिंग में सभी वर्ण वर्णानुक्रमिक होते हैं और कम से कम एक अक्षर होता है, अन्यथा गलत है।

और इसका क्या?

 import string def containsNumber(line): res = False try: for val in line.split(): if (float(val.strip(string.punctuation))): res = True break except ValueError, e: pass return res print containsNumber('234.12 a22') # returns True print containsNumber('234.12L a22') # returns False print containsNumber('234.12, a22') # returns True 
 '''You can use range with count to check how many time a number appears in the string by checking it against the range''' def count_digit(a): sum = 0 for i in range(10): sum += a.count(str(i)) return sum ans = count_digit("apple3rh5") print(ans) #This print 2 

आप इसके लिए एनएलटीके विधि का उपयोग कर सकते हैं यह '1' और 'वन' दोनों को टेक्स्ट में मौजूद होगा

 import nltk def existence_of_numeric_data(text): text=nltk.word_tokenize(text) pos = nltk.pos_tag(text) count = 0 for i in range(len(pos)): word , pos_tag = pos[i] if pos_tag == 'CD': return True return False existence_of_numeric_data('We are going out. Just five you and me.')