I'm trying to build a calculator that does basic operations of complex numbers. I'm using code for a calculator I found online and I want to be able to take user input as a complex number. Right now the code uses int(input) to get integers to evaluate, but I want the input to be in the form of a complex number with the format complex(x,y) where the user only needs to input x,y for each complex number. I'm new to python, so explanations are encouraged and if it's something that's just not possible, that'd be great to know. Here's the code as it is now:
# 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")
Pass your input to the complex
type function. This constructor can also be called with a string as argument, and it will attempt to parse it using Python's representation of complex numbers.
Example
my_number = complex(input("Number"))
Note that Python uses "j" as a symbol for the imaginary component; you will have to tell your user to input numbers in this format: 1+3j
If you would like your calculator to support a different syntax, you will have to parse the input and feed it to the complex
constructor yourself. Regular expressions may be of help.
In order to get complex type input from user we have to use complex type function as suggested by @sleblanc. And if you want to separate real and imaginary part then you have to do like this:
complx = complex(input());
print(complx.real, complx.imag);
Example Output:-
>>> complx = complex(input());
1+2j
>>> print(complx.real, complx.imag);
1.0 2.0
>>>
There is no such way to input directly a complex number in Python. But how we can do is take a complex number. Method 1- Take a sting as input then convert it into complex. Method 2- Take two separate numbers and then convert them into complex.
Code for Method 1-
a = input() # user will enter 3+5j
a = complex(a) # then this will be converted into complex number.
Code for Method 2-
a ,b = map(int, input().split())
c = complex(a, b)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With