Interesting.
You do seem to be going about it slightly inefficiently, though. There are some built-in methods in Python to help with these sorts of things.
Firstly there is the eval() function, if you pass it a string it attempts to run it as Python code, then there's hex() which takes an integer and converts it to hex.
So if you modify the code you can turn your try block into just:
a = sys.argv[1]
b = sys.argv[2]
c = sys.argv[3]
if b == "add":
b = "+"
elif b == "sub":
b = "-"
elif b == "mul":
b = "*"
elif b == "div":
b = "/"
print(hex(eval(a + b + c)))
Which has a lot less munging of strings to get them working.
Agree and i recomend https://docs.python.org/3/library/argparse.html
I very rarely write any Python programs that need command line arguments, so haven't used argparse, but it's one of those modules that's on my radar if I ever need to write one.
Thanks! Appreciate the addendum.