Hướng dẫn how do you write an eval in python? - làm thế nào để bạn viết một đánh giá trong python?

Phương thức

eval(expression, globals=None, locals=None)
8 phân tích biểu thức được truyền vào phương thức này và chạy biểu thức python (mã) trong chương trình.

Show

Thí dụ

number = 9

# eval performs the multiplication passed as argument square_number = eval('number * number')

print(square_number) # Output: 81


Eval () Cú pháp

Cú pháp của

eval(expression, globals=None, locals=None)
8 là:

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

eval () tham số

Hàm

eval(expression, globals=None, locals=None)
8 mất ba tham số:

  • Biểu thức - Chuỗi phân tích cú pháp và được đánh giá là biểu thức Python - the string parsed and evaluated as a Python expression
  • Globals (Tùy chọn) - Từ điển (optional) - a dictionary
  • Người dân địa phương (tùy chọn)- một đối tượng ánh xạ. Từ điển là loại ánh xạ tiêu chuẩn và thường được sử dụng trong Python. (optional)- a mapping object. Dictionary is the standard and commonly used mapping type in Python.

Việc sử dụng toàn cầu và người dân địa phương sẽ được thảo luận sau trong bài viết này.


eval () giá trị trả về

Phương pháp

eval(expression, globals=None, locals=None)
8 trả về kết quả được đánh giá từ biểu thức.


Ví dụ 1: Làm thế nào Eval () hoạt động trong Python

x = 1

print(eval('x + 1'))

Đầu ra

2

Ở đây, hàm

eval(expression, globals=None, locals=None)
8 đánh giá biểu thức
x = 1

print(eval('x + 1'))

3 và
x = 1

print(eval('x + 1'))

4 được sử dụng để hiển thị giá trị này.


Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

# Perimeter of Square
def calculatePerimeter(l):
    return 4*l

# Area of Square
def calculateArea(l):
    return l*l

expression = input("Type a function: ")

for l in range(1, 5):
    if (expression == 'calculatePerimeter(l)'):

print("If length is ", l, ", Perimeter = ", eval(expression))

elif (expression == 'calculateArea(l)'):

print("If length is ", l, ", Area = ", eval(expression))

else: print('Wrong Function') break

Đầu ra

Type a function: calculateArea(l)
If length is  1 , Area =  1
If length is  2 , Area =  4
If length is  3 , Area =  9
If length is  4 , Area =  16

Ở đây, hàm eval(expression, globals=None, locals=None)8 đánh giá biểu thức x = 1 print(eval('x + 1'))3 và x = 1 print(eval('x + 1'))4 được sử dụng để hiển thị giá trị này.

Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

Cảnh báo khi sử dụng eval ()


Hãy xem xét một tình huống mà bạn đang sử dụng hệ thống Unix (MacOS, Linux, v.v.) và bạn đã nhập mô -đun

x = 1

print(eval('x + 1'))

5. Mô -đun OS cung cấp một cách di động để sử dụng các chức năng hệ điều hành như đọc hoặc ghi vào tệp.

from math import *

print(eval('dir()'))

Đầu ra

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'os', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

Ở đây, hàm eval(expression, globals=None, locals=None)8 đánh giá biểu thức x = 1 print(eval('x + 1'))3 và x = 1 print(eval('x + 1'))4 được sử dụng để hiển thị giá trị này.

Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

Cảnh báo khi sử dụng eval ()

Hãy xem xét một tình huống mà bạn đang sử dụng hệ thống Unix (MacOS, Linux, v.v.) và bạn đã nhập mô -đun

x = 1

print(eval('x + 1'))

5. Mô -đun OS cung cấp một cách di động để sử dụng các chức năng hệ điều hành như đọc hoặc ghi vào tệp.

print(eval('dir()')

Nếu bạn cho phép người dùng nhập giá trị bằng x = 1 print(eval('x + 1'))6, người dùng có thể ban hành các lệnh thay đổi tệp hoặc thậm chí xóa tất cả các tệp bằng lệnh: x = 1 print(eval('x + 1')) (adsbygoogle = window.adsbygoogle || []).push({}); 7.

Nếu bạn đang sử dụng

x = 1

print(eval('x + 1'))

6 trong mã của mình, nên kiểm tra các biến và phương thức nào mà người dùng có thể sử dụng. Bạn có thể thấy các biến và phương thức nào có sẵn bằng phương thức dir ().

Hạn chế sử dụng các phương thức và biến có sẵn trong eval () You can check the current global and local dictionary in Python using globals() and locals() built-in methods respectively.


Thường xuyên hơn không, tất cả các phương thức và biến có sẵn được sử dụng trong biểu thức (tham số đầu tiên thành eval(expression, globals=None, locals=None)8) có thể không cần thiết hoặc thậm chí có thể có lỗ bảo mật. Bạn có thể cần hạn chế việc sử dụng các phương pháp và biến này cho eval(expression, globals=None, locals=None)8. Bạn có thể làm như vậy bằng cách chuyển các tham số toàn cầu và địa phương tùy chọn (từ điển) cho hàm eval(expression, globals=None, locals=None)8.

from math import *

print(eval('dir()', {}))

# The code will raise an exception

print(eval('sqrt(25)', {}))

Đầu ra

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

Ở đây, hàm

eval(expression, globals=None, locals=None)
8 đánh giá biểu thức
x = 1

print(eval('x + 1'))

3 và
x = 1

print(eval('x + 1'))

4 được sử dụng để hiển thị giá trị này.

Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()


Cảnh báo khi sử dụng eval ()

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

Đầu ra

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

Ở đây, hàm

eval(expression, globals=None, locals=None)
8 đánh giá biểu thức
x = 1

print(eval('x + 1'))

3 và
x = 1

print(eval('x + 1'))

4 được sử dụng để hiển thị giá trị này.

Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

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

Đầu ra

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

Ở đây, hàm

eval(expression, globals=None, locals=None)
8 đánh giá biểu thức
x = 1

print(eval('x + 1'))

3 và
x = 1

print(eval('x + 1'))

4 được sử dụng để hiển thị giá trị này.


Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

Cảnh báo khi sử dụng eval ()

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

Hãy xem xét một tình huống mà bạn đang sử dụng hệ thống Unix (MacOS, Linux, v.v.) và bạn đã nhập mô -đun x = 1 print(eval('x + 1'))5. Mô -đun OS cung cấp một cách di động để sử dụng các chức năng hệ điều hành như đọc hoặc ghi vào tệp.

Nếu bạn cho phép người dùng nhập giá trị bằng

x = 1

print(eval('x + 1'))

6, người dùng có thể ban hành các lệnh thay đổi tệp hoặc thậm chí xóa tất cả các tệp bằng lệnh:
x = 1

print(eval('x + 1'))

7.

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

Đầu ra

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

Ở đây, hàm

eval(expression, globals=None, locals=None)
8 đánh giá biểu thức
x = 1

print(eval('x + 1'))

3 và
x = 1

print(eval('x + 1'))

4 được sử dụng để hiển thị giá trị này.


Ví dụ 2: Ví dụ thực tế để chứng minh việc sử dụng eval ()

Cảnh báo khi sử dụng eval () Sometimes,

eval(expression, globals=None, locals=None)
8 is not secure even with limited names. When an object and its methods are made accessible, almost anything can be done. The only secure way is by validating the user input.

Làm thế nào để đánh giá hoạt động trong Python?

Hàm eval () đánh giá biểu thức được chỉ định, nếu biểu thức là một tuyên bố python hợp pháp, nó sẽ được thực thi.evaluates the specified expression, if the expression is a legal Python statement, it will be executed.

Tại sao chúng ta viết eval trong python?

Chức năng đánh giá chủ yếu được sử dụng trong các tình huống hoặc ứng dụng cần đánh giá các biểu thức toán học.Ngoài ra, nếu người dùng muốn đánh giá chuỗi vào mã thì có thể sử dụng chức năng Eval, bởi vì hàm Eval đánh giá biểu thức chuỗi và kết quả là trả về số nguyên.mostly used in situations or applications which need to evaluate mathematical expressions. Also if the user wants to evaluate the string into code then can use eval function, because eval function evaluates the string expression and returns the integer as a result.

Biểu thức Eval là gì?

Eval () là một thuộc tính chức năng của đối tượng toàn cầu.Đối số của hàm eval () là một chuỗi.Nó sẽ đánh giá chuỗi nguồn là một cơ thể tập lệnh, có nghĩa là cả hai câu và biểu thức đều được cho phép.Nó trả về giá trị hoàn thành của mã.Đối với các biểu thức, đó là giá trị mà biểu thức đánh giá.the value the expression evaluates to.

Làm thế nào để bạn nhập một danh sách trong eval?

Đầu tiên, chúng tôi xác định một chuỗi, mang cú pháp của danh sách.Cuối cùng, chúng ta có thể chỉ ra rằng nó có các thuộc tính của danh sách Python.Một ví dụ khác, trong đó chúng tôi cho phép người dùng nhập chuỗi được đánh giá. Next, we use eval to evaluate it. Finally, we can show that it has the properties of a Python list. Another example, where we allow the user to input the string to be evaluated.