दिलचस्प पोस्ट
"एन्ट्रापी और सूचना लाभ" क्या है? JavaFX में हार्डवेयर ग्राफिक्स एक्सेलेरेशन (प्रिज्म) को अक्षम या बाईपास कैसे करें एक छवि दृश्य के एक प्रदर्शन के आकार को प्राप्त करने की कोशिश कर रहा है कस्टम कॉन्फ़िगरेशन फ़ाइलें लोड हो रही हैं Arrays.asList () काम नहीं कर रहा है जैसा चाहिए? क्या कितना JSON पकड़ सकता है पर एक सीमा है? एक स्विफ्ट फ़्रेमवर्क में कॉमन क्रिप्टो को आयात करना क्या अजगर में कोई थ्रेड को मारने का कोई तरीका है? फ़ाइल सामग्री से कमांड लाइन तर्क मैं वास्तविक मॉनिटर नाम कैसे प्राप्त करूं? जैसा कि संकल्प संवाद में देखा गया है थ्रेड कैसे रोकें? एक छवि को उत्तरदायी बनाएं – आसान तरीका क्या आईडी का संग्रह ADO.NET SQL पैरामीटर के रूप में भेजना संभव है? WAMP पर IMAGEMAGICK स्थापित करने के लिए चरण-दर-चरण निर्देश? सरणी से सबसे निकटतम संख्या प्राप्त करें

कैसे स्ट्रिंग इनपुट एक संख्या है की जांच करने के लिए?

मैं कैसे जांचूं अगर उपयोगकर्ता का स्ट्रिंग इनपुट एक संख्या है (उदाहरण -1 , 0 , 1 , आदि)?

 user_input = input("Enter something:") if type(user_input) == int: print("Is a number") else: print("Not a number") 

उपरोक्त काम नहीं करेगा क्योंकि input हमेशा एक स्ट्रिंग देता है।

वेब के समाधान से एकत्रित समाधान "कैसे स्ट्रिंग इनपुट एक संख्या है की जांच करने के लिए?"

बस इसे किसी इंट में कनवर्ट करने की कोशिश करें और फिर बाहर निकलने की कोशिश करें कि यह काम नहीं करता है।

 try: val = int(userInput) except ValueError: print("That's not an int!") 

जाहिर है यह नकारात्मक मूल्यों के लिए काम नहीं करेगा, लेकिन यह सकारात्मक के लिए होगा इसके बारे में क्षमा करें, बस कुछ घंटों पहले स्वयं के बारे में सीखा, जैसा कि मैंने हाल ही में अजगर में कमाया है।

Isdigit () का उपयोग करें

 if userinput.isdigit(): #do stuff 

पायथन 3 के लिए निम्न कार्य करेगा

 userInput = 0 while True: try: userInput = int(input("Enter something: ")) except ValueError: print("Not an integer!") continue else: print("Yes an integer!") break 

मुझे लगता है कि जो आप यहां तलाश रहे हैं वह विधि isnumeric() ( python3.x के लिए प्रलेखन ):

 >>>a = '123' >>>a.isnumeric() true 

उम्मीद है की यह मदद करेगा

संपादित किया गया: आप यह पता लगाने के लिए नीचे दिए गए कोड का उपयोग भी कर सकते हैं कि इसका नंबर या नकारात्मक भी है

 import re num_format = re.compile("^[\-]?[1-9][0-9]*\.?[0-9]+$") isnumber = re.match(num_format,givennumber) if isnumber: print "given string is number" 

आप अपने प्रारूप को अपने विशिष्ट आवश्यकता में भी बदल सकते हैं। मैं इस पोस्ट को बहुत देर से देख रहा हूं। लेकिन उम्मीद है कि यह उन अन्य व्यक्तियों की मदद करता है जो जवाब ढूंढ रहे हैं :)। मुझे बताएं कि दिए गए कोड में अगर कुछ गलत है I

जाँच करने के लिए ठीक काम करता है कि इनपुट एक सकारात्मक पूर्णांक है और किसी विशिष्ट श्रेणी में है

 def checkIntValue(): '''Works fine for check if an **input** is a positive Integer AND in a specific range''' maxValue = 20 while True: try: intTarget = int(input('Your number ?')) except ValueError: continue else: if intTarget < 1 or intTarget > maxValue: continue else: return (intTarget) 

सबसे सुरुचिपूर्ण समाधान पहले से प्रस्तावित होगा,

 a=123 bool_a = a.isnumeric() 

दुर्भाग्य से यह नकारात्मक पूर्णांक के लिए और सामान्य फ्लोट मूल्यों के लिए दोनों के लिए काम नहीं करता है। यदि आपका मुद्दा यह है कि अगर 'ए' एक पूर्णांक संख्या से अधिक है, तो मैं निम्नलिखित सुझाव देता हूं, जो प्रत्येक प्रकार के फ्लोट और पूर्णांक के लिए काम करता है 🙂 यहां परीक्षा है:

 def isanumber(a): try: float(repr(a)) bool_a = True except: bool_a = False return bool_a a = 1 # integer isanumber(a) >>> True a = -2.5982347892 # general float isanumber(a) >>> True a = '1' # actually a string isanumber(a) >>> False 

मुझे उम्मीद है कि आप इसे उपयोगी पाएँ 🙂

मैं यह सुझाता हूं, @ कार्तिक27, ऋणात्मक संख्याओं के लिए

 import re num_format = re.compile(r'^\-?[1-9][0-9]*\.?[0-9]*') 

फिर जो भी आप नियमित रूप से अभिव्यक्ति, मैच (), खोजल () आदि के साथ चाहते हैं

आप तार के लिए isdigit () विधि का उपयोग कर सकते हैं इस स्थिति में, जैसा कि आपने कहा है कि इनपुट हमेशा एक स्ट्रिंग है:

  user_input = input("Enter something:") if user_input.isdigit(): print("Is a number") else: print("Not a number") 

यदि आपको विशेष रूप से एक इंट या फ्लोट की ज़रूरत है, तो आप "इंट नहीं" या "फ्लोट नहीं है" कोशिश कर सकते हैं:

 user_input = '' while user_input is not int: try: user_input = int(input('Enter a number: ')) break except ValueError: print('Please enter a valid number: ') print('You entered {}'.format(a)) 

यदि आप केवल ints के साथ काम करने की जरूरत है, तो मैंने देखा है सबसे सुरुचिपूर्ण समाधान ".isdigit ()" विधि है:

 a = '' while a.isdigit() == False: a = input('Enter a number: ') print('You entered {}'.format(a)) 

यह किसी भी संख्या के साथ काम करता है, जिसमें एक अंश शामिल है:

 import fractions def isnumber(s): try: float(s) return True except ValueError: try: Fraction(s) return True except ValueError: return False 

मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन यह किसी और को मदद करने के लिए है जिसे 6 घंटे खर्च करने की कोशिश करनी थी। (वही मैंने किया):

यह त्रुटिपूर्ण ढंग से काम करता है: (जांचता है कि क्या कोई इनपुट इनपुट / चेक में है अगर इनपुट पूर्णांक या फ्लोट है)

 a=(raw_input("Amount:")) try: int(a) except ValueError: try: float(a) except ValueError: print "This is not a number" a=0 if a==0: a=0 else: print a #Do stuff 

यहां सबसे सरल समाधान है:

 a= input("Choose the option\n") if(int(a)): print (a); else: print("Try Again") 

मैं आज भी समस्याओं में भाग गया, उपयोगकर्ताओं को एक पूर्णांक के लिए अपने विशिष्ट अनुरोध के लिए गैर-पूर्णांक प्रतिक्रियाएं दर्ज करने में सक्षम होने के साथ।

यह समाधान था कि मेरे लिए उत्तर देने के लिए मेरे लिए अच्छा काम करना समाप्त हो गया था:

 player_number = 0 while player_number != 1 and player_number !=2: player_number = raw_input("Are you Player 1 or 2? ") try: int(player_number) except ValueError: print "Please enter '1' or '2'..." player_number = 0 player_number = int(player_number) 

मुझे प्रयास करने तक पहुंचने से पहले अपवाद भी मिलेंगे: वक्तव्य जब मैंने इस्तेमाल किया था

 player_number = int(raw_input("Are you Player 1 or 2? ") 

और उपयोगकर्ता "जे" या किसी भी अन्य गैर-पूर्णांक वर्ण को दर्ज किया। यह इसे कच्चे इनपुट के रूप में लेने के लिए सर्वश्रेष्ठ काम करता है, यह देखने के लिए जांचें कि क्या कच्चे इनपुट को पूर्णांक में कनवर्ट किया जा सकता है, और उसके बाद इसे बाद में परिवर्तित कर सकता है।

यहां एक सरल कार्य है जो INT और RANGE के लिए इनपुट की जांच करता है। अगर, इनपुट 1-100 के बीच पूर्णांक है, तो 'गलत' अन्यथा गलत होगा

 def validate(userInput): try: val = int(userInput) if val > 0 and val < 101: valid = True else: valid = False except Exception: valid = False return valid 
 while True: b1=input('Type a number:') try: a1=int(b1) except ValueError: print ('"%(a1)s" is not a number. Try again.' %{'a1':b1}) else: print ('You typed "{}".'.format(a1)) break 

यह जांचने के लिए एक पाश बनाता है कि इनपुट एक पूर्णांक है या नहीं, परिणाम नीचे दिखेगा:

 >>> %Run 1.1.py Type a number:d "d" is not a number. Try again. Type a number: >>> %Run 1.1.py Type a number:4 You typed 4. >>> 

यदि आप फ्लोट्स का मूल्यांकन करना चाहते हैं, और आप NaN को इनपुट के रूप में स्वीकार करना चाहते हैं लेकिन 'abc' जैसी अन्य स्ट्रिंग्स नहीं, तो आप निम्न कार्य कर सकते हैं:

 def isnumber(x): import numpy try: return type(numpy.float(x)) == float except ValueError: return False 

मैं एक अलग दृष्टिकोण का उपयोग कर रहा हूं जिसका मैंने सोचा था कि मैं हिस्सा लेगा। एक मान्य श्रेणी बनाने से प्रारंभ करें:

 valid = [str(i) for i in range(-10,11)] # ["-10","-9...."10"] 

अब एक संख्या के लिए पूछें और सूची में नहीं तो पूछना जारी रखे:

 p = input("Enter a number: ") while p not in valid: p = input("Not valid. Try to enter a number again: ") 

अन्त में आंत में कनवर्ट करें (जो काम करेगा क्योंकि सूची में स्ट्रिंग्स के रूप में केवल पूर्णांक होते हैं:

 p = int(p) 

क्यों नहीं एक संख्या से इनपुट विभाजित? इस तरह से सब कुछ के साथ काम करता है नकारात्मक, फ़्लोट्स, और नकारात्मक फ़्लोट्स इसके अलावा रिक्त स्थान और शून्य

 numList = [499, -486, 0.1255468, -0.21554, 'a', "this", "long string here", "455 street area", 0, ""] for item in numList: try: print (item / 2) #You can divide by any number really, except zero except: print "Not A Number: " + item 

परिणाम:

 249 -243 0.0627734 -0.10777 Not A Number: a Not A Number: this Not A Number: long string here Not A Number: 455 street area 0 Not A Number: 

उत्तर से प्रेरणा के आधार पर। मैं नीचे एक फ़ंक्शन परिभाषित किया ऐसा लगता है कि उसके काम ठीक है अगर आपको कोई समस्या मिलती है तो कृपया मुझे बताएं

 def isanumber(inp): try: val = int(inp) return True except ValueError: try: val = float(inp) return True except ValueError: return False 
 a=10 isinstance(a,int) #True b='abc' isinstance(b,int) #False