elrahpy 0.1.5__tar.gz
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.
- elrahpy-0.1.5/PKG-INFO +647 -0
- elrahpy-0.1.5/README.md +624 -0
- elrahpy-0.1.5/char/__init__.py +0 -0
- elrahpy-0.1.5/char/mychar.py +95 -0
- elrahpy-0.1.5/char/mycryptography.py +49 -0
- elrahpy-0.1.5/char/mysequence.py +73 -0
- elrahpy-0.1.5/date/__init__.py +0 -0
- elrahpy-0.1.5/date/clock.py +29 -0
- elrahpy-0.1.5/elrahpy.egg-info/PKG-INFO +647 -0
- elrahpy-0.1.5/elrahpy.egg-info/SOURCES.txt +24 -0
- elrahpy-0.1.5/elrahpy.egg-info/dependency_links.txt +1 -0
- elrahpy-0.1.5/elrahpy.egg-info/requires.txt +3 -0
- elrahpy-0.1.5/elrahpy.egg-info/top_level.txt +6 -0
- elrahpy-0.1.5/files/__init__.py +0 -0
- elrahpy-0.1.5/files/myfiles.py +82 -0
- elrahpy-0.1.5/integer/__init__.py +0 -0
- elrahpy-0.1.5/integer/base_converter.py +21 -0
- elrahpy-0.1.5/integer/math_primes.py +57 -0
- elrahpy-0.1.5/integer/math_utils.py +20 -0
- elrahpy-0.1.5/setup.cfg +4 -0
- elrahpy-0.1.5/setup.py +20 -0
- elrahpy-0.1.5/turtle/__init__.py +0 -0
- elrahpy-0.1.5/turtle/geometric_shape.py +46 -0
- elrahpy-0.1.5/turtle/particular_shape.py +18 -0
- elrahpy-0.1.5/types/__init__.py +0 -0
- elrahpy-0.1.5/types/landmark.py +74 -0
elrahpy-0.1.5/PKG-INFO
ADDED
|
@@ -0,0 +1,647 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: elrahpy
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: Package pour renforcer mes compétences, améliorer ma productivité et partager mon expertise avec la communauté
|
|
5
|
+
Home-page: https://github.com/Harlequelrah/Library-ElrahPy
|
|
6
|
+
Author: Harlequelrah
|
|
7
|
+
Author-email: maximeatsoudegbovi@example.com
|
|
8
|
+
License: LGPL-3.0-only
|
|
9
|
+
Requires-Python: >=3.10
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
Requires-Dist: numpy>=1.18.0
|
|
12
|
+
Requires-Dist: turtle
|
|
13
|
+
Requires-Dist: python-dateutil
|
|
14
|
+
Dynamic: author
|
|
15
|
+
Dynamic: author-email
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: home-page
|
|
19
|
+
Dynamic: license
|
|
20
|
+
Dynamic: requires-dist
|
|
21
|
+
Dynamic: requires-python
|
|
22
|
+
Dynamic: summary
|
|
23
|
+
|
|
24
|
+
# Description
|
|
25
|
+
|
|
26
|
+
Passionné par la programmation et le développement en Python, je crée une bibliothèque personnalisée pour renforcer mes compétences, améliorer ma productivité et partager mon expertise avec la communauté.
|
|
27
|
+
|
|
28
|
+
# Installation
|
|
29
|
+
|
|
30
|
+
- **Avec GitHub :**
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
git clone https://github.com/Harlequelrah/Library-harlequelrah_py
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- **Avec pip :**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install harlequelrah_py
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
# Documentation
|
|
43
|
+
|
|
44
|
+
Ce package contient plusieurs modules utiles pour divers calculs et manipulations de données. Voici un aperçu de leurs fonctionnalités.
|
|
45
|
+
|
|
46
|
+
## Module integer
|
|
47
|
+
|
|
48
|
+
### 1. Sous Module `base_converter`
|
|
49
|
+
|
|
50
|
+
Le module `base_converter` contient des fonctions pour effectuer des conversions de base numérique.
|
|
51
|
+
|
|
52
|
+
- **`binary(x)`** : Convertit un nombre entier en une chaîne de caractères représentant sa valeur en binaire sans le préfixe `0b`.
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from harlequelrah_py.base_converter import binary
|
|
56
|
+
|
|
57
|
+
result = binary(10) # Résultat : 1010
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- **Paramètre :**
|
|
61
|
+
- `x` (int) : Le nombre entier à convertir en binaire.
|
|
62
|
+
- **Retourne :**
|
|
63
|
+
- `int` : La représentation binaire sans le préfixe `0b`.
|
|
64
|
+
|
|
65
|
+
- **`base_format(n, f)`** : Convertit un nombre entier `n` en fonction de la base spécifiée par `f`.
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
from harlequelrah_py.base_converter import base_format
|
|
69
|
+
|
|
70
|
+
result_bin = base_format(10, "b") # Résultat : "1010"
|
|
71
|
+
result_hex = base_format(10, "h") # Résultat : "a"
|
|
72
|
+
result_dec = base_format(10, "d") # Résultat : "10"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- **Paramètres :**
|
|
76
|
+
- `n` (int) : Le nombre entier à convertir.
|
|
77
|
+
- `f` (str) : Le format de base à utiliser pour la conversion. Peut prendre les valeurs suivantes :
|
|
78
|
+
- `"b"` : Convertit `n` en binaire.
|
|
79
|
+
- `"h"` : Convertit `n` en hexadécimal.
|
|
80
|
+
- `"d"` : Convertit `n` en décimal.
|
|
81
|
+
|
|
82
|
+
### 2. Sous Module `math_primes`
|
|
83
|
+
|
|
84
|
+
Le module `math_primes` contient des fonctions pour effectuer des opérations liées aux nombres premiers et aux diviseurs.
|
|
85
|
+
|
|
86
|
+
- **`prem(nbr)`** : Vérifie si un nombre est premier.
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
from harlequelrah_py.math_primes import prem
|
|
90
|
+
|
|
91
|
+
result = prem(7) # Résultat : True
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
- **Paramètre :**
|
|
95
|
+
- `nbr` (int) : Le nombre entier à vérifier.
|
|
96
|
+
- **Retourne :**
|
|
97
|
+
- `bool` : `True` si `nbr` est premier, sinon `False`.
|
|
98
|
+
|
|
99
|
+
- **`prd_fct(nbr)`** : Retourne un dictionnaire des facteurs premiers d'un nombre.
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
from harlequelrah_py.math_primes import prd_fct
|
|
103
|
+
|
|
104
|
+
result = prd_fct(18) # Résultat : {2: 1, 3: 2}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
- **Paramètre :**
|
|
108
|
+
- `nbr` (int) : Le nombre entier à factoriser.
|
|
109
|
+
- **Retourne :**
|
|
110
|
+
- `dict` : Dictionnaire où les clés sont les facteurs premiers et les valeurs sont leurs puissances.
|
|
111
|
+
|
|
112
|
+
- **`nbr_div(nbr)`** : Calcule le nombre de diviseurs d'un nombre.
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
from harlequelrah_py.math_primes import nbr_div
|
|
116
|
+
|
|
117
|
+
result = nbr_div(36) # Résultat : 9
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
- **Paramètre :**
|
|
121
|
+
- `nbr` (int) : Le nombre entier à analyser.
|
|
122
|
+
- **Retourne :**
|
|
123
|
+
- `int` : Nombre total de diviseurs.
|
|
124
|
+
|
|
125
|
+
- **`list_div(nbr)`** : Retourne la liste des diviseurs d'un nombre.
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
from harlequelrah_py.math_primes import list_div
|
|
129
|
+
|
|
130
|
+
result = list_div(36) # Résultat : [1, 2, 3, 4, 6, 9, 12, 18, 36]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
- **Paramètre :**
|
|
134
|
+
- `nbr` (int) : Le nombre entier dont on veut la liste des diviseurs.
|
|
135
|
+
- **Retourne :**
|
|
136
|
+
- `list` : Liste des diviseurs triée en ordre croissant.
|
|
137
|
+
|
|
138
|
+
### 3. Sous Module `math_utils`
|
|
139
|
+
|
|
140
|
+
Le module `math_utils` contient des fonctions utilitaires mathématiques.
|
|
141
|
+
|
|
142
|
+
- **`fibonacci(n)`** : Génère la séquence de Fibonacci jusqu'à une limite donnée.
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
from harlequelrah_py.math_utils import fibonacci
|
|
146
|
+
|
|
147
|
+
result = fibonacci(10) # Résultat : [0, 1, 1, 2, 3, 5, 8]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- **Paramètre :**
|
|
151
|
+
- `n` (int) : La limite supérieure pour générer la séquence de Fibonacci.
|
|
152
|
+
- **Retourne :**
|
|
153
|
+
- `list` : Liste contenant la séquence de Fibonacci jusqu'à `n`.
|
|
154
|
+
|
|
155
|
+
- **`fct(n)`** : Calcule le factoriel d'un nombre.
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from harlequelrah_py.math_utils import fct
|
|
159
|
+
|
|
160
|
+
result = fct(5) # Résultat : 120
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- **Paramètre :**
|
|
164
|
+
- `n` (int) : Le nombre entier pour lequel on veut calculer le factoriel.
|
|
165
|
+
- **Retourne :**
|
|
166
|
+
- `int` : Le factoriel de `n`.
|
|
167
|
+
|
|
168
|
+
## Module date
|
|
169
|
+
|
|
170
|
+
### 1. Sous-module `clock`
|
|
171
|
+
|
|
172
|
+
Le sous-module `clock` contient des fonctions pour la gestion des dates et des heures.
|
|
173
|
+
|
|
174
|
+
- **is_bisectile(year)** : Renvoie `True` si c'est une année bissextile et `False` sinon.
|
|
175
|
+
|
|
176
|
+
```python
|
|
177
|
+
from harlequelrah_py.date.clock import is_bisectile
|
|
178
|
+
|
|
179
|
+
result = is_bisectile(2020) # Résultat : True
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- **Paramètre :**
|
|
183
|
+
- `year` (int) : L année pour laquelle on veut vérifier si elle est bisectile
|
|
184
|
+
-**Retourne:**
|
|
185
|
+
- `bool` : True si l'année est bissextile, sinon False.
|
|
186
|
+
|
|
187
|
+
- **interval(birthday_year, birthday_month, birthday_day, type=None) :** Renvoie un intervalle de temps d'une date à aujourd'hui.
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
from harlequelrah_py.date.clock import interval
|
|
191
|
+
|
|
192
|
+
result_years = interval(1990, 5, 15, "year") # Résultat : (nombre d'années depuis 1990-05-15)
|
|
193
|
+
result_months = interval(1990, 5, 15, "month") # Résultat : (nombre de mois depuis 1990-05-15)
|
|
194
|
+
result_days = interval(1990, 5, 15, "day") # Résultat : (nombre de jours depuis 1990-05-15)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
- **Paramètres :**
|
|
198
|
+
- `birthday_year` (int) : L'année de naissance.
|
|
199
|
+
- `birthday_month` (int) : Le mois de naissance.
|
|
200
|
+
- `birthday_day` (int) : Le jour de naissance.
|
|
201
|
+
- `type` (str, optionnel) : Le type d'intervalle à renvoyer. Peut prendre les valeurs suivantes :
|
|
202
|
+
- "year" ou "y" : Renvoie l'intervalle en années.
|
|
203
|
+
- "month" ou "m" : Renvoie l'intervalle en mois.
|
|
204
|
+
- "day" ou "d" : Renvoie l'intervalle en jours.
|
|
205
|
+
- **Retourne :**
|
|
206
|
+
- `int` ou `None` : Le nombre d'années, de mois ou de jours selon le type spécifié, ou None si le type n'est pas reconnu.
|
|
207
|
+
|
|
208
|
+
## Module files
|
|
209
|
+
|
|
210
|
+
### Sous-module myfiles
|
|
211
|
+
|
|
212
|
+
Le sous-module `myfiles` contient des fonctions pour gérer les opérations sur les fichiers.
|
|
213
|
+
|
|
214
|
+
- **recopie(ficher_source, ficher_destination, debit)** : Recopie le contenu d'un fichier source vers un fichier de destination en plusieurs blocs.
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
from harlequelrah_py.files.myfiles import recopie
|
|
218
|
+
|
|
219
|
+
recopie("source.txt", "destination.txt", 1024) # Copie le contenu de source.txt à destination.txt
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
- **Paramètres :**
|
|
223
|
+
- `ficher_source` (str) : Le chemin du fichier source à recopier.
|
|
224
|
+
- `ficher_destination` (str) : Le chemin du fichier de destination.
|
|
225
|
+
- `debit` (int) : Le nombre de caractère à recopier à chaque fois.
|
|
226
|
+
- **Retourne :**
|
|
227
|
+
- `None` : La fonction ne retourne rien.
|
|
228
|
+
|
|
229
|
+
- **filereset(file)** : Efface le contenu d'un fichier.
|
|
230
|
+
|
|
231
|
+
```python
|
|
232
|
+
from harlequelrah_py.files.myfiles import filereset
|
|
233
|
+
filereset("file.txt") # Efface le contenu de file.txt
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- **Paramètre :**
|
|
237
|
+
- `file` (str) : Le chemin du fichier dont le contenu doit être effacé.
|
|
238
|
+
- **Retourne :**
|
|
239
|
+
- `None` : La fonction ne retourne rien.
|
|
240
|
+
|
|
241
|
+
- **rline(file, line)** : Lit une ligne spécifique d'un fichier (le premier indice est 1).
|
|
242
|
+
|
|
243
|
+
```python
|
|
244
|
+
from harlequelrah_py.files.myfiles import rline
|
|
245
|
+
rline("file.txt", 3) # Lit la 3ème ligne de file.txt
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
- **Paramètre :**
|
|
249
|
+
- `file` (str) : Le chemin du fichier à lire.
|
|
250
|
+
- `line` (int) : Le numéro de la ligne à lire.
|
|
251
|
+
- **Retourne :**
|
|
252
|
+
- `None` : La fonction ne retourne rien.
|
|
253
|
+
|
|
254
|
+
-**delfile(file, element)** : Efface toutes les lignes d'un fichier commençant par un élément en particulier.
|
|
255
|
+
|
|
256
|
+
```python
|
|
257
|
+
from harlequelrah_py.files.myfiles import delfile
|
|
258
|
+
delfile("file.txt", "#") # Efface toutes les lignes de file.txt qui commencent par "#"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
- **Paramètre :**
|
|
262
|
+
- `file` (str) : Le chemin du fichier à lire.
|
|
263
|
+
- `element` (str) : L'élément par lequel les lignes à effacer commencent.
|
|
264
|
+
- **Retourne :**
|
|
265
|
+
- `None` : La fonction ne retourne rien.
|
|
266
|
+
|
|
267
|
+
- **repline(file, line, line_content)** : Remplace le contenu d'une ligne à une position précise.
|
|
268
|
+
|
|
269
|
+
```python
|
|
270
|
+
from harlequelrah_py.files.myfiles import repline
|
|
271
|
+
repline("file.txt", 1, "Nouvelle ligne 1") # Remplace la 1ère ligne de file.txt par "Nouvelle ligne 1"
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
- **Paramètre :**
|
|
275
|
+
- `file` (str) : Le chemin du fichier à lire.
|
|
276
|
+
- `line` (int) : Le numéro de la ligne à remplacer.
|
|
277
|
+
- `line_content` (str) : Le nouveau contenu de la ligne.
|
|
278
|
+
- **Retourne :**
|
|
279
|
+
- `None` : La fonction ne retourne rien.
|
|
280
|
+
|
|
281
|
+
- **insline(file, line, line_content)** : Insère une ligne à une position précise.
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
from harlequelrah_py.files.myfiles import insline
|
|
285
|
+
insline("file.txt", 2, "Ligne insérée") # Insère "Ligne insérée" à la 2ème position de file.txt
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
- **Paramètre :**
|
|
289
|
+
- `file` (str) : Le chemin du fichier à lire.
|
|
290
|
+
- `line` (int) : Le numéro de la ligne à inserer.
|
|
291
|
+
- `line_content` (str) : Le nouveau contenu de la ligne.
|
|
292
|
+
- **Retourne :**
|
|
293
|
+
- `None` : La fonction ne retourne rien.
|
|
294
|
+
|
|
295
|
+
## Module `turtle`
|
|
296
|
+
|
|
297
|
+
#### Sous-module `geometric_shape`
|
|
298
|
+
|
|
299
|
+
Le sous-module `geometric_shape` permet de dessiner des formes géométrique
|
|
300
|
+
|
|
301
|
+
**figure** : Tracer une forme géométrique avec des couleurs différentes.
|
|
302
|
+
|
|
303
|
+
Fonction : `figure(nbr_figure, rayon, nbr_cote=None, position=[], couleur=[], orientation=0)`
|
|
304
|
+
|
|
305
|
+
Exemple d'utilisation :
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
from harlequelrah_py.geometric_shape import figure
|
|
309
|
+
|
|
310
|
+
figure(
|
|
311
|
+
nbr_figure=3,
|
|
312
|
+
rayon=50,
|
|
313
|
+
nbr_cote=4,
|
|
314
|
+
position=[(0, 0), (100, 100), (200, 0)],
|
|
315
|
+
couleur=["red", "blue", "green"],
|
|
316
|
+
orientation=0
|
|
317
|
+
)
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
- **Paramètres** :
|
|
321
|
+
- `nbr_figure` : `int` - Nombre de figures à tracer
|
|
322
|
+
- `rayon` : `int` - Rayon de chaque figure
|
|
323
|
+
- `nbr_cote` : `Optional[int]` - Nombre de côtés (None pour un cercle)
|
|
324
|
+
- `position` : `List[Tuple[int, int]]` - Liste des positions de chaque figure
|
|
325
|
+
- `couleur` : `List[str]` - Liste des couleurs pour chaque figure
|
|
326
|
+
- `orientation` : `int` - Orientation initiale des figures
|
|
327
|
+
- **Retour** : `None`
|
|
328
|
+
|
|
329
|
+
**rectangle** : Dessiner un rectangle.
|
|
330
|
+
|
|
331
|
+
Fonction : `rectangle(L, l, inside_color="white", line_color="black")`
|
|
332
|
+
|
|
333
|
+
Exemple d'utilisation :
|
|
334
|
+
|
|
335
|
+
```python
|
|
336
|
+
from harlequelrah_py.geometric_shape import rectangle
|
|
337
|
+
|
|
338
|
+
rectangle(
|
|
339
|
+
L=100,
|
|
340
|
+
l=50,
|
|
341
|
+
inside_color="yellow",
|
|
342
|
+
line_color="black"
|
|
343
|
+
)
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
- **Paramètres** :
|
|
347
|
+
- `L` : `int` - Longueur du rectangle
|
|
348
|
+
- `l` : `int` - Largeur du rectangle
|
|
349
|
+
- `inside_color` : `str` - Couleur de remplissage
|
|
350
|
+
- `line_color` : `str` - Couleur du contour
|
|
351
|
+
- **Retour** : `None`
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
#### Sous-module `particular_shape`
|
|
355
|
+
Le sous-module `particular_shape` permet de dessiner des formes particulières
|
|
356
|
+
|
|
357
|
+
**heart** : Dessiner un coeur
|
|
358
|
+
|
|
359
|
+
Fonction : `heart(inside_color="white", line_color="black", background_color="white")`
|
|
360
|
+
|
|
361
|
+
Exemple d'utilisation :
|
|
362
|
+
|
|
363
|
+
```python
|
|
364
|
+
from harlequelrah_py.particular_shape import heart
|
|
365
|
+
|
|
366
|
+
heart(
|
|
367
|
+
inside_color="red",
|
|
368
|
+
line_color="black",
|
|
369
|
+
background_color="pink"
|
|
370
|
+
)
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
- **Paramètres** :
|
|
374
|
+
- `inside_color` : `str` - Couleur de remplissage du cœur
|
|
375
|
+
- `line_color` : `str` - Couleur du contour
|
|
376
|
+
- `background_color` : `str` - Couleur de fond
|
|
377
|
+
- **Retour** : `None`
|
|
378
|
+
|
|
379
|
+
## Module `string`
|
|
380
|
+
#### Sous-Module `mychar`
|
|
381
|
+
Le sous-module `mychar` permet de faire des opérations spécifiques sur les chaines de caractère
|
|
382
|
+
|
|
383
|
+
**voy** : verifie si le caractère est une voyelle et en renvoie un boolean
|
|
384
|
+
|
|
385
|
+
```python
|
|
386
|
+
from harlequelrah_py.string.mychar import voy
|
|
387
|
+
voy('a') # Renvoie True
|
|
388
|
+
voy('b') # Renvoie False
|
|
389
|
+
```
|
|
390
|
+
- **Paramètre** :
|
|
391
|
+
- `x` (`string`) : le caractère à verifier.
|
|
392
|
+
- **Retourne** :
|
|
393
|
+
- `boolean` : `True` si x est une voyelle et `False` sinon.
|
|
394
|
+
|
|
395
|
+
**nbr_voy** :Renvoie le nombre de voyelles dans une chaîne de caractères.
|
|
396
|
+
|
|
397
|
+
```python
|
|
398
|
+
from harlequelrah_py.string.mychar import nbr_voy
|
|
399
|
+
nbr_voy("example") # Renvoie 3 (pour 'e', 'a' et 'e')
|
|
400
|
+
```
|
|
401
|
+
- **Paramètre** :
|
|
402
|
+
- `y` (`string`) : La chaîne de caractères à analyser.
|
|
403
|
+
- **Retourne** :
|
|
404
|
+
- `int` : Le nombre de voyelles présentes dans y.
|
|
405
|
+
|
|
406
|
+
**inter_char** : Vérifie si un caractère donné est compris entre deux autres caractères (selon l'ordre ASCII).
|
|
407
|
+
|
|
408
|
+
```python
|
|
409
|
+
from harlequelrah_py.string.mychar import inter_char
|
|
410
|
+
inter_char('m', 'a', 'z') # Renvoie True
|
|
411
|
+
inter_char('A', 'a', 'z') # Renvoie False
|
|
412
|
+
```
|
|
413
|
+
- **Paramètre** :
|
|
414
|
+
- `char` (`string`) : Le caractère à verifier.
|
|
415
|
+
- `char_1` (`string`) : La borne inférieure.
|
|
416
|
+
- `char_2` (`string`) : La borne supérieure.
|
|
417
|
+
- **Retourne** :
|
|
418
|
+
- `boolean` : `True` si `char` est entre `char_1` et `char_2`, `False` sinon.
|
|
419
|
+
|
|
420
|
+
**minusmaj** : Détecte si un caractère est en minuscule, en majuscule, ou aucun des deux.
|
|
421
|
+
|
|
422
|
+
```python
|
|
423
|
+
from harlequelrah_py.string.mychar import minusmaj
|
|
424
|
+
minusmaj('a') # Renvoie True
|
|
425
|
+
minusmaj('A') # Renvoie False
|
|
426
|
+
minusmaj('1') # Renvoie None
|
|
427
|
+
```
|
|
428
|
+
- **Paramètre** :
|
|
429
|
+
- `char` (`string`) : Le caractère à verifier.
|
|
430
|
+
- **Retourne** :
|
|
431
|
+
- `boolean` : `True` si `char` est entre minuscule , `False` si char est en majuscule et `None` sinon aucun des deux.
|
|
432
|
+
|
|
433
|
+
#### Sous-Module `mysequence`
|
|
434
|
+
Le sous-module `mysequence` permet de faire des opérations spécifiques sur les chaines de caractère
|
|
435
|
+
|
|
436
|
+
**all_index** : Renvoie une liste contenant les indices de toutes les occurrences d’un élément dans une chaîne de caractères ou une liste.
|
|
437
|
+
|
|
438
|
+
```python
|
|
439
|
+
from harlequelrah_py.string.mysequence import all_index
|
|
440
|
+
all_index("banana", "a") # Renvoie [1, 3, 5]
|
|
441
|
+
```
|
|
442
|
+
- **Paramètre** :
|
|
443
|
+
- `char` (`string` ou `list`) : La chaîne de caractères ou la liste dans laquelle chercher.
|
|
444
|
+
- `element` (`string` ou `int`) : L' élément à rechercher .
|
|
445
|
+
- **Retourne** :
|
|
446
|
+
- `list` : Une liste d’indices où element apparaît dans phrase_1.
|
|
447
|
+
|
|
448
|
+
**supp_all** : Supprime toutes les occurrences d’un élément donné dans une liste ou une chaîne de caractères.
|
|
449
|
+
|
|
450
|
+
```python
|
|
451
|
+
from harlequelrah_py.string.mysequence import supp_all
|
|
452
|
+
supp_all([1, 2, 3, 2, 4], 2) # Renvoie [1, 3, 4]
|
|
453
|
+
```
|
|
454
|
+
- **Paramètre** :
|
|
455
|
+
- `char` (`string` ou `list`) : La liste ou chaîne à modifier.
|
|
456
|
+
- `element` (`string` ou `int`) : L' élément à rechercher .
|
|
457
|
+
- **Retourne** :
|
|
458
|
+
- `list` : La liste ou chaîne de caractères sans les occurrences de element.
|
|
459
|
+
|
|
460
|
+
**ispalindrome**: Vérifie si une chaîne ou une liste est un palindrome.
|
|
461
|
+
|
|
462
|
+
```python
|
|
463
|
+
from harlequelrah_py.string.mysequence import pal
|
|
464
|
+
pal("radar") # Renvoie True
|
|
465
|
+
pal("hello") # Renvoie False
|
|
466
|
+
```
|
|
467
|
+
- **Paramètre** :
|
|
468
|
+
- `seq` (`string` ou `list`) : La liste ou chaîne à verifier.
|
|
469
|
+
- **Retourne** :
|
|
470
|
+
- `boolean` : `True` si `seq` est un palindrome, `False` sinon.
|
|
471
|
+
|
|
472
|
+
**nbr_element** :Renvoie le nombre de chaque occurrences de chaque element dans une chaîne de caractères ou une liste.
|
|
473
|
+
|
|
474
|
+
```python
|
|
475
|
+
from harlequelrah_py.string.mysequence import nbr_let
|
|
476
|
+
nbr_element("hello") # Renvoie {'h': 1, 'e': 1, 'l': 2, 'o': 1}
|
|
477
|
+
nbr_element("hello", "l") # Renvoie 2
|
|
478
|
+
nbr_element([1, 2, 1, 4, 5, 6, 7, 6, 9, 2, 7]) # Renvoie {1: 2, 2: 2, 4: 1, 5: 1, 6: 2, 7: 2, 9: 1}
|
|
479
|
+
|
|
480
|
+
```
|
|
481
|
+
- **Paramètre** :
|
|
482
|
+
- `seq` (`string` ou `list`) : La chaîne à analyser.
|
|
483
|
+
- **Retourne** :
|
|
484
|
+
- `dict` `int` : Un dictionnaire avec chaque element et son nombre d’occurrences, ou un entier représentant le nombre d’occurrences de x.
|
|
485
|
+
|
|
486
|
+
**show_casse** :Analyse les caractères en majuscule et minuscule dans une chaîne ou une liste et retourne des listes spécifiques en fonction du paramètre casse.
|
|
487
|
+
|
|
488
|
+
```python
|
|
489
|
+
from harlequelrah_py.string.mysequence import casse
|
|
490
|
+
casse("Hello World") # Renvoie (['e', 'l', 'o'], ['H', 'W'])
|
|
491
|
+
casse("Hello World", 0) # Renvoie ['e', 'l', 'o']
|
|
492
|
+
casse("Hello World", 1) # Renvoie ['H', 'W']
|
|
493
|
+
casse("Hello World", -1) # Renvoie [3, 2]
|
|
494
|
+
```
|
|
495
|
+
- **Paramètre** :
|
|
496
|
+
- char_liste (string ou list) : La chaîne ou liste de caractères à analyser.
|
|
497
|
+
- show_casse (int, optionnel) :
|
|
498
|
+
- Si None, renvoie une liste des minuscules et une liste des majuscules.
|
|
499
|
+
- Si 0, renvoie uniquement les minuscules.
|
|
500
|
+
- Si 1, renvoie uniquement les majuscules.
|
|
501
|
+
- Si -1, renvoie le nombre de minuscules et de majuscules.
|
|
502
|
+
- **Retourne** :
|
|
503
|
+
- `tuple` ou `list` : Les listes de minuscules et de majuscules, ou des décomptes en fonction du paramètre casse.
|
|
504
|
+
|
|
505
|
+
#### Sous-Module `mycryptography`
|
|
506
|
+
Le sous-module `mycryptography` permet de faire des opérations spécifiques sur le codage par cryptographie.
|
|
507
|
+
|
|
508
|
+
**cesar** : Encode ou décode un mot en utilisant le chiffrement de César avec une clé de décalage spécifiée.
|
|
509
|
+
```python
|
|
510
|
+
from harlequelrah_py.string.mycryptography import cesar
|
|
511
|
+
cesar("Bonjour", operation=1, k=3) # Encode le mot et renvoie Erqmrxu
|
|
512
|
+
cesar("Erqmrxu", operation=-1, k=3) # Decode le mot et renvoie Bonjour
|
|
513
|
+
```
|
|
514
|
+
- **Paramètres** :
|
|
515
|
+
- mot (`string`) : Le mot à coder ou décoder.
|
|
516
|
+
- operation (`int`) : 1 pour coder, -1 pour décoder.
|
|
517
|
+
- k (`int`) : La clé de décalage pour le chiffrement (par défaut 3).
|
|
518
|
+
- **Retourne** :
|
|
519
|
+
- `string` : Le mot codé ou décodé selon le chiffrement de César.
|
|
520
|
+
|
|
521
|
+
**verif_cesar** : Décrypte un mot codé en utilisant le chiffrement de César et renvoie un dictionnaire des possibilités en fonction de chaque décalage possible.
|
|
522
|
+
```python
|
|
523
|
+
from harlequelrah_py.string.mycryptography import verif_cesar
|
|
524
|
+
verif_cesar("Erqmrxu") # Renvoie toutes les possibilités de décodage ex : {'Erqmrxu': 0, 'Dqplqwt': 1, 'Cpokpvs': 2, 'Bonjour': 3,...}
|
|
525
|
+
```
|
|
526
|
+
- **Paramètres** :
|
|
527
|
+
- mot (`string`) : Le mot à déchiffrer.
|
|
528
|
+
- **Retourne** :
|
|
529
|
+
- `dict` : Un dictionnaire où chaque clé est une possibilité de mot clair et la valeur correspond au décalage.
|
|
530
|
+
|
|
531
|
+
**z_cesar** : Décrypte une phrase ou une chaîne codée en utilisant le chiffrement de César, en renvoyant un dictionnaire des décryptages possibles pour chaque mot de la chaîne.
|
|
532
|
+
```python
|
|
533
|
+
from harlequelrah_py.string.mycryptography import z_cesar
|
|
534
|
+
z_cesar("Erqmrxu Phz") # Renvoie un dictionnaire des possibilités de mots clairs pour chaque mot de la chaîne ex :{0: 'Erqmrxu Phz', 1: 'Dqplqwt Ogy', 2: 'Cpokpvs Nfx', 3: 'Bonjour Mew'....}
|
|
535
|
+
```
|
|
536
|
+
- **Paramètres** :
|
|
537
|
+
- chaine (`string`) : La chaîne de caractères codée à analyser
|
|
538
|
+
- **Retourne** :
|
|
539
|
+
- `dict` : Un dictionnaire où chaque clé est un décalage et chaque valeur est la chaîne possible pour ce décalage.
|
|
540
|
+
|
|
541
|
+
## Module `types`
|
|
542
|
+
|
|
543
|
+
Ce module comporte des classes utilisées comme types ou structure de données
|
|
544
|
+
|
|
545
|
+
### Sous Module `landmark`
|
|
546
|
+
Ce sous module comporte les classes LandMark et Point
|
|
547
|
+
|
|
548
|
+
**`Point`**
|
|
549
|
+
|
|
550
|
+
- `__init__`:
|
|
551
|
+
|
|
552
|
+
- **paramètres** :
|
|
553
|
+
|
|
554
|
+
- x : **int** représente l'abscisse
|
|
555
|
+
|
|
556
|
+
- y : **int** représente l'ordonnée
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
**`LandMark`** :
|
|
560
|
+
|
|
561
|
+
- `__init__` :
|
|
562
|
+
|
|
563
|
+
- **paramètres** :
|
|
564
|
+
|
|
565
|
+
- type_land_mark: **type** , default Any
|
|
566
|
+
|
|
567
|
+
- land_marks: **dict[Point,type_land_mark:type]**
|
|
568
|
+
|
|
569
|
+
- `get_point` : retourne le point dans le repere à partir de ces coordonnées
|
|
570
|
+
|
|
571
|
+
- **paramètres** :
|
|
572
|
+
|
|
573
|
+
- point : **Point**
|
|
574
|
+
|
|
575
|
+
- `set_point` : change un point et sa valeur
|
|
576
|
+
|
|
577
|
+
- **paramètres** :
|
|
578
|
+
|
|
579
|
+
- point : **Point**
|
|
580
|
+
|
|
581
|
+
- obj : **type_land_mark**
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
- `add_point` : ajoute un point et sa valeur
|
|
585
|
+
|
|
586
|
+
- **paramètres** :
|
|
587
|
+
|
|
588
|
+
- point : **Point**
|
|
589
|
+
|
|
590
|
+
- obj : **type_land_mark**
|
|
591
|
+
|
|
592
|
+
- `is_valid_obj` : verifie si un objet est valide du type **type_land_mark**
|
|
593
|
+
|
|
594
|
+
- **paramètres** :
|
|
595
|
+
|
|
596
|
+
- obj : **type_land_mark**
|
|
597
|
+
|
|
598
|
+
- **sortie** : **bool** -
|
|
599
|
+
|
|
600
|
+
- `exist_point` : verifie si un point existe
|
|
601
|
+
|
|
602
|
+
- **paramètres** :
|
|
603
|
+
|
|
604
|
+
- point : **Point**
|
|
605
|
+
|
|
606
|
+
- **sortie** : **bool**
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
- `remove_point` : retire un point du repère
|
|
610
|
+
|
|
611
|
+
- **paramètres** :
|
|
612
|
+
|
|
613
|
+
- point : **Point**
|
|
614
|
+
|
|
615
|
+
- `list_marks` : liste les coordonnées et leurs valeurs
|
|
616
|
+
|
|
617
|
+
- `land_marks` **@property**
|
|
618
|
+
|
|
619
|
+
`ex` :
|
|
620
|
+
|
|
621
|
+
```python
|
|
622
|
+
my_land = LandMark()
|
|
623
|
+
my_land.add_point(Point(2,5),55)
|
|
624
|
+
my_land.list_marks()
|
|
625
|
+
my_land.set_point(Point(2,5),"mdr")
|
|
626
|
+
my_land.list_marks()
|
|
627
|
+
my_land.remove_point(Point(2,5))
|
|
628
|
+
my_land.list_marks()
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
new_land = LandMark(type_land_mark=int)
|
|
632
|
+
new_land.add_point(Point(1,2),2)
|
|
633
|
+
new_land.add_point(Point(2,3),3)
|
|
634
|
+
new_land.list_marks()
|
|
635
|
+
new_land.add_point(Point(1,2),"hi") # Provoque une erreur
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
## Contact ou Support
|
|
641
|
+
Pour des questions ou du support, contactez-moi à maximeatsoudegbovi@gmail.com ou au (+228) 91 36 10 29.
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
|