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

2025-03-12 08:55:00
admin
原创
24
摘要:问题描述:将数学应用于变量的常用方法是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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1642  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1373  
  信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,推动我国数字经济的高质量发展。在金融行业,信创的应用具有极其重要的意义。金融作为国家经济的核心领域,其安全稳定运行关乎国计民生。随着国际形势的变化和信息技术的飞速发展,金融行业对自主创新、安全可靠的信息技术需求愈发迫切。国货国用信创在金融行业的应用,不仅能够...
信创产品有哪些   0  
  信创技术,即信息技术应用创新产业技术,涵盖了从芯片、服务器、操作系统到数据库、中间件等一系列基础软硬件领域。近年来,信创技术发展迅猛,正以前所未有的态势渗透到传统制造业的各个环节,深刻改变着传统制造业的格局。传统制造业长期以来依赖于传统的生产模式、管理方式以及技术架构,在全球经济环境变化、市场竞争加剧的背景下,面临着转...
信创软件有哪些   0  
  信创产业作为近年来备受瞩目的领域,正深刻影响着全球科技格局与经济发展走向。它不仅仅是信息技术的创新应用,更是国家战略安全、产业转型升级的关键支撑。在数字化浪潮席卷而来的当下,信创产业的发展态势成为各界关注焦点。对其未来5年发展趋势进行预测,有助于我们提前布局、把握机遇,在这场科技变革中占据有利位置。技术创新引领产业升级...
国产化信创什么意思   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用