Experimenting with match/case

from os import system as syst;from colorama import Fore as F;from colorama import Style as S;from replit import db;p = print;import random;from time import sleep;import datetime
import time, sys, os;from math import sqrt as sqt
def factorial(n):
  if n == 0:
    return 1
  else:
    return n * factorial(n - 1)
def clear():
  syst('clear');
def enter_to_continue():
  p(f'{S.BRIGHT}|{F.BLUE}Enter{F.WHITE}|To Continue{S.NORMAL}');input();
equation = []
hassle = F.BLUE
hassle2 = F.WHITE
#5 SPACES BEFORE EQUATION
dxs = 0
answer = 0
equation2 = []
while True:
  try:
    print(f'{S.BRIGHT}---------------------------------------------------------------------------------------------')
    print('                             Calculator.exe                                                  ')
    print('---------------------------------------------------------------------------------------------')
    if dxs == 1:
      print(f'Equation: {"".join(equation)} = {"".join(equation2)}                                                                       ')
      dxs = 0
      answer = 0
      equation = []
      equation2 = []
    else:
      print(f'Equation: {"".join(equation)}                                                                      ')
    print('---------------------------------------------------------------------------------------------')
    print('Input the number in blue to choose the numbers')
    print('---------------------------------------------------------------------------------------------')
    print(f'     [{hassle}1{hassle2}] 1     [{hassle}2{hassle2}] 2     [{hassle}1{hassle2}] 3     [{hassle}4{hassle2}] 4     [{hassle}5{hassle2}] 5     [{hassle}6{hassle2}] 6     [{hassle}7{hassle2}] 7     [{hassle}8{hassle2}] 8     [{hassle}9{hassle2}] 9')
    print('')
    print(f'     [{hassle}+{hassle2}] +     [{hassle}-{hassle2}] -     [{hassle}/{hassle2}] /     [{hassle}*{hassle2}] *    [{hassle}sqrt{hassle2}] sqrt(must be with a number)     [{hassle}del{hassle2}] del     [{hassle}({hassle2}] (     [{hassle}){hassle2}] )  [{hassle}={hassle2}] =')
    equ = input('> ')
    match equ:
      case '1':
        equation.append('1')
        equation2.append('1')
      case '2':
        equation.append('2')
        equation2.append('2')
      case '3':
        equation.append('3')
        equation2.append('3')
      case '4':
        equation.append('4')
        equation2.append('4')
      case '5':
        equation.append('5')
        equation2.append('5')
      case '6':
        equation.append('6')
        equation2.append('6')
      case '7':
        equation.append('7')
        equation2.append('7')
      case '8':
        equation.append('8')
        equation2.append('8')
      case '9':
        equation.append('9')
        equation2.append('9')
      case '+':
        equation.append('+')
        equation2.append('+')
      case '-':
        equation.append('-')
        equation2.append('-')
      case '/':
        equation.append('÷')
        equation2.append('/')
      case '*':
        equation.append('x')
        equation2.append('*')
      case 'sqrt':
        equation.append('sqrt(')
        equation2.append('sqt(')
      case ')':
        equation.append(')')
        equation2.append(')')
      case '(':
        equation.append('(')
        equation2.append('(')
      case '=':
        answer = ''.join(equation2)
        answer = eval(answer)
        equation2 = [str(answer)]
        dxs = 1
      case 'del':
        equation.remove(equation[-1])
        equation2.remove(equation[-1])
    clear()
  except:
    print('Error');clear()

Honestly i was just experimenting with match/case this took me 20 mins
what are your thoughts? Just ignore the unnecessary imports i do that all the time because yes i am lazy i just copy and paste whatever i need and dont need

2 Likes

why T_T this hurts so much I’ll fix it

from math import sqrt
from time import sleep
from colorama import Fore
from colorama import Style
# faster than os.system('clear')
from replit import clear


def factorial(n):
  if n == 0:
    return 1
  else:
    return n * factorial(n - 1)


def enter_to_continue():
  print(f'{Style.BRIGHT}|{Fore.BLUE}Enter{Fore.WHITE}| to continue{Style.NORMAL}')
  input()


equation = []
dxs = 0
answer = 0
equation2 = []

while True:
  try:
    print(f'{Style.BRIGHT}---------------------------------------------------------------------------------------------')
    print('                             Calculator.exe                                                  ')
    print('---------------------------------------------------------------------------------------------')
    if dxs == 1:
      print(f'Equation: {"".join(equation)} = {"".join(equation2)}                                                                       ')
      dxs = 0
      answer = 0
      equation = []
      equation2 = []
    else:
      print(f'Equation: {"".join(equation)}                                                                      ')
    print('---------------------------------------------------------------------------------------------')
    print('Input the number in blue to choose the numbers')
    print('---------------------------------------------------------------------------------------------')
    print(f'     [{Fore.BLUE}1{Fore.WHITE}] 1     [{Fore.BLUE}2{Fore.WHITE}] 2     [{Fore.BLUE}1{Fore.WHITE}] 3     [{Fore.BLUE}4{Fore.WHITE}] 4     [{Fore.BLUE}5{Fore.WHITE}] 5     [{Fore.BLUE}6{Fore.WHITE}] 6     [{Fore.BLUE}7{Fore.WHITE}] 7     [{Fore.BLUE}8{Fore.WHITE}] 8     [{Fore.BLUE}9{Fore.WHITE}] 9')
    print('')
    print(f'     [{Fore.BLUE}+{Fore.WHITE}] +     [{Fore.BLUE}-{Fore.WHITE}] -     [{Fore.BLUE}/{Fore.WHITE}] /     [{Fore.BLUE}*{Fore.WHITE}] *    [{Fore.BLUE}sqrt{Fore.WHITE}] sqrt(must be with a number)     [{Fore.BLUE}del{Fore.WHITE}] del     [{Fore.BLUE}({Fore.WHITE}] (     [{Fore.BLUE}){Fore.WHITE}] )  [{Fore.BLUE}={Fore.WHITE}] =')
    equ = input('> ')
    match equ:
      case '1':
        equation.append('1')
        equation2.append('1')
      case '2':
        equation.append('2')
        equation2.append('2')
      case '3':
        equation.append('3')
        equation2.append('3')
      case '4':
        equation.append('4')
        equation2.append('4')
      case '5':
        equation.append('5')
        equation2.append('5')
      case '6':
        equation.append('6')
        equation2.append('6')
      case '7':
        equation.append('7')
        equation2.append('7')
      case '8':
        equation.append('8')
        equation2.append('8')
      case '9':
        equation.append('9')
        equation2.append('9')
      case '+':
        equation.append('+')
        equation2.append('+')
      case '-':
        equation.append('-')
        equation2.append('-')
      case '/':
        equation.append('÷')
        equation2.append('/')
      case '*':
        equation.append('x')
        equation2.append('*')
      case 'sqrt':
        equation.append('sqrt(')
        equation2.append('sqrt(')
      case ')':
        equation.append(')')
        equation2.append(')')
      case '(':
        equation.append('(')
        equation2.append('(')
      case '=':
        answer = ''.join(equation2)
        answer = eval(answer)
        equation2 = [str(answer)]
        dxs = 1
      case 'del':
        equation.remove(equation[-1])
        equation2.remove(equation[-1])
    clear()
  except:
    print(f'{Fore.RED}Error{Fore.WHITE}')
    sleep(1)
    clear()

To be honest u dont need to fix it.

THIS HURTS SO MUCH il fix it uwu!

#uwu! you technically said from math import sqrt
#but here it says 'sqt'

Oh, I didn’t read the code. That’s why I was getting an error lol.