Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में eval विधि?

पायथन इवल () विधि का उपयोग एक अभिव्यक्ति स्ट्रिंग को पायथन अभिव्यक्ति के रूप में पार्स करने के लिए किया जाता है और फिर प्रोग्राम के भीतर पायथन अभिव्यक्ति चलाता है।

सिंटैक्स

सामान्य पायथन eval() विधि वाक्यविन्यास है,

eval(expression, globals=None, locals=None)

कहां:

  • अभिव्यक्ति :आवश्यक स्ट्रिंग पैरामीटर, यह अभिव्यक्ति स्ट्रिंग है जिसे पायथन अभिव्यक्ति के रूप में पार्स और निष्पादित किया जा रहा है।

  • वैश्विक :वैकल्पिक पैरामीटर एक शब्दकोश है जिसका उपयोग निष्पादित करने के लिए उपलब्ध अभिव्यक्तियों को निर्दिष्ट करने के लिए किया जाता है। यदि स्पष्ट रूप से उल्लेख नहीं किया गया है, तो मानक अंतर्निहित विधियां उपलब्ध हैं जैसे '__builtins__':कोई नहीं तत्व।

  • स्थानीय लोग :वैकल्पिक पैरामीटर, स्थानीय चर और eval() फ़ंक्शन के लिए उपलब्ध विधियों को निर्दिष्ट करने के लिए उपयोग किया जाता है।

अब eval () पद्धति को बेहतर ढंग से समझने के लिए, इसे विभिन्न उदाहरणों के माध्यम से समझते हैं।

सरल eval() विधि

str1 = 'Hello'
print(eval('str1 =="Hello"'))
print(eval('str1 + ", Python"'))

आउटपुट

True
Hello, Python
उपयोगकर्ता इनपुट के साथ

पायथन eval() विधि

from math import *
for l in range(1,3):
   func = input("Enter Math Function to Evaluate:\n")
   try:
      print(eval(func))
      except Exception as ex:
      print(ex)
      break
print('Done')

आउटपुट

Enter Math Function to Evaluate:
abs(-42)
42
Enter Math Function to Evaluate:
max(12, 3, 4 , 2, 17)
17
Done

पायथन eval() वैश्विक और स्थानीय लोग

यह समझने से पहले कि हमें eval () विधियों को पास करने के लिए किन कार्यों की आवश्यकता है, आइए उन सभी कार्यों और चरों की सूची प्राप्त करें जो वैश्विक और स्थानीय दायरे में मौजूद हैं।

from math import *
def square_root(n):
   return sqrt(n)
# Print current global symbol table as a dictionary
print('List of Global symbols:\n',globals())
#Print current local symbol table as a dictionary
print('\nList of Local symbols:\n',locals())
#print list of names in the current local scope
print('\nList of names in current local scope:\n',dir())

आउटपुट

List of Global symbols:
{'__name__': '__main__',
'__doc__': None,
'__package__': None,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': None, '__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>,
'__file__': 'C:/Python/Python361/eval_example1.py',
'acos': <built-in function acos>,
'acosh': <built-in function acosh>,
'asin': <built-in function asin>,
'asinh': <built-in function asinh>,
'atan': <built-in function atan>,
'atan2': <built-in function atan2>,
'atanh': <built-in function atanh>,
'ceil': <built-in function ceil>,
'copysign': <built-in function copysign>,
'cos': <built-in function cos>,
'cosh': <built-in function cosh>,
'degrees': <built-in function degrees>,
'erf': <built-in function erf>,
'erfc': <built-in function erfc>,
'exp': <built-in function exp>,
'expm1': <built-in function expm1>,
'fabs': <built-in function fabs>,
'factorial': <built-in function factorial>,
'floor': <built-in function floor>,
'fmod': <built-in function fmod>,
'frexp': <built-in function frexp>,
'fsum': <built-in function fsum>,
'gamma': <built-in function gamma>,
'gcd': <built-in function gcd>,
'hypot': <built-in function hypot>,
'isclose': <built-in function isclose>,
'isfinite': <built-in function isfinite>,
'isinf': <built-in function isinf>,
'isnan': <built-in function isnan>,
'ldexp': <built-in function ldexp>,
'lgamma': <built-in function lgamma>,
'log': <built-in function log>,
'log1p': <built-in function log1p>,
'log10': <built-in function log10>,
'log2': <built-in function log2>,
'modf': <built-in function modf>,
'pow': <built-in function pow>,
'radians': <built-in function radians>,
'sin': <built-in function sin>,
'sinh': <built-in function sinh>,
'sqrt': <built-in function sqrt>,
'tan': <built-in function tan>,
'tanh': <built-in function tanh>,
'trunc': <built-in function trunc>,
'pi': 3.141592653589793,
'e': 2.718281828459045,
'tau': 6.283185307179586,
'inf': inf,
'nan': nan,
'square_root': <function square_root at 0x055246F0>
}

List of Local symbols:
{'__name__': '__main__', '__doc__': None,
'__package__': None,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': None, '__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>,
'__file__': 'C:/Python/Python361/eval_example1.py',
'acos': <built-in function acos>,
'acosh': <built-in function acosh>,
'asin': <built-in function asin>,
'asinh': <built-in function asinh>,
'atan': <built-in function atan>,
'atan2': <built-in function atan2>,
'atanh': <built-in function atanh>,
'ceil': <built-in function ceil>,
'copysign': <built-in function copysign>,
'cos': <built-in function cos>,
'cosh': <built-in function cosh>,
'degrees': <built-in function degrees>,
'erf': <built-in function erf>,
'erfc': <built-in function erfc>,
'exp': <built-in function exp>,
'expm1': <built-in function expm1>,
'fabs': <built-in function fabs>,
'factorial': <built-in function factorial>,
'floor': <built-in function floor>,
'fmod': <built-in function fmod>,
'frexp': <built-in function frexp>,
'fsum': <built-in function fsum>,
'gamma': <built-in function gamma>,
'gcd': <built-in function gcd>,
'hypot': <built-in function hypot>,
'isclose': <built-in function isclose>,
'isfinite': <built-in function isfinite>,
'isinf': <built-in function isinf>,
'isnan': <built-in function isnan>,
'ldexp': <built-in function ldexp>,
'lgamma': <built-in function lgamma>,
'log': <built-in function log>,
'log1p': <built-in function log1p>,
'log10': <built-in function log10>,
'log2': <built-in function log2>,
'modf': <built-in function modf>,
'pow': <built-in function pow>,
'radians': <built-in function radians>,
'sin': <built-in function sin>,
'sinh': <built-in function sinh>,
'sqrt': <built-in function sqrt>,
'tan': <built-in function tan>,
'tanh': <built-in function tanh>,
'trunc': <built-in function trunc>,
'pi': 3.141592653589793,
'e': 2.718281828459045,
'tau': 6.283185307179586,
'inf': inf,
'nan': nan,
'square_root': <function square_root at 0x055246F0>
}

List of names in current local scope:
['__annotations__',
'__builtins__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'acos', 'acosh',
'asin', 'asinh',
'atan', 'atan2', 'atanh',
'ceil', 'copysign', 'cos',
'cosh', 'degrees', 'e',
'erf', 'erfc', 'exp',
'expm1', 'fabs',
'factorial', 'floor',
'fmod', 'frexp', 'fsum',
'gamma', 'gcd', 'hypot',
'inf', 'isclose', 'isfinite',
'isinf', 'isnan', 'ldexp',
'lgamma', 'log', 'log10',
'log1p', 'log2', 'modf', 'nan',
'pi', 'pow', 'radians', 'sin',
'sinh', 'sqrt', 'square_root',
'tan', 'tanh', 'tau', 'trunc'
]

नीचे हम देख सकते हैं, हम eval फंक्शन में ग्लोबल्स वैल्यू को खाली डिक्शनरी के रूप में निर्दिष्ट कर सकते हैं:

>>> print(eval('dir()', {}))
['__builtins__']

आइए एक और उदाहरण देखें जहां हम गणित मॉड्यूल से केवल कुछ विधियों तक पहुंच की अनुमति दे रहे हैं।

from math import *
for l in range(1, 4):
   func = input("Enter Math Function to Evaluate.\nAllowed Functions are: abs(x) and pow(x,y):\n")
   try:
      print(eval(func, {'absolute': abs, 'pow': pow}))
      except Exception as ex:
      print(ex)
      break
print('Done')

आउटपुट

मूल्यांकन करने के लिए
Enter Math Function to Evaluate.
Allowed Functions are: abs(x) and pow(x,y):
abs(-74)
74
Enter Math Function to Evaluate.
Allowed Functions are: abs(x) and pow(x,y):
pow(2,7)
128.0
Enter Math Function to Evaluate.
Allowed Functions are: abs(x) and pow(x,y):
sqrt(47)
name 'sqrt' is not defined
Done

  1. पायथन टिंकर में बाइंडिंग फ़ंक्शन

    पायथन में टिंकर एक जीयूआई पुस्तकालय है जिसका उपयोग विभिन्न जीयूआई प्रोग्रामिंग के लिए किया जा सकता है। ऐसे एप्लिकेशन डेस्कटॉप एप्लिकेशन बनाने के लिए उपयोगी होते हैं। इस लेख में हम GUI प्रोग्रामिंग के एक पहलू को देखेंगे जिसे बाइंडिंग फंक्शन कहा जाता है। यह घटनाओं को कार्यों और विधियों के लिए बाध्य कर

  1. issubset () पायथन में फ़ंक्शन

    इस लेख में, हम पायथन स्टैंडर्ड लाइब्रेरी में उपलब्ध issubset () फ़ंक्शन के कार्यान्वयन और उपयोग के बारे में जानेंगे। issubset() विधि बूलियन ट्रू लौटाती है जब एक सेट के सभी तत्व दूसरे सेट में मौजूद होते हैं (एक तर्क के रूप में पारित) अन्यथा, यह बूलियन गलत देता है। नीचे दिए गए चित्र में B, A का एक उ

  1. इंटरसेक्शन () फ़ंक्शन पायथन

    इस लेख में, हम चौराहे () फ़ंक्शन के बारे में जानेंगे जो किसी दिए गए सेट पर किया जा सकता है। गणित के अनुसार प्रतिच्छेदन का अर्थ है दो समुच्चयों से उभयनिष्ठ तत्वों का पता लगाना। सिंटैक्स <set name>.intersection(<set a1> <set a2> ……..) रिटर्न वैल्यू सेट में सामान्य त