【问题标题】:Assigning operator to a variable in Python将运算符分配给Python中的变量
【发布时间】:2020-01-18 09:05:51
【问题描述】:

我是 Python 的初学者,我不知道如何将运算符分配给变量。

我已经阅读了assign operator to variable in python?,但我仍然无法弄清楚我的问题。

a = str(+) 这行代码给出了一个无效的语法错误。

然而,a =input() 在我们将运算符作为输入时完全可以正常工作。该运算符存储为字符串类型,因为无论您输入什么内容,输入函数都会将其转换为字符串。

为什么 str() 不能将运算符存储为字符串,而 input() 可以完成相同的任务而没有任何错误?

【问题讨论】:

  • 但是用户没有提供一个操作符作为输入。用户给出了一个字符串“+”,它恰好类似于加法运算符。这是use-mention distinction 之类的东西。
  • 对于您的情况,您应该可以这样做:a = "+"

标签: python


【解决方案1】:

根据其他帖子,您必须这样做

import operator
a = operator.add

那里的答案只是在字典中查找

你没有给 input() 一个操作符,你总是输入和输出一个字符串,它可以是任何字符和符号的集合

【讨论】:

  • 我几乎可以肯定 OP 不想要 a = '<built-in function add>',这是一个内置函数的字符串表示形式。
  • a = operator.add,不过,这可能是一种可能性。
  • 实际上我正在尝试编写一个函数来设计一个计算器,该计算器接受两个值和一个变量形式的运算符作为参数。操作是根据收到的运算符对值执行的,但我无法将运算符存储在变量中。
  • 您可以只存储字符,然后进行比较并执行适当的操作。有几种方法可以处理它martinbroadhurst.com/shunting-yard-algorithm-in-python.html
【解决方案2】:

+ 不是任何类型的标识符或值;它是 Python 语法的一部分。你可能想要a = str("+")(或者只是a = "+")。

input 不带值;无论您在何种环境中运行,都已经将您的击键转换为字符串以供 input 读取和返回。

如果您希望a 成为可调用函数,那么您可以使用@cricket_007 的答案中提到的operator.add(虽然没有通过str,但根据我对该答案的评论直接使用)。

【讨论】:

  • 对 str() 的调用在这里没有任何作用——它传递了一个字符串并返回相同的字符串
  • 真;我会调整的。
【解决方案3】:

要添加到上述答案,您可以将输入验证为整数:

while True:
    try:
       userInput = int(input('Enter a number:> '))       
    except ValueError:
       print("Not an integer! Try again.")
       continue
    else:
       return userInput 
       break 

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 2014-12-06
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2020-08-07
    相关资源
    最近更新 更多