forked from MrBaxren/BaxrenCalculatorCLI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaxrenCalculatorCLI.py
97 lines (90 loc) · 3.56 KB
/
BaxrenCalculatorCLI.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import math
import sys
def hesap_islemleri(işlem):
if '+' in işlem:
sayılar = işlem.split('+')
return float(sayılar[0]) + float(sayılar[1])
elif '-' in işlem:
sayılar = işlem.split('-')
return float(sayılar[0]) - float(sayılar[1])
elif 'x' in işlem:
sayılar = işlem.split('x')
return float(sayılar[0]) * float(sayılar[1])
elif '/' in işlem:
sayılar = işlem.split('/')
if float(sayılar[1]) != 0:
return float(sayılar[0]) / float(sayılar[1])
else:
raise ZeroDivisionError("Sıfıra bölme hatası!")
elif '%' in işlem:
sayılar = işlem.split('%')
return (float(sayılar[0]) / 100) * float(sayılar[1])
elif 'sin' in işlem:
sayı = float(işlem.replace('sin', ''))
return math.sin(math.radians(sayı))
elif 'cos' in işlem:
sayı = float(işlem.replace('cos', ''))
return math.cos(math.radians(sayı))
elif 'tan' in işlem:
sayı = float(işlem.replace('tan', ''))
return math.tan(math.radians(sayı))
elif 'sec' in işlem:
sayı = float(işlem.replace('sec', ''))
return 1 / math.cos(math.radians(sayı))
elif 'csc' in işlem:
sayı = float(işlem.replace('csc', ''))
return 1 / math.sin(math.radians(sayı))
elif 'cot' in işlem:
sayı = float(işlem.replace('cot', ''))
return 1 / math.tan(math.radians(sayı))
elif 'sqrt' in işlem:
sayı = float(işlem.replace('sqrt', ''))
return math.sqrt(sayı)
elif 'log' in işlem:
sayı = float(işlem.replace('log', ''))
return math.log(sayı)
elif 'exp' in işlem:
sayı = float(işlem.replace('exp', ''))
return math.exp(sayı)
elif 'perm' in işlem:
sayılar = işlem.split('perm')
n = int(sayılar[0])
r = int(sayılar[1])
return math.factorial(n) / math.factorial(n-r)
elif 'comb' in işlem:
sayılar = işlem.split('comb')
n = int(sayılar[0])
r = int(sayılar[1])
return math.factorial(n) / (math.factorial(r) * math.factorial(n-r))
elif 'mod' in işlem:
sayılar = işlem.split('mod')
return int(sayılar[0]) % int(sayılar[1])
elif 'fact' in işlem:
sayı = int(işlem.replace('fact', ''))
return math.factorial(sayı)
else:
raise ValueError("Geçersiz işlem!")
def hesap_makinesi():
print("BaxrenCalculator'a hoş geldiniz")
=======
print("Yapılabilir işlemler: Toplama: 2+2, Çıkarma: 5-3, Çarpma: 4x5, Bölme: 10/2, Yüzde: 20%25, Sinüs: sin(30), Cosinüs: cos(30), Tanjant: tan(30), Sekant: sec(30), Kosekant: csc(30), Cotanjant: cot(30), Karekök: sqrt(4), Logaritma: log(10), Üstel: exp(2), Permütasyon: 5perm3, Kombinasyon: 5comb3, Modül: 10mod3, Faktöriyel: 5fact. Çıkmak için 'q', verileri sıfırlamak için 'c' yazabilirsiniz.")
>>>>>>> main
while True:
try:
işlem = input("İşlemi giriniz:\n")
if işlem.lower().strip() == 'q':
print("Çıkış yapılıyor...")
sys.exit()
elif işlem.lower().strip() == 'c':
print("Veriler sıfırlandı.")
continue
try:
sonuç = hesap_islemleri(işlem)
print(f"{işlem} = {sonuç}")
except Exception as e:
print(f"Hata: {e}")
except KeyboardInterrupt:
print('Çıkış yapılıyor.')
sys.exit()
if __name__ == "__main__":
hesap_makinesi()