在 python 中将运算符分配给变量?

2025-03-12 08:55:00
admin
原创
19
摘要:问题描述:将数学应用于变量的常用方法是a * b 它能像这样计算并操作两个操作数吗?a = input('enter a value') b = input('enter a value') op = raw_input('enter a operand') 那么我该如何连接 op 和两个变量aand b?...

问题描述:

将数学应用于变量的常用方法是

a * b

它能像这样计算并操作两个操作数吗?

a = input('enter a value')
b = input('enter a value') 
op = raw_input('enter a operand')

那么我该如何连接 op 和两个变量aand b

我知道我可以将 op 与+-、进行比较%$然后分配和计算....

但是我可以做一些事情,例如a op b,如何告诉编译器 op 是一个运算符?


解决方案 1:

您可以使用操作符模块和字典:

import operator
ops = {
    "+": operator.add,
    "-": operator.sub,
    "*": operator.mul,
    "/": operator.div
}   
op_char = input('enter a operand')
op_func = ops[op_char]
result = op_func(a, b)

解决方案 2:

运算符模块http://docs.python.org/library/operator.html公开了与几乎所有 Python 运算符相对应的函数。您可以将运算符符号映射到这些函数以检索适当的函数,然后将其分配给您的 op 变量并计算 op(a, b)。

解决方案 3:

我知道这是一个非常古老的话题,但我相信当时人们并不知道这个eval函数(也许它是 Python 3 附带的)。所以这是对这个问题的更新答案

a = input('enter a value')
b = input('enter a value') 
op = input('enter an operand')
expression = a + op + b # simple string concatenation
result = eval(expression)

如果输入不期望始终有效,ast.literal_eval则可以改用。如果输入不是有效的 Python 数据类型,则会引发异常,因此如果不是,则不会执行代码。例如,如果abop分别为 5、10、+,
result则为 15

解决方案 4:

您可以使用 operator 模块来创建字典。从该模块的Python 3 文档中:

“operator 模块导出一组与 Python 固有运算符相对应的高效函数。例如,operator.add(x, y) 相当于表达式 x+y。”

import operator
ops = {
    "+": operator.add,
    "-": operator.sub,
    "*": operator.mul,
    "/": operator.truediv
}   
op_char = input('enter a operand')
a = 1
b = 2
result = ops[op_char](a,b)
print(result)

解决方案 5:

您需要手动将用户输入的字符串与您的操作数列表进行比较。这里没有 int() 的类似物,因为运算符是语言中的关键字而不是值。

将输入字符串与操作数列表进行比较并确定其对应的运算符后,可以使用 Python 标准库的运算符模块来计算将运算符应用于两个操作数的结果。

解决方案 6:

a = int(input("Give a number for an operation: "))
b = int(input("Give a number for the other operation: "))
operation = input("Choose a math operation (+, -, *, /): ")

if operation == "+":
           result = a + b
elif operation == "-":
            result = a - b
elif operation == "*":
           result = a * b
elif operation == "/":
           result = a / b
else:
           result = "Invalid operation"

print(f"The result is: {result}")
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1603  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1369  
  信创产品在政府采购中的占比分析随着信息技术的飞速发展以及国家对信息安全重视程度的不断提高,信创产业应运而生并迅速崛起。信创,即信息技术应用创新,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。政府采购作为推动信创产业发展的重要力量,其对信创产品的采购占比情况备受关注。这不仅关系到信创产业的发展前...
信创和国产化的区别   30  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,摆脱对国外技术的依赖。近年来,国货国用信创发展势头迅猛,在诸多领域取得了显著成果。这一发展趋势对科技创新产生了深远的推动作用,不仅提升了我国在信息技术领域的自主创新能力,还为经济社会的数字化转型提供了坚实支撑。信创推动核心技术突破信创产业的发展促使企业和科研...
信创工作   28  
  信创技术,即信息技术应用创新产业,旨在实现信息技术领域的自主可控与安全可靠。近年来,信创技术发展迅猛,对中小企业产生了深远的影响,带来了诸多不可忽视的价值。在数字化转型的浪潮中,中小企业面临着激烈的市场竞争和复杂多变的环境,信创技术的出现为它们提供了新的发展机遇和支撑。信创技术对中小企业的影响技术架构变革信创技术促使中...
信创国产化   35  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用