eval妙用
00 min
2024-5-4

1. eval在测试用例中应用

1.1 问题引入:

  • leetcode题:707. 设计链表,自定义单向链表类"MyLinkedList" ,并添加相关方法:"addAtHead"、"addAtTail"、"addAtIndex"、"get"、"deleteAtIndex"。
    • addAtHead:添加头节点 addAtTail:添加尾结点 addAtIndex:按索引插入节点,如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中。 get:按照索引查看节点值,如果下标无效,则返回 -1 deleterAtIndex:按照索引删除节点(如果下标有效的话)

MyLinkedList类代码

  • 但是在代码提交过程中,可能在某个用例就会出错,给出的用例输入如下:
    •                                      示例图片(与下面用例不一致)
      示例图片(与下面用例不一致)
  • 如何去跑上面的用例,即如何让MyLinkedList() 实例化对象用for循环依次遍历并调用方法列表中的方法?

1.2 eval函数实现

2. eval在构建简单计算器中妙用

2.1 问题引入

  • 如何去构建一个简单的四则运算计算器
  • 用户输入“1+2”字符串,按照正常思维,提取字符串中1和2两个整数以及运算方式加法(+),然后将三个参数送入对应加法运算代码当中,再返回3。

2.1 eval函数使用

eval函数可以将输入的字符串去引号后获取Python可识别的表达式