如何利用python的赋值运算符,判断表达式是不是等值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用python的赋值运算符,判断表达式是不是等值?相关的知识,希望对你有一定的参考价值。

首先5>2为真,返回值1(1为真,0为假);然后就是1>7为假,返回0;最后0>8为假,返回0。最后结果为0。

或:

从左至右:5>2 =1

1>7 =0

0>8 =0

扩展资料:

一个表达式的赋值和算符的定义以及数值的定义域是有关联的。

两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。

一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。

参考资料来源:百度百科-表达式

参考技术A Python的赋值运算符可以用来判断表达式是否等值。可以使用“==”运算符来比较两个表达式的值是否相等,如果相等,则返回True,否则返回False。
例如:
a = 3
b = 3
if a == b:
print("a and b are equal")
else:
print("a and b are not equal")
# Output: a and b are equal
参考技术B if a == b:
if (a-1) == (b-2) :
你要的就是上面这类判断表达式

利用正则表达式判断四则运算表达式是否合法

写了一个判断四则运算合法性较验的式子。    

技术分享
public static bool CheckExpressionValid(string input)
{
    string pattern = @"^(((?<o>\()[-+]?([0-9]+[-+*/])*)+[0-9]+((?<-o>\))([-+*/][0-9]+)*)+($|[-+*/]))*(?(o)(?!))$";
    //去掉空格,且添加括号便于进行匹配
    return Regex.IsMatch("(" + input.Replace(" ", "") + ")", pattern);
}
技术分享

 

技术分享
public static bool CheckExpressionValid(string input) 
{ 
    string pattern = @"^(((?<o>\()[-+]?([0-9]+[-+*/])*)+[0-9]+((?<-o>\))([-+*/][0-9]+)*)+($|[-+*/]))*(?(o)(?!))$";     
    //去掉空格,且添加括号便于进行匹配     
    return Regex.IsMatch("("+ input.Replace(" ", "") + ")", pattern); 
}
技术分享

 

较难的地方在于括号的匹配,(? <o> \()是用来把左括号保存到o变量下,对应于(? <-o> \))用来去掉左括号,(?(o)(?!)) 是匹配完了右括号后,如果还剩下左括号,则不需再进行匹配。

测试代码 

技术分享
string[] inputs = new string[] 

{  
    "(", 
    "(() ",  
    "1 / ",  
    ")1 ",  
    "+3 ",  
    "((1) ",  
    "(1)) ",  
    "(1) ",  
    "1 + 23",  
    "1+2*3 ",  
    "1*(2+3) ",                  
    "((1+2)*3+4)/5 ",  
    "1+(2*) ",                                                  
    "1*(2+3/(-4)) ",                  
}; 
  
foreach(string input in inputs) 
{ 
    Console.WriteLine("{0}:{1} ", input, CheckExpressionValid(input)); 
} 
Console.ReadKey();
 
技术分享

项目中用到的地方是与此略有不同,表达式为:"产品面积*单价",所以调用CheckExpressionValid函数前需要再转换一下,转换较为简单,将"产品面积"替换成数字即可,[\u4e00-\u9fa5])+用来匹配中文。 

技术分享
private static bool CheckCalcExpressionValid(string expression) 
{ 
  string parttern = @"(产品面积|单价|印张数量)\.([\u4e00-\u9fa5])+"; 
  string matchparttern = "1 "; 
  return CheckExpressionValid(Regex.Replace(expression, parttern, matchparttern)); 
}
 
技术分享

 

以上是关于如何利用python的赋值运算符,判断表达式是不是等值?的主要内容,如果未能解决你的问题,请参考以下文章

002-小白学python-运算符/判断/循环

编程基础之Python11Python中的表达式

Python基础

零基础学python第七课,while循环赋值运算符循环嵌套

零基础学python第七课,while循环赋值运算符循环嵌套

python判断两个代数式本质上是不是一样?