eval 函数

简介: eval 函数

[TOC]

一、eval 函数概念

eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果

作用:eval() 函数会把字符串的引号去掉,然后把中间的内容当作python的代码,然后eval() 函数会执行这一段代码,并且返回执行的结果。

# 基本的数学计算
In [1]: eval("1 + 1")
Out[1]: 2

# 字符串重复
In [2]: eval("'*' * 10")
Out[2]: '**********'

# 将字符串转换成列表
In [3]: type(eval("[1, 2, 3, 4, 5]"))
Out[3]: list

# 将字符串转换成字典
In [4]: type(eval("{'name': 'xiaoming', 'age': 18}"))
Out[4]: dict

二、案例 - 计算器

需求

  1. 提示用户输入一个 加减乘除混合运算
  2. 返回计算结果
input_str = input("请输入一个算术题:")

print(eval(input_str))

三、不要滥用 eval

在开发时千万不要使用 eval 直接转换 input 的结果
__import__('os').system('ls')
  • 等价代码
import os

os.system("终端命令")
  • 执行成功,返回 0
  • 执行失败,返回错误信息
目录
相关文章
|
2月前
|
JavaScript 前端开发 Java
print_numbers_up_to 函数介绍
【10月更文挑战第20天】
55 12
|
5月前
|
Python
python中getattr函数 hasattr函数
python中getattr函数 hasattr函数
|
8月前
|
监控 安全 JavaScript
eval函数的基础用法
【4月更文挑战第7天】`eval`函数在Python中用于执行字符串形式的表达式,但可能导致安全问题,特别是在处理用户输入时。为了避免风险,可以限制输入范围、避免动态构建代码,或使用`ast.literal_eval`评估字面量。当必须使用`eval`时,可以考虑提供自定义命名空间、使用白名单限制函数和操作符,甚至创建沙箱环境。同时,代码审查和实时监控也是保障安全的关键。在安全性和性能之间寻找平衡是使用`eval`时的重要考量。
180 2
|
JavaScript 前端开发 安全
什么是eval()?eval是用来干什么的?
eval() 是 JavaScript 中的一个全局函数,用于解析并执行传递给它的字符串作为 JavaScript 代码。
214 0
|
前端开发 JavaScript
前端eval的使用
前端eval的使用
91 0
|
存储 测试技术
测试模型时,为什么要with torch.no_grad(),为什么要model.eval(),如何使用with torch.no_grad(),model.eval(),同时使用还是只用其中之一
在测试模型时,我们通常使用with torch.no_grad()和model.eval()这两个方法来确保模型在评估过程中的正确性和效率。
1159 0
|
PyTorch 算法框架/工具
torch.split 的用法
这将返回一个元组,包含 3 个大小分别为 (6, 2)、(6, 2) 和 (6, 4) 的张量。 需要注意的是,当给定的拆分大小不等于张量在指定维度上的大小时,torch.split() 会引发一个异常。
486 0
|
Serverless
train_test_split.py代码解释
这段代码用于将MovieLens 1M数据集的评分数据划分为训练集和测试集。 • 首先,使用Path库获取当前文件的父级目录,也就是项目根目录。 • 接着,定义输出训练集和测试集文件的路径。
182 0
|
缓存 Java Go
自带的 print 函数居然会报错?(下)
最近用 Python 写了几个简单的脚本来处理一些数据,因为只是简单功能所以我就直接使用 print 来打印日志。
|
运维 测试技术 Python
自带的 print 函数居然会报错?(上)
最近用 Python 写了几个简单的脚本来处理一些数据,因为只是简单功能所以我就直接使用 print 来打印日志。