函数参数中的Python数学符号?

2022-04-19 00:00:00 python function symbols math sign

问题描述

我想知道是否有办法将数学符号添加到函数参数中。

def math(x, y, symbol):
      answer = x 'symbol' y
      return answer

这是我所指的一个小例子。

编辑: 以下是整个问题

def code_message(str_val, str_val2, symbol1, symbol2):
    for char in str_val:

        while char.isalpha() == True:
            code = int(ord(char))
            if code < ord('Z'):
                code symbol1= key
                str_val2 += str(chr(code))
            elif code > ord('z'):
                code symbol1= key
                str_val2 += str(chr(code))
            elif code > ord('A'):
                code symbol2= key
                str_val2 += str(chr(code))
            elif code < ord('a'):
                code symbol2= key
                str_val2 += str(chr(code))
            break
        if char.isalpha() == False:
            str_val2 += char
    return str_val2

我需要多次调用该函数,但有时用+/-表示第一个符号,有时用+/-表示第二个符号

原码:

def code_message(str_val, str_val2):
    for char in str_val:

        while char.isalpha() == True:
            code = int(ord(char))
            if code < ord('Z'):
                code -= key
                str_val2 += str(chr(code))
            elif code > ord('z'):
                code -= key
                str_val2 += str(chr(code))
            elif code > ord('A'):
                code += key
                str_val2 += str(chr(code))
            elif code < ord('a'):
                code += key
                str_val2 += str(chr(code))
            break
        if char.isalpha() == False:
            str_val2 += char
    return str_val2

解决方案

不能将运算符传递给函数,但可以传递operator库中定义的运算符函数。因此,您的函数将如下所示:

>>> from operator import eq, add, sub
>>> def magic(left, op, right):
...     return op(left, right)
...

示例:

# To Add
>>> magic(3, add, 5)
8
# To Subtract
>>> magic(3, sub, 5)
-2
# To check equality
>>> magic(3, eq, 3)
True

注意:我使用Function Asmagic而不是math,因为math是默认的python库,使用预定义的关键字不是好的做法。

相关文章