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
   134   135   136   137   138   139   140   141   142   143   144