This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
NG_2022_Stanislav_Mykhailenko/Lesson_1/task2.py
Stanislav Mykhailenko fdbfb97502
Add Lesson 1 Task 2
2022-10-18 17:02:29 +03:00

54 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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))