पाइथन अपवादों को बढ़ाने से प्यार करता है, जो आमतौर पर महान होता है। लेकिन मुझे कुछ तारों का सामना करना पड़ रहा है जो मैं सी के एटोई/एटॉफ सेमेन्टिक्स का उपयोग करके पूर्णांक में परिवर्तित करना चाहता हूं - उदा। "3 में से 12", "3/12", "3/12" के atoi, सभी 3 बनना चाहिए; atof ("3.14 सेकंड") 3.14 बनना चाहिए; atoi ("-99 स्कोर") -99 होना चाहिए। निश्चित रूप से पाइथन में एटोई और एटॉफ फ़ंक्शंस हैं, जो एटॉय और एटॉफ़ और बिल्कुल पाइथन के स्वयं के इंट और फ्लोट कन्स्ट्रक्टर की तरह व्यवहार नहीं करते हैं।पाइथन atoi/atof
सबसे अच्छा मैं अब तक है, जो वास्तव में बदसूरत और कठिन है उपलब्ध विभिन्न नाव स्वरूपों के लिए विस्तार करने के लिए:
value = 1
s = str(s).strip()
if s.startswith("-"):
value = -1
s = s[1:]
elif s.startswith("+"):
s = s[1:]
try:
mul = int("".join(itertools.takewhile(str.isdigit, s)))
except (TypeError, ValueError, AttributeError):
mul = 0
return mul * value
' atoi ("लगभग 2") के लिए ठीक से काम नहीं करता है, ''0' वापस लौटना चाहिए, क्योंकि यह' w 'से शुरू होता है 'और' w' एक अंक नहीं है। – Quuxplusone