python之eval()函数

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


# 基本的数学计算
print(eval("2 + 3"))
print("\n")
# 字符串重复
print(eval("'*' * 5"))
print("\n")
# 将字符串转换成列表
print(type(eval("[1, 2, 3]")))
print("\n")
# 将字符串转换成字典
print(type(eval("{'name': '张三', 'age': 18}")))

 输出结果如下:

5


*****


<class 'list'>


<class 'dict'>


案例一:提示用户输入一个加减乘除混合运算式

input_str = input("请输入一个算术题:")

print(eval(input_str))
请输入一个算术题:2*4
8

案例二:eval()函数另一个很重要的作用是可以将输入的数字是字符串的形式转换为数字类型,示例如下:

input_str0 = input("请输入一个数:")
print(input_str0 * 3)
print("\n")
input_str1 = eval(input("请输入一个数:"))
print(input_str1 * 3)

结果如下:

请输入一个数:3
333


请输入一个数:3
9

出现这种情况的原因就是第一个输入的3是字符串类型,而不是第二个3一样的数字类型


但eval()也不能滥用:

在开发的时候不要直接用eval()直接输出input()的结果:

__import__('os').system('ls')

上面这一行代码等价于:

import os

os.system("终端命令")

表示执行结束,执行成功返回0,执行失败会返回错误信息

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值