2012-01-09 5 views
17

Bất cứ khi nào tôi cố gắng sử dụng bất kỳ chức năng built-in của lũy thừa và logarit mô-đun Python, tôi nhận được một lỗi như thế này:Python mô-đun toán

NameError: name 'sqrt' is not defined 

Tôi đã cố gắng sử dụng math.sqrt(4), sqrt(4)sqrt(4.0), nhưng không ai trong số họ làm việc. Ngoại lệ là pow, hoạt động như dự kiến. Điều này thực sự kỳ lạ và tôi không chắc chắn những gì sai.

+3

nếu chức năng không được tích hợp sẵn, bạn phải nhập mô-đun được chứa trong đó. Xem [thư viện python] (http://docs.python.org/library/) và [danh sách được tạo -ins] (http://docs.python.org/library/functions.html). –

Trả lời

44

pow được tích hợp vào ngôn ngữ (không phải là một phần của thư viện toán học). Vấn đề là bạn chưa nhập môn toán.

Hãy thử điều này:

import math 
math.sqrt(4) 
2

Bạn cần phải nói math.sqrt khi bạn sử dụng. Hoặc, làm from math import sqrt.

Hmm, tôi chỉ đọc kỹ câu hỏi của bạn .... Bạn nhập math bằng cách nào? Tôi chỉ thử import math và sau đó math.sqrt hoạt động hoàn hảo. Bạn đang làm điều gì đó như import math as m? Nếu có, thì bạn phải thêm tiền tố vào hàm m (hoặc bất kỳ tên nào bạn đã sử dụng sau as).

pow đang hoạt động vì có hai phiên bản: phiên bản luôn có sẵn trong __builtin__ và phiên bản khác trong math.

4

add:

import math 

ngay từ đầu. và sau đó sử dụng:

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

Bạn cũng có thể nhập như

from math import * 

Sau đó, bạn có thể sử dụng bất kỳ chức năng toán học mà không tiền tố toán học. ví dụ.

sqrt(4) 
0

Trong

từ toán nhập khẩu sqrt

Sử dụng sqrt (4) hoạt động hoàn toàn tốt. Bạn chỉ cần sử dụng math.sqrt (4) khi bạn chỉ sử dụng "import math".