2012-01-09 20 views
17

जब भी मैं पायथन के घातांक और लघुगणक मॉड्यूल के बिल्ट-इन कार्य के किसी भी उपयोग करने के लिए प्रयास करते हैं, मैं इस तरह एक त्रुटि प्राप्त:अजगर गणित मॉड्यूल

NameError: name 'sqrt' is not defined 

मैं math.sqrt(4), sqrt(4) और sqrt(4.0) उपयोग करने की कोशिश की है, लेकिन उनमें से कोई भी काम नहीं करता है। अपवाद pow है, जो इसे माना जाता है। यह वास्तव में अजीब है और मुझे यकीन नहीं है कि क्या गलत है।

+3

यदि फ़ंक्शन अंतर्निहित नहीं है, तो आपको उस मॉड्यूल को आयात करना होगा जिसमें यह शामिल है। [Python लाइब्रेरी] (http://docs.python.org/library/) देखें, और [निर्मित की सूची -INS] (http://docs.python.org/library/functions.html)। –

उत्तर

44

pow भाषा में निर्मित है (गणित पुस्तकालय का हिस्सा नहीं)। समस्या यह है कि आपने गणित आयात नहीं किया है।

इस प्रयास करें:

import math 
math.sqrt(4) 
2

जब आप इसका उपयोग करते हैं तो आपको math.sqrt कहने की आवश्यकता है। या, from math import sqrt करें।

हम्म, मैंने अभी आपके प्रश्न को और अच्छी तरह से पढ़ा है .... आप math आयात कैसे कर रहे हैं? मैंने अभी import math और फिर math.sqrt की कोशिश की जो पूरी तरह से काम करता था। क्या आप import math as m जैसे कुछ कर रहे हैं? यदि ऐसा है, तो आपको m (या as के बाद जो भी नाम आपने उपयोग किया है) के साथ फ़ंक्शन को उपसर्ग करना होगा।

pow काम कर रहा है क्योंकि दो संस्करण हैं: __builtin__ में हमेशा उपलब्ध संस्करण, और math में एक और संस्करण।

4

ऐड:

import math 

शुरुआत में। और उसके बाद का उपयोग करें:

math.sqrt(num) # or any other function you seem neccessary 
10

तुम भी आयात कर सकते हैं के रूप में

from math import * 

तो फिर तुम गणित लगाकर बिना किसी भी गणितीय समारोह का उपयोग कर सकते हैं। जैसे

sqrt(4) 
0

गणित आयात sqrt

से में उपयोग करना sqrt (4) पूरी तरह से अच्छी तरह से काम करता है। जब आप केवल "आयात गणित" का उपयोग करते हैं तो आपको केवल math.sqrt (4) का उपयोग करने की आवश्यकता होती है।

संबंधित मुद्दे