BorleLib 0.1.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
BorleLib/__init__.py ADDED
@@ -0,0 +1 @@
1
+ from mia_libreria import *
@@ -0,0 +1,190 @@
1
+ import math
2
+ import tkinter as tk
3
+ from tkinter import messagebox
4
+
5
+ # Le tue funzioni matematiche (utilizzabili anche per logica esterna)
6
+ def somma(a, b):
7
+ return a + b
8
+
9
+ def sottrazione(a, b):
10
+ return a - b
11
+
12
+ def moltiplicazione(a, b):
13
+ return a * b
14
+
15
+ def divisione(a, b):
16
+ return a / b
17
+
18
+ def radice(a):
19
+ return math.sqrt(a)
20
+
21
+ def elevamento(a, b):
22
+ return pow(a, b)
23
+
24
+ def CalcTk():
25
+ # Funzione per aggiornare l'espressione nello schermo
26
+ # Nota il "valore=valore": serve a bloccare la variabile nel lambda evitando il bug dei bottoni identici
27
+ def click_bottone(valore):
28
+ testo_attuale = schermo.get()
29
+ schermo.delete(0, tk.END)
30
+ schermo.insert(tk.END, testo_attuale + str(valore))
31
+
32
+ # Funzione per cancellare tutto (All Clear)
33
+ def cancella_tutto():
34
+ schermo.delete(0, tk.END)
35
+
36
+ # Funzione per cancellare l'ultimo carattere inserito (Backspace)
37
+ def cancella_ultimo():
38
+ testo_attuale = schermo.get()
39
+ schermo.delete(0, tk.END)
40
+ schermo.insert(tk.END, testo_attuale[:-1])
41
+
42
+ # Funzione per calcolare il risultato integrando le tue funzioni
43
+ def calcola():
44
+ try:
45
+ espressione = schermo.get()
46
+
47
+ # Sostituiamo i simboli visivi con gli operatori e le funzioni compatibili con eval()
48
+ # Mappiamo '^' a '**' e gestiamo la radice quadrata '√' tramite la tua funzione radice()
49
+ espressione_python = espressione.replace('×', '*').replace('÷', '/')
50
+ espressione_python = espressione_python.replace('^', '**')
51
+
52
+ # Se è presente una radice (es. √9), la trasforma in radice(9) per eval
53
+ if '√' in espressione_python:
54
+ espressione_python = espressione_python.replace('√', 'radice(') + ')'
55
+
56
+ risultato = eval(espressione_python)
57
+
58
+ # Se il risultato è un numero intero, mostralo senza virgola
59
+ if isinstance(risultato, float) and risultato.is_integer():
60
+ risultato = int(risultato)
61
+
62
+ schermo.delete(0, tk.END)
63
+ schermo.insert(tk.END, str(risultato))
64
+ except ZeroDivisionError:
65
+ messagebox.showerror("Errore", "Impossibile dividere per zero")
66
+ cancella_tutto()
67
+ except Exception:
68
+ messagebox.showerror("Errore", "Espressione non valida")
69
+ cancella_tutto()
70
+
71
+ # Creazione della finestra principale
72
+ finestra = tk.Tk()
73
+ finestra.title("Calcolatrice")
74
+ finestra.geometry("380x550") # Leggermente allargata per fare spazio ai nuovi tasti
75
+ finestra.configure(bg="#171c2c")
76
+ finestra.resizable(False, False)
77
+
78
+ # Schermo di inserimento/output
79
+ schermo = tk.Entry(
80
+ finestra,
81
+ font=("Helvetica", 24),
82
+ bd=0,
83
+ bg="#1e2436",
84
+ fg="#ffffff",
85
+ justify="right"
86
+ )
87
+ schermo.pack(fill="both", ipadx=8, ipady=20, padx=15, pady=20)
88
+
89
+ # Contenitore per i bottoni (Griglia)
90
+ griglia_bottoni = tk.Frame(finestra, bg="#171c2c")
91
+ griglia_bottoni.pack(fill="both", expand=True, padx=15, pady=15)
92
+
93
+ # Configurazione della griglia (ora abbiamo 6 righe per includere √ e ^)
94
+ for i in range(6):
95
+ griglia_bottoni.rowconfigure(i, weight=1)
96
+ for i in range(4):
97
+ griglia_bottoni.columnconfigure(i, weight=1)
98
+
99
+ # Definizione dei bottoni aggiornata con Radice (√) ed Elevamento (^)
100
+ bottoni = [
101
+ ('AC', 0, 0, 'funzione'), ('C', 0, 1, 'funzione'), ('^', 0, 2, 'operatore'), ('÷', 0, 3, 'operatore'),
102
+ ('√', 1, 0, 'operatore'), ('%', 1, 1, 'funzione'), ('(', 1, 2, 'funzione'), (')', 1, 3, 'funzione'),
103
+ ('7', 2, 0, 'numero'), ('8', 2, 1, 'numero'), ('9', 2, 2, 'numero'), ('×', 2, 3, 'operatore'),
104
+ ('4', 3, 0, 'numero'), ('5', 3, 1, 'numero'), ('6', 3, 2, 'numero'), ('-', 3, 3, 'operatore'),
105
+ ('1', 4, 0, 'numero'), ('2', 4, 1, 'numero'), ('3', 4, 2, 'numero'), ('+', 4, 3, 'operatore'),
106
+ ('0', 5, 0, 'numero'), ('.', 5, 1, 'numero'), ('=', 5, 2, 'uguale')
107
+ ]
108
+
109
+ colori = {
110
+ 'numero': {'bg': '#2d3250', 'fg': '#ffffff'},
111
+ 'operatore': {'bg': '#ff9f43', 'fg': '#ffffff'},
112
+ 'funzione': {'bg': '#4d547d', 'fg': '#ffffff'},
113
+ 'uguale': {'bg': '#10ac84', 'fg': '#ffffff'}
114
+ }
115
+
116
+ # Creazione e posizionamento dei bottoni nella griglia
117
+ for testo, riga, colonna, tipo in bottoni:
118
+ if testo == '=':
119
+ comando = calcola
120
+ elif testo == 'AC':
121
+ comando = cancella_tutto
122
+ elif testo == 'C':
123
+ comando = cancella_ultimo
124
+ else:
125
+ # FIX IMPORTANTE: inserendo "t=testo", Python salva il valore corretto per ogni singolo bottone
126
+ comando = lambda t=testo: click_bottone(t)
127
+
128
+ colspan = 2 if testo == '=' else 1
129
+
130
+ btn = tk.Button(
131
+ griglia_bottoni,
132
+ text=testo,
133
+ font=("Helvetica", 14, "bold"),
134
+ bd=0,
135
+ bg=colori[tipo]['bg'],
136
+ fg=colori[tipo]['fg'],
137
+ activebackground=colori[tipo]['bg'],
138
+ command=comando
139
+ )
140
+ btn.grid(row=riga, column=colonna, columnspan=colspan, sticky="nsew", padx=4, pady=4)
141
+
142
+ finestra.mainloop()
143
+
144
+ import turtle
145
+
146
+ import turtle
147
+
148
+ def draw(forma):
149
+ # Trasforma la scritta in minuscolo per evitare errori con le maiuscole
150
+ forma = forma.lower().strip()
151
+
152
+ # Inizializzazione della finestra e di Turtle
153
+ finestra = turtle.Screen()
154
+ finestra.title("Disegnatore Geometrico")
155
+ finestra.bgcolor("#171c2c")
156
+
157
+ t = turtle.Turtle()
158
+ t.speed(3)
159
+ t.pensize(4)
160
+
161
+ # Controllo del testo inserito
162
+ if forma == "triangolo":
163
+ t.pencolor("#ff9f43") # Arancione
164
+ for _ in range(3):
165
+ t.forward(150)
166
+ t.left(120)
167
+
168
+ elif forma == "quadrato":
169
+ t.pencolor("#10ac84") # Verde
170
+ for _ in range(4):
171
+ t.forward(150)
172
+ t.left(90)
173
+
174
+ elif forma == "esagono":
175
+ t.pencolor("#00d2d3") # Azzurro
176
+ for _ in range(6):
177
+ t.forward(100)
178
+ t.left(60)
179
+
180
+ elif forma == "ottagono":
181
+ t.pencolor("#9b59b6") # Viola
182
+ for _ in range(8):
183
+ t.forward(80)
184
+ t.left(45)
185
+
186
+ else:
187
+ print(f"Errore: la forma '{forma}' non è supportata.")
188
+
189
+ t.hideturtle()
190
+ finestra.exitonclick()
@@ -0,0 +1,46 @@
1
+ Metadata-Version: 2.4
2
+ Name: BorleLib
3
+ Version: 0.1.6
4
+ Summary: La mia libreria personalizzata
5
+ Author-email: Il Tuo Nome <tua.email@esempio.com>
6
+ Project-URL: Homepage, https://github.com
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+
13
+ # BorleLib 🚀
14
+
15
+ Una libreria Python semplice e potente per effettuare calcoli matematici senza errori di approssimazione.
16
+
17
+ ## ✨ Funzionalità
18
+ - Calcoli matematici precisi ed esatti.
19
+ - Gestione semplificata dei moduli.
20
+ - Integrazione nativa con i tipi di dati standard di Python.
21
+
22
+ ## 📦 Installazione
23
+
24
+ Puoi installare la libreria direttamente da PyPI usando `pip`:
25
+
26
+ ```bash
27
+ pip install BorleLib
28
+ ```
29
+
30
+ ## 🛠️ Come usarla
31
+
32
+ Ecco un esempio pratico di utilizzo del modulo `calcolatrice`:
33
+
34
+ ```python
35
+ import BorleLib
36
+
37
+ # Esempio di utilizzo delle funzioni della libreria
38
+ risultato = BorleLib.somma(5, 7)
39
+ print(f"Il risultato della somma è: {risultato}")
40
+ ```
41
+
42
+ ## 📝 Licenza
43
+ Questo progetto è distribuito sotto licenza **MIT**. Vedi il file `LICENSE` per maggiori dettagli.
44
+
45
+ ## 👤 Autore
46
+ - **Il Tuo Nome** - [Il tuo GitHub](https://github.com)
@@ -0,0 +1,6 @@
1
+ BorleLib/__init__.py,sha256=4ppiODNNd13nf0gY5IAqdNGRKntKRTPZYn1duwTw-h4,26
2
+ BorleLib/mia_libreria.py,sha256=hU0emROPBEKeZlzbF8lrWotFDZyNUAca1ZpzPAcG-r4,6634
3
+ borlelib-0.1.6.dist-info/METADATA,sha256=pKIlr6DqKBs39vStxdBMg5nIEToRiS4SnzHWkQw4q_s,1288
4
+ borlelib-0.1.6.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
5
+ borlelib-0.1.6.dist-info/top_level.txt,sha256=oEaVRIKLamZTOOy6bP78v6ZMw3ZB9W3GeFmR3g3UWC8,9
6
+ borlelib-0.1.6.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ BorleLib