Page 139 - Em Học Python
P. 139
Hàm eval chỉ chạy được với những biểu thức đơn giản, kiểu như:
>>> eval('10*5') 50
Biểu thức nào mà nhiều hơn một dòng (kiểu lệnh if chẳng hạn) thường sẽ không
chạy:
>>> eval('''if True:
print("this won't work at all")''')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
if True: print("this won't work at all')
^
SyntaxError: invalid syntax
Hàm eval thường được dùng để biến dữ liệu
được người dùng nhập vào thành các biểu thức
Python. Ví dụ em có thể viết phần mềm cho một
cái máy tính bỏ túi, với đầu vào là các biểu thức
toán và rồi trả ra kết quả tính toán được.
Do dữ liệu từ người dùng đều là chuỗi hết,
Python sẽ cần chuyển đổi hết sang số và toán tử
trước khi thực hiện bất cứ tính toán nào. Hàm eval
có thể xử lý việc đó vô cùng nhanh gọn:
>>> your_calculation = input('Enter a calculation: ')
Enter a calculation: 12*52
>>> eval(your_calculation)
624
Ở đây, ta dùng input để ghi lại những gì người dùng nhập từ bàn phím vào biến
your_calculation. Dòng tiếp theo, ta nhập vào biểu thức 12*52 (hẳn là đang nhân số tuổi
với số tuần trong năm đây). Ta sử dụng eval để tính phép tính này, và kết quả được in ra ở
dòng cuối cùng.
Các hàm Python được viết sẵn 113