首页 > 其他分享 >字符串转化为算术

字符串转化为算术

时间:2023-09-18 19:36:49浏览次数:24  
标签:num3 算术 value 转化 print result eval 字符串

# 字符串
# 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函数可能会非常危险。在这种情况下,你可能需要使用更安全的方法,如使用正则表达式或者解析库来解析字符串,然后计算结果。

标签:num3,算术,value,转化,print,result,eval,字符串
From: https://blog.51cto.com/u_15580157/7514361

相关文章

  • python 全角半角字符、字符串互转
    defis_chinese(uchar):"""判断一个unicode是否是汉字"""ifuchar>=u'\u4e00'anduchar<=u'\u9fa5':returnTrueelse:returnFalsedefis_number(uchar):"""......
  • 一文读懂Java类型转化:提升编程效率的关键步骤
    java数据类型类型转化Java类型转化是将一个数据类型的值转换为另一个数据类型的值的过程。在Java中,类型转化分为自动类型转化(隐式类型转化)和强制类型转化(显式类型转化)。自动类型转化(隐式类型转化):当两个不同类型的数据进行运算时,Java会自动将高精度的数据类型转换为低精度的数据......
  • 代码随想录算法训练营day11| ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复
    20.有效的括号卡哥democlassSolution{public:boolisValid(strings){if(s.size()%2!=0)returnfalse;stack<char>st;for(inti=0;i<s.size();i++){if(s[i]=='(')st.push('......
  • natsort.natsorted()-用于自然排序(natural sorting)字符串列表。
    参考:https://natsort.readthedocs.io/en/stable/api.html#natsort.natsorted语法格式natsort.natsorted(seq:Iterable[T],key:Optional[Callable[[T],Union[natsort.utils.SupportsDunderLT,natsort.utils.SupportsDunderGT,None]]]=None,reverse:bool=False,alg:......
  • 68-形参和实参-文档字符串-函数注释
        ......
  • [8]-代码随想录算法训练营-day9-字符串-part2
    代码随想录算法训练营第九天|字符串-part21.Leecode28.找出字符串中第一个匹配项的下标题目https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/思路暴力for循环刷随想录后想法KMP模式匹配算法实现困难KMP算法理解......
  • [7]-代码随想录算法训练营-day8-字符串-part1
    代码随想录算法训练营第八天|数组字符串-part11.Leecode344.反转字符串题目https://leetcode.cn/problems/reverse-string/思路刷随想录后想法双指针,用swap实现困难无实现代码classSolution{public:voidreverseString(vector<char>&s){......
  • Python第五章(1)字符串
    1.字符串的特性:(1)字符串是不可变类型。2.字符串的判定:isinstance(testString,str)3.用三引号实现长字符串。当开头的"""\时,开头不会输出换行符。4.字符串的索引和切片(1)字符串索引在实际使用情况下,“索引值”即“偏移量”。aString=="你好......
  • C语言如何输入一个字符串?
    (C语言如何输入一个字符串?)用scanf输入字符串(有限制)整个字符串处理在scanf()和printf()函数中,%s指的就是字符串所以我们就可以使用scanf("%s",str)和printf("%s",str)从键盘处读取字符串并将字符串打印出来代码如下:intmain(){ charstr[10]={0}; scanf("%s",str......
  • 字符串杂题20230916
    今天的题目没有那么难,挑一些不蛮板的题目来讲。建议不要光看,打个草稿画一下图,这个是解字符串题的关键。[POI2005]SZA-Template题目描述你打算在纸上印一串字母。为了完成这项工作,你决定刻一个印章。印章每使用一次,就会将印章上的所有字母印到纸上。同一个位置的相同字符可以......