【问题标题】:Operator symbols for functions in the python operator classpython运算符类中函数的运算符符号
【发布时间】:2021-01-21 19:12:12
【问题描述】:

我正在编写一个程序,要求用户进行简单的计算。这个想法是将计算运算符作为参数传递,它可以是加法、减法、乘法或除法。我想做以下工作:

def ask(a,b,op):
  x = input( a, str(op), b, "=") 
  return ( x == op(a,b) )


#MAIN:
   ask(4, 6, operator.add )

这个想法是这样会产生提示: 4+6=

问题当然是 str 不是这样工作的,我在 python 文档或 google 中找不到类似的东西(很难 google,因为“运算符”这个词太常见了)。

【问题讨论】:

  • 这能回答你的问题吗? How to pass an operator to a python function?
  • 是的,Gino,但我希望有更简单的方法来做到这一点。
  • 我认为您必须定义“更简单”的含义。这是主观的,因为对我来说map str(op) to operator 的解决方案看起来足够“简单”(清晰/可读,没有外部库)。

标签: python operators


【解决方案1】:

如果您的符号数量有限,最好制作一本字典,将它们相互分配。喜欢{operator.add: '+', ...}

Afaik 现在可以从运算符函数中找到符号。我能做的最好的就是

import operator

def ask(a, b, op):
    x = input(f"{op.__name__} {a} and {b} =") 
    return (int(x) == op(a,b))

print(ask(4, 2, operator.add))

这将为您提供操作员的名称(而不是符号)

【讨论】:

  • 虽然我希望有更简单的解决方案,但它解决了问题。知道没有一个当然很有用,非常感谢!我是新手,因此无法支持您的回答。
猜你喜欢
  • 2013-09-27
  • 2013-01-19
  • 2022-01-16
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 2012-01-08
相关资源
最近更新 更多