Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get a complex number as a user input in python?

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")
like image 954
shivajna Avatar asked Sep 09 '16 14:09

shivajna


3 Answers

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.

like image 87
sleblanc Avatar answered Sep 29 '22 17:09

sleblanc


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
>>> 
like image 38
Neo Ravi Avatar answered Sep 29 '22 17:09

Neo Ravi


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) 
like image 35
Ayush Kapri Avatar answered Sep 29 '22 17:09

Ayush Kapri