eval()函数的作用
在百度上查eval()的作用,网上给出的解释是:它的作用是把对应的字符串解析成js代码并运行(将json的字符串解析成为JSON对象);给出的例子是num=eval(input(“请输入一个整数:”))
或者num=eval(‘x+1’)
我的问题是,如果代码写成num=input("请输入一个整数:")
或者num=x+1
代码一样也没有问题啊。那eval()函数的作用是什么?{:5_111:} eval()
用来去掉字符串最外层的引号
假如我们有个字符串形式的字典
string = "{'data': 123, 'name': 'taobing', 'time': '2021811 14:37:40', 'other': {'IP': '192.168.1.1'}}"
想把它的数据类型从字符串变为字典
可以直接dic = eval(string) js不分语句和表达式 直接把字符串当成代码执行并且返回
python的eval只能把代码当成表达式执行并返回
eval还可以传参把参数带入到字符串里 例子:
def solve(eq1, eq2, var=('x', 'y')):
eq1 = eq1.replace("=", "-(") + ")"
eq1_x0 = eval(eq1, {var: 1j, var: 0})
eq1_y0 = eval(eq1, {var: 0, var: 1j})
eq1_a = -(eq1_x0.imag) / (eq1_y0.imag)
eq1_b = -eq1_y0.real / eq1_y0.imag
eq2 = eq2.replace("=", "-(") + ")"
eq2 = eval(eq2.replace(var, "({0}*x+{1})".format(*)),
{var: 1j})
x = -eq2.real / eq2.imag
y = eq1_a * x + eq1_b
return "{}={};{}={}".format(var, x, var, y)
print(solve('x+y=10', '2*x+4*y=16'))
5和"5"不一样
页:
[1]