अजगर 3 में, मैं एक साधारण आदेश लिखना इस प्रकार उपयोगकर्ता से एक पूर्णांक इनपुट स्वीकार करने के लिए:पायथन का eval क्यों (इनपुट ("इनपुट दर्ज करें:")) इनपुट के डेटाटाइप बदलें?
x = int(input("Enter a number: "))
अगर मैं int()
हिस्सा छोड़ें और सिर्फ x = input("Enter a number: ")
उपयोग करते हैं, मेरी इनपुट के डेटाप्रकार एक स्ट्रिंग, नहीं एक पूर्णांक है। मैं समझता हूँ कि।
हालांकि, अगर मैं निम्न आदेश का उपयोग:
x = eval(input("Enter a number: "))
इनपुट के डेटाप्रकार 'int' है।
ऐसा क्यों होता है?
जब आप eval() का उपयोग करते हैं तो यह गतिशील प्रकार की जांच हो सकती है? – cssGEEK
'eval' इनपुट में व्यवहार करता है जैसे कोड में लिखा गया था, कोड में 'x = 3' कर एक पूर्णांक बनाता है, इसलिए' x = eval (" 3 ") 'x को एक पूर्णांक भी बना देगा, हालांकि उपयोगकर्ता को मनमाने ढंग से प्रवेश करने दें कोड उनके इनपुट के रूप में एक बड़ी समस्या हो सकती है, अगर वे 'ओपन (__ फ़ाइल __,' डब्ल्यू ') में टाइप की गई हैं। बंद करें()' यह वर्तमान निष्पादन फ़ाइल को हटा देगा। –