0
点赞
收藏
分享

微信扫一扫

字符串转化为算术

# 字符串
# 39 - 6 = ?
# "39 - 6 = ?"

# 定位到它文本,然后用字符串切割

# 他是字符串用空格切割,判断是否是数字

# 思路是首先获得这个式子,然后判断符合,最后算出结果,在然后把结果填入

import re

# 要使用Python从字符串"a = "39 - 6 = ?"中切割出数字和运算符,可以使用正则表达式。首先,需要导入re模块,然后使用re.findall()方法来查找所有匹配的数字和运算符。

a = "39 - 6 = ?"
pattern = r'\d+|[-+*/=]'
# \d+:匹配一个或多个数字。\d 表示一个数字字符,+ 表示前面的字符可以出现一次或多次。

# |:表示逻辑"或",用于连接两个不同的匹配规则。

# [-+*/=]:匹配一个运算符。[] 表示字符集,其中包含四个有效的运算符:-、+、* 和 /。

result = re.findall(pattern, a)


# 将数字字符串转换为整数或浮点数

num1 = int(result[0])
num2 = int(result[2])

# 读取符号定义到变量
num3 = result[1]


# print(num1)
# print(num2)
# print(num3)
#
# print(type(num3))

#进行判断符号从而输出结果
if num3 == '-':
    result_value = num1 - num2
    print(result_value)

elif num3 == '+':
    result_value = num1 + num2
    print(result_value)

elif num3 == '*':
    result_value = num1 * num2
    print(result_value)

elif num3 == '/':
    result_value = num1 / num2
    print(result_value)


eval()函数是Python的内置函数,它的主要用法是将字符串作为Python代码执行。这个函数可以接收一个字符串参数,并将这个字符串作为Python语句进行执行。例如,如果你传入'2 + 3',它会返回5。尽管这个函数在某些情况下非常有用,但通常不建议使用它,因为它可能带来安全风险。如果你执行的字符串来自不可信的来源,那么eval()函数可能会执行恶意代码。因此,在处理不可信的输入时,应尽量避免使用eval()。


这个是例子

如果你想将一个字符串转化为算术表达式,然后求解,你可以在Python中使用eval函数。但是注意,eval函数的使用需要非常小心,因为它会执行任何有效的Python代码,可能会被用来执行恶意代码。

这是一个例子:

python复制代码
 s = "1 + 2 * 3"  
 
 result = eval(s)  
 
 print(result)  # 输出结果为 7

在这个例子中,我们有一个字符串"1 + 2 * 3",我们使用eval函数将其转化为一个算术表达式,然后求解,得到结果7。

但是,如果你要处理的字符串来自不可信的来源,那么使用eval函数可能会非常危险。在这种情况下,你可能需要使用更安全的方法,如使用正则表达式或者解析库来解析字符串,然后计算结果。

举报

相关推荐

0 条评论