Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 07-10-2021 17:44:44

Mouss
Membre
Inscription : 23-04-2020
Messages : 105

Les listes

Bonjour,

Je suis perdu avec ces fonctions :
Quelle est la différence entre random.random() et randint() ?

Et la différence entre L.sort() et sorted(L) ?

Merci bien de votre aide :)

Hors ligne

#2 07-10-2021 18:22:11

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 992

Re : Les listes

Bonsoir Mouss,

La bibliothèque (aussi appelée librairie) random comporte encore, outre random() et randint(), randrange().
Pour l'utilisation, il te faut :
- soit l'importer en début de script comme ça : from random import random, ou  from random import randint ou....
- soit importer tout : from random import *
- soit encore préfixer avec random : random.random, random.randint, random.randrange... Tu dis par là à Python que random, randint, randrange figurent dans la bibliothèque  random et que c'est là qu'il les trouvera : c'est de "l'importation" temporaire...

randint, randrange fournissent des nombre entiers, random des nombres à virgule appartenant à [0 ; 1[
https://docs.python.org/fr/3/library/random.html

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 08-10-2021 08:07:40

Mouss
Membre
Inscription : 23-04-2020
Messages : 105

Re : Les listes

Merci, c'est vraiment très clair !

Est-ce que vous savez à quoi sert L.sort() et la difference avec sorted().
sorted() ca range une liste dans l'ordre coissant mais du coup L.sort() je ne vois pas.

Hors ligne

#4 08-10-2021 08:59:40

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 992

Re : Les listes

Salut,

sort() et sorted() sont des variantes du même tri.
L.sort() fait un tri "sur place" :

L=[7,3,5,4,1,0,10]
>>> L.sort()
>>> L
[0, 1, 3, 4, 5, 7, 10]
>>>

Tu n'as besoin d'utiliser une 2e liste vide...

>>> L=[7, 5, 4, 1, 3, 0, 10]
>>> sorted(L)
[0, 1, 3, 4, 5, 7, 10]
>>>

Et là tu me dis : bin... c'est la même chose, je ne suis pas plus avancé  !

Pourtant, non... Il faut aller au-delà des apparences.
Vérification :

>>> L=[7, 5, 4, 1, 3, 0, 10]
>>> sorted(L)
[0, 1, 3, 4, 5, 7, 10]
>>> L
[7, 5, 4, 1, 3, 0, 10]
>>>

Tu vois la différence : sorted a fait le même tri mais n'a pas touché à ta liste d'origine...
Pour récupérer la liste triée, tu as besoin de transférer le contenu trié dans une autre liste :

>>> L=[7, 5, 4, 1, 3, 0, 10]
>>> M=sorted(L)
>>> M
[0, 1, 3, 4, 5, 7, 10]
>>> L
[7, 5, 4, 1, 3, 0, 10]
>>>

Tu vois la différence ?

Tu peux toujours t'instruire en mode console :

>>> help(sorted)
Help on built-in function sorted in module builtins:

sorted(iterable, key=None, reverse=False)
    Return a new list containing all items from the iterable in ascending order.
   
    A  key function can be supplied to customise the sort order, and the
    reverse flag can be set to request the result in descending order.

>>>

Illustration :

>>> M=sorted(L,reverse=True)
>>> M
[10, 7, 5, 4, 3, 1, 0]
>>>

Marche aussi avec sort() :

>>> L=[7, 5, 4, 1, 3, 0, 10]
>>> L.sort(reverse=True)
>>> L
[10, 7, 5, 4, 3, 1, 0]
>>>

help(mot-clé) marche en mode console avec l'IDLE de Python.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 08-10-2021 09:52:38

Mouss
Membre
Inscription : 23-04-2020
Messages : 105

Re : Les listes

Ah oui, je voyais pas du tout la différence, je comprends mieux merci !

Du coup, je revient sur la 1ere question sur limportation des bibliothèques, dans un programme j'ai import pylab as pb  puis en dessous
pb.axis([-4,5,-10,10])
pb.grid()

On a pas besoin de mettre pb.axis() si j'ai bien compris car on a déja importer pb grace à  import pylab as pb ? axis([-4,5,-10,10]) tout seul suffit ? et grid() tout seul aussi, non ?

Hors ligne

#6 08-10-2021 12:31:34

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 992

Re : Les listes

RE,

Je n'ai jamais utilisé pylab.
Petite précision/rectification :

>>> math.sin(1)
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    math.sin(1)
NameError: name 'math' is not defined
>>> import math
>>> math.sin(1)
0.8414709848078965
>>> cos(0)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    cos(0)
NameError: name 'cos' is not defined
>>> math.cos(0)
1.0
 

Mais


>>> from math import *
>>> sin(1)
0.8414709848078965

Tu vois que import math ne suffit pas...

Pylab

>>> import pylab as pb
>>> sin(pi/2)
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    sin(pi/2)
NameError: name 'sin' is not defined

>>> pb.sin(pi/2)
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    pb.sin(pi/2)
NameError: name 'pi' is not defined

>>> pb.sin(1)
0.8414709848078965

Autre exemple:

>>> from fractions import Fraction as Fr
>>> print(Fr(1,3)+Fr(1,6))
1/2
 

Là oui, ça marche, mais j'ai importé une fonction particulière (la fonction Fraction) avec un alias (Fr) qui ne fait que raccourcir les écritures...

>>> import numpy as np
>>> np.random.random()
0.4868589662076771
>>>
 

import numpy : j'importe en mémoire la totalité de la bibliothèque numpy sous le raccourci de np.

Cette bibliothèque numpy comprend le module random qui contient la fonction du même nom.
Pour utiliser la fonction random de numpy, je suis obligé de dire qu'elle est dans le module random de np...

https://courspython.com/introduction-pylab.html
Pylab est un facilitateur d(accès à numpy à ce que je comprends...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#7 09-10-2021 14:00:38

Mouss
Membre
Inscription : 23-04-2020
Messages : 105

Re : Les listes

Merci beaucoup !

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
soixante neuf plus quatre-vingt dix
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums