【问题标题】:Function for checking operators in a string用于检查字符串中的运算符的函数
【发布时间】:2019-02-02 07:11:44
【问题描述】:

我正在尝试做一个程序来识别字符串中的运算符并显示它。我想知道是否有任何函数可以检查字符串中的运算符。就像我们有 string.punctuation 标点符号

我尝试将一些运算符放在一个列表中并尝试将其与字符串进行比较。

op = ["+", "-", "*", "/", "<", ">", " ", "="]    
exp = input("Enter the expression: ")     
tokens = exp.split()     
for x in tokens:         
    if x in op:    
        print("operator: ", x)

我得到了预期的结果,但只是想知道是否有一个函数可用于检查字符串中的运算符。

【问题讨论】:

    标签: python python-3.x operators


    【解决方案1】:

    我不知道有什么比你做的更好的方法。但是,如果您只想检查运算符的存在并且性能是您的考虑因素,我建议使用 set intersection:

    op = {"+","-","*","/","<",">"," ","="}
    exp = input("""Enter the expression: """)     
    tokens = set(exp)
    print(tokens.intersection(op))
    

    对于像"+++ *** 2 &lt; 3" 这样的输入,打印出来的值是:

    {' ', '+', '*', '<'}
    

    【讨论】:

    • 为了清楚起见,此解决方案适用于给定的运算符,但不适用于多字符运算符。
    • 在这种情况下,替换 tokens = set(exp.split()) 可以解决问题。 @afsantos。但问题似乎与单个字符有关。
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2016-02-09
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多