54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
# Lesson 1 Task 2: calculator
|
||
# Author: Stanislav Mykhailenko
|
||
# License: Unlicense
|
||
|
||
# Return codes:
|
||
# 0 - OK
|
||
# 1 - Invalid numbers entered
|
||
# 2 - Division by zero
|
||
# 3 - Invalid first operation entered
|
||
# 4 - Square root of a negative number calculation
|
||
|
||
import sys, math
|
||
|
||
try:
|
||
numberA = float(input("Enter number A: "))
|
||
numberB = float(input("Enter number B: "))
|
||
except ValueError:
|
||
print("Invalid numbers entered.")
|
||
sys.exit(1)
|
||
|
||
operation = input("Enter operation (+, − or -, × or *, ÷ or /): ")
|
||
|
||
# The other part of the task is not clearly defined. It asks to implement square root of a number, or its square, but it can only be done with one number. Assuming it is the result of the first operation and saving it…
|
||
result: float
|
||
|
||
if operation == "+":
|
||
result = numberA + numberB
|
||
elif operation == "-" or operation == "−": # ASCII hyphen-minus or Unicode minus
|
||
result = numberA - numberB
|
||
elif operation == "*" or operation == "×": # ASCII asterisk or Unicode multiplication sign
|
||
result = numberA * numberB
|
||
elif operation == "/" or operation == "÷": # ASCII slash or Unicode division sign
|
||
if numberB == 0:
|
||
print("Division by zero.")
|
||
sys.exit(2)
|
||
else:
|
||
result = numberA / numberB
|
||
else:
|
||
print("Invalid operation.")
|
||
sys.exit(3)
|
||
|
||
print("Result: " + str(result))
|
||
|
||
# …and asking to do sqrt or square with it.
|
||
secondOperation = input("Do anything else with the result (√ or sqrt, ² or square, any other input will be ignored)? ")
|
||
|
||
if secondOperation == "√" or secondOperation == "sqrt": # Unicode radical symbol
|
||
if result < 0:
|
||
print("Can't get a square root of a negative number.")
|
||
sys.exit(4)
|
||
else:
|
||
print(math.sqrt(result))
|
||
elif secondOperation == "²" or secondOperation == "square": # Unicode superscript 2
|
||
print(math.pow(result, 2))
|