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)
将您的输入传递给complex
type 函数。这个构造函数也可以用一个字符串作为参数来调用,它会尝试使用 Python 的复数表示来解析它。
例子
my_number = complex(input("Number"))
Run Code Online (Sandbox Code Playgroud)
请注意,Python 使用“j”作为虚部的符号;您必须告诉您的用户以这种格式输入数字:1+3j
如果您希望计算器支持不同的语法,则必须自己解析输入并将其提供给complex
构造函数。正则表达式可能会有所帮助。