hassan773 commited on
Commit
b1886b7
·
verified ·
1 Parent(s): 3814004

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -32
app.py CHANGED
@@ -4,56 +4,51 @@ import math
4
  st.set_page_config(page_title="Calculator", layout="centered")
5
 
6
  # ---------- STATE ----------
7
- if "expression" not in st.session_state:
8
- st.session_state.expression = ""
9
 
10
  def press(key):
11
  if key == "C":
12
- st.session_state.expression = ""
13
-
14
  elif key == "=":
15
  try:
16
- st.session_state.expression = str(
17
- eval(st.session_state.expression)
18
- )
19
  except:
20
- st.session_state.expression = "Error"
21
-
22
  elif key == "√":
23
  try:
24
- st.session_state.expression = str(
25
- math.sqrt(float(st.session_state.expression))
26
- )
27
  except:
28
- st.session_state.expression = "Error"
29
-
30
  elif key == "x²":
31
  try:
32
- st.session_state.expression = str(
33
- float(st.session_state.expression) ** 2
34
- )
35
  except:
36
- st.session_state.expression = "Error"
37
-
38
  elif key == "log":
39
  try:
40
- st.session_state.expression = str(
41
- math.log10(float(st.session_state.expression))
42
- )
43
  except:
44
- st.session_state.expression = "Error"
45
-
46
  else:
47
- st.session_state.expression += key
48
-
49
- st.rerun()
50
 
51
  # ---------- DISPLAY ----------
52
- st.subheader("🧮 Calculator")
53
- st.text_input(
54
- "Display",
55
- value=st.session_state.expression or "0",
56
- disabled=True
 
 
 
 
 
 
 
 
 
 
57
  )
58
 
59
  # ---------- BUTTON GRID ----------
@@ -70,3 +65,4 @@ for row in layout:
70
  for i, key in enumerate(row):
71
  if cols[i].button(key, use_container_width=True):
72
  press(key)
 
 
4
  st.set_page_config(page_title="Calculator", layout="centered")
5
 
6
  # ---------- STATE ----------
7
+ if "expr" not in st.session_state:
8
+ st.session_state.expr = ""
9
 
10
  def press(key):
11
  if key == "C":
12
+ st.session_state.expr = ""
 
13
  elif key == "=":
14
  try:
15
+ st.session_state.expr = str(eval(st.session_state.expr))
 
 
16
  except:
17
+ st.session_state.expr = "Error"
 
18
  elif key == "√":
19
  try:
20
+ st.session_state.expr = str(math.sqrt(float(st.session_state.expr)))
 
 
21
  except:
22
+ st.session_state.expr = "Error"
 
23
  elif key == "x²":
24
  try:
25
+ st.session_state.expr = str(float(st.session_state.expr) ** 2)
 
 
26
  except:
27
+ st.session_state.expr = "Error"
 
28
  elif key == "log":
29
  try:
30
+ st.session_state.expr = str(math.log10(float(st.session_state.expr)))
 
 
31
  except:
32
+ st.session_state.expr = "Error"
 
33
  else:
34
+ st.session_state.expr += key
 
 
35
 
36
  # ---------- DISPLAY ----------
37
+ st.markdown(
38
+ f"""
39
+ <div style="
40
+ background:#111;
41
+ color:white;
42
+ padding:18px;
43
+ font-size:30px;
44
+ border-radius:12px;
45
+ text-align:right;
46
+ margin-bottom:12px;
47
+ ">
48
+ {st.session_state.expr or "0"}
49
+ </div>
50
+ """,
51
+ unsafe_allow_html=True
52
  )
53
 
54
  # ---------- BUTTON GRID ----------
 
65
  for i, key in enumerate(row):
66
  if cols[i].button(key, use_container_width=True):
67
  press(key)
68
+ st.rerun()