python中字符串形式形式相加减

一,常规的类型转换形式

str_data = "2"
i = int(str_data, 10)
str_data1 = "3"
y = int(str_data1, 10)
h = i + y
print(h)

结果:5

二,用map函数方法

str_data = "2"
str_data1 = "3"
a = list(map(int, str_data))
b = list(map(int, str_data1))
print(a[0] + b[0])

结果:5

a=input()

a1,a2=map(int,a.split())

print(a1+a2)

 输入2, 3

输出 5

三,eval()

a = "1"
b = "2"
print(eval(a) + eval(b))

输出:3

        eval和input函数在使用时需要非常小心,因为它们可以执行任意代码。如果不加限制地使用这些函数,攻击者可以通过注入恶意代码来执行系统命令、读取敏感文件等操作,从而造成严重的安全问题。

  为了避免这种情况发生,应该尽可能避免使用eval和input函数,并且在必须使用时,要对输入进行严格的过滤和验证,确保只有合法的数据才能被执行。同时,还可以考虑使用更安全的替代方案,比如ast.literal_eval()函数来代替eval函数,或者使用Python的argparse模块来处理命令行参数,以避免直接调用系统命令。

四,用 ast.literal_eval()

        ast.literal_eval()函数可以安全地将字符串转换为Python字面值表达式的值,例如字符串、数字、元组、列表、字典等。与eval不同,它只能处理一些简单的数据类型,并且不能执行任意代码。

使用ast.literal_eval()函数非常简单,只需要将要转换的字符串作为参数传递给该函数即可

import ast
b = ast.literal_eval(input())
a = ast.literal_eval(input())
print(a + b)

 输入:3

            2

输出: 5

        在上面的示例中,将字符串传递给ast.literal_eval()函数,它会将其解析为一个int对象(因为字符串里面是一个int类型),并返回该对象。由于该函数只能处理一些简单的数据类型,因此如果传递的字符串无法被解析为合法的Python字面值表达式,该函数会抛出SyntaxError异常。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值