Home > Enterprise >  How do i turn split input into int?
How do i turn split input into int?

Time:06-06

Heres what i have so far. What im trying to do is ask the user for an expression, they input something like "1 1" and its split into x, y, and z so X would be 1, Y would be and Z would be the second 1. Im sure there may be several issues but the main one im having right now is converting their input into an int. im still very very new with this this is literally just an intro to python course so any help is welcome. tia.

x, y, z = input("Expression: ").split()

if y == " ":
output = x   z
print(output)

elif y == "-":
output = x - z
print(output)

elif y == "*":
output = x * z
print(output)

elif y == "/":
output = x / z
print(output)

CodePudding user response:

You can try for this:

x, y, z = input("Expression: ").split()

x = int(x)
z = int(z)

if y == " ":
    output = x   z
    print (output)

elif y == "-":
    output = x - z
    print(output)

elif y == "*":
    output = x * z
    print(output)

elif y == "/":
    output = x / z
    print(output)

CodePudding user response:

The simplest way to do this would be the way that you were doing. But the catch is you have to have spaces between the numbers and the operators like this. 1 1

x, y, z = input("Expression: ").split()

output = 0
x = int(x)
z = int(z)
if y == " ":
    output = x   z
elif y == "-":
    output = x - z
elif y == "*":
    output = x * z
elif y == "/":
    output = x / z
print(output)

But if the input is like the following 1 1 where it contains no spaces, then you might get errors. In order to fix that issue the following simple approach can be taken.

import operator
value = input("Expression: ")
ops = {' ':operator.add, '-':operator.sub, '*':operator.mul , '/':operator.truediv}
for i in ops:
    if i in value:
        x,y = value.split(i)
        x = int(x)
        y = int(y)
        print(ops[i](x,y))
        

If your python version is 2, you might want to use operators.div instead of operators.truediv.

  • Related