如何在python中获取一个复数作为用户输入?

shi*_*jna 6 python input calculator complex-numbers python-2.7

我正在尝试构建一个执行复数基本运算的计算器。我正在使用我在网上找到的计算器的代码,我希望能够将用户输入作为复数。现在代码使用 int(input) 来获取要评估的整数,但我希望输入采用复数形式,格式为 complex(x,y),其中用户只需要为每个输入 x,y复数。我是 python 的新手,所以鼓励解释,如果这是不可能的,那很高兴知道。这是现在的代码:

# define functions
def add(x, y):
   """This function adds two numbers"""

   return x + y

def subtract(x, y):
   """This function subtracts two numbers"""

   return x - y

def multiply(x, y):
   """This function multiplies two numbers"""

   return x * y

def divide(x, y):
   """This function divides two numbers"""

   return x / y

# take input from the user
print("Select operation.")
print("1.Add")
print("2.Subtract")
print("3.Multiply")
print("4.Divide")

choice = input("Enter choice: 1, 2, 3, or 4: ")

num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))

if choice == '1':
   print(num1,"+",num2,"=", add(num1,num2))

elif choice == '2':
   print(num1,"-",num2,"=", subtract(num1,num2))

elif choice == '3':
   print(num1,"*",num2,"=", multiply(num1,num2))

elif choice == '4':
   print(num1,"/",num2,"=", divide(num1,num2))
else:
   print("Invalid input")
Run Code Online (Sandbox Code Playgroud)

sle*_*anc 5

将您的输入传递给complextype 函数。这个构造函数也可以用一个字符串作为参数来调用,它会尝试使用 Python 的复数表示来解析它。

例子

my_number = complex(input("Number"))
Run Code Online (Sandbox Code Playgroud)

请注意,Python 使用“j”作为虚部的符号;您必须告诉您的用户以这种格式输入数字:1+3j

如果您希望计算器支持不同的语法,则必须自己解析输入并将其提供给complex构造函数。正则表达式可能会有所帮助。