a = raw_input('How much is 1 share in that company? ')
while not a.isdigit():
print("You need to write a number!\n")
a = raw_input('How much is 1 share in that company? ')
यह तभी उपयोगकर्ता एक integer
में प्रवेश करती है काम करता है, लेकिन मैं यह भी काम करने के लिए अगर वे एक float
प्रवेश चाहते हैं, लेकिन नहीं, जब वे एक string
दर्ज करें।फ्लोट के लिए isdigit का उपयोग कर?
तो उपयोगकर्ता 9
और 9.2
दोनों दर्ज करने में सक्षम होना चाहिए, लेकिन abc
नहीं।
मुझे यह कैसे करना चाहिए?
वे नियमित अभिव्यक्तियां बहुत लचीला हैं! फिर भी, dan04 का समाधान बहुत अधिक पाइथनिक लगता है। यहां मैं पाइथोनिक को "समकक्ष जटिलता के दो समाधानों के बीच परिभाषित करता हूं, जो नियमित अभिव्यक्तियों का उपयोग नहीं करता है।" यह अभी भी नियमित अभिव्यक्तियों के लिए कई अनुप्रयोगों को छोड़ देता है। –
@ स्टेवेन रूंबास्की: हाँ, dan04 का समाधान अधिक पाइथोनिक लगता है, सोचा कि मेरा वास्तव में कम कोड हो सकता है। –
दुर्भाग्य से यह फ्लोट्स के लिए एक अच्छा regex नहीं है और इसलिए वास्तव में सवाल का जवाब नहीं है। उदाहरण के लिए यह ".1" से मेल नहीं खाता है लेकिन "5 एबीसी" से मेल खाता है।ऋणात्मक मूल्य और अन्य नोटेशन भी हैं, इसलिए संभव है कि यह dan04 के उत्तर का उपयोग करने के लिए आदर्श है, इसे किसी फ़ंक्शन में बदलना यदि आपको किसी सूची समझ या तर्क में इसका उपयोग करने की आवश्यकता है। – mrooney