Fonctions Python pour Calculs Divers
Fonctions Python pour Calculs Divers
Exercice 1
Complétez la fonction suivante pour que, donné un numéro de document national d'identité (DNI), on
renvoie une lettre. Cette lettre est obtenue en calculant le reste du DNI par rapport à 23 et à partir de cette valeur lui attribuer
une lettre du tableau suivant :
RESTO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
LETRA T R W A G M Y F P D X B N J Z S Q V H L C K E
La valeur DNI sera un nombre entier et la lettre doit être une chaîne de caractères contenant un unique
LETRA EN MAJUSCULES.
defejercicio_1(dni):
resultado="TRWAGMYFPDXBNJZSQVHLCKE"[dni%23]
retourner résultat
Exercice 2
Complétez la fonction suivante pour que, étant donné le prix d'un produit, le prix soit calculé et retourné.
total que doit payer le client, c'est-à-dire, incluant la TVA (21% sur le prix du produit). Le prix
le total doit être uniquement la valeur du prix, c'est-à-dire qu'il ne doit pas contenir le symbole de la monnaie.
def exercice_2(prix):
resultado=round(precio*1.21,2)
retourner résultat
Exercice 3
Complétez la fonction suivante pour qu'étant donné le diamètre d'un cercle, on calcule l'aire du cercle.
que contiene dicha circunferencia. Como valor de PI se usará 3.1415.
def exercice_3(diamètre):
resultado=3.1415*((diametro/2)**2)
retourner le résultat
Ejercicio 4
Compléter la fonction pour que, étant donnés deux nombres entiers et deux nombres entiers, on calcule le quotient et le
reste de faire la division entière entre n et m.
Exercice 5
Compléter la fonction pour que, étant donné le nombre d'unités qu'un utilisateur a acheté de 2 produits
différents, retourner le poids total du colis pour expédier votre achat par messagerie. Le poids de chaque unité
la quantité du produit1 est de 147 unités et le poids de chaque unité du produit2 est de 2400 unités. La fonction
doit renvoyer uniquement le poids total.
Exercice 1
Écris une fonction appelée exercice1 qui génère une liste avec 15 valeurs entières aléatoires allant de
1 a 100. La función debe devolver la lista con todos los valores.
importez randomasr
defejercicio1():
lista_salida=[]
pour i dans la plage(15):
lista_salida.append([Link](1,100))
returnliste_sortie
Exercice 2
Écrivez une fonction appelée exercice2 qui prend 2 arguments : le premier sera la liste que nous avons
implémenté dans l'Exercice 1 et le second un nombre par lequel chacun des éléments sera divisé
De la liste. Le résultat sera une nouvelle liste.
Exercice 3
En utilisant des fonctions anonymes, créez une nouvelle liste contenant les valeurs entières de chacun des
éléments de la liste que renvoie la fonction implémentée dans l'Exercice 2.
ejercicio3=lambdap : [int(p[i])foriinrange(len(p))]
Ejercicio 4
Implémentez une fonction, appelée exercice4, qui prend en arguments deux nombres entiers et renvoie
dans un tuple les valeurs suivantes : le factoriel du premier argument et le plus grand commun diviseur des deux
arguments.
importmathasm
def exercice4(numero1, numero2):
factorial=[Link](numero1)
mcd=[Link](numero1, numero2)
returnfactorial, mcd
Exercice 5
Crée une fonction exercice5 qui renvoie une liste avec toutes les valeurs contenues dans une liste qui est passée.
par argument mais en éliminant les valeurs dupliquées. Testez le fonctionnement de cette fonction avec la liste
obtenida en el Ejercicio 1.
defejercicio5(liste_entrée):
lista_salida=[]
foriinlista_entrada:
ifinot danslista_salida:
lista_salida.append(i)
retournerliste_sortie
ACTIVITÉ 3
Exercice 1
Écrivez une classe appelée Nombre. Cette classe doit avoir un constructeur qui reçoit un nombre et le stocke.
ese número en 2 atributos: romano que almacenará el número en el formato de número romanos como una
chaîne de caractères et normal qui enregistrera le numéro que nous avons reçu de l'entrepreneur.
Exercice 2
Créez deux nouvelles méthodes dans la classe Numero. La première méthode, appelée imprime(), imprime un message.
montrant la valeur des deux attributs ; le deuxième attribut, suma_romano() aura comme paramètres une
chaîne de caractères qui représentera un autre nombre romain et que nous ajouterons aux attributs que nous avons déjà
nous avions.
Exercice 3
Définissez une fonction dans la classe Numero qui, à partir d'une chaîne de caractères, retourne True si
cette chaîne de caractères correspond à un numéro romain et faux dans le cas contraire. Ensuite, modifie
la méthode pour qu'elle lance une erreur dans le cas où la valeur qui nous est passée en paramètre ne correspond pas
avec le motif d'un chiffre romain
importer
classNumero:
romano=""
normal=""
def__init__(self, normal):
[Link]=Numero.normal_a_romano(normal)
[Link]=normal
defimprime(self):
cadena=("{} {}")
print([Link]([Link], [Link]))
defsuma_romano(self, romano):
numero_anterior=Numero.romano_a_normal([Link])
numero_nuevo=Numero.romano_a_normal(romano)
res = int(numero_anterior) + int(numero_nouveau)
[Link]=Numero.normal_a_romano(res)
[Link]=res
defromano_a_normal(romano):
dic={"M":1000,"D":500,"C":100,"L":50,"X":10,"V":
5,"I":1}
res=0
pour i dans la plage(0, len(romano)):
Si == 0ordic[romano[i]] <= dic[romano[i-1]] :
res+=dic[romano[i]]
sinon :
res+=dic[romano[i]]-2*dic[romano[i-1]]
retourneres
defnormal_a_romano(normal):
num=[1,4,5,9,10,40,50,90,100,400,500,900,1000]
rom=["I","IV","V","IX","X","XL","L","XC","C","CD",
"D","CM","M"]
i=12
res=""
whilenormal:
div=normal//num[i]
normal%=num[i]
whilediv:
res+=str(rom[i])
div-=1
i-=1
retourner
Exercice 4
Implémentez une classe MeilleurNombre. Cette classe héritera des propriétés de Nombre et inclura deux méthodes.
nouveaux pour soustraire et multiplier les attributs en recevant un autre nombre romain en paramètre.
Exercice 5
Dans la classe MeilleurNombre, créez une nouvelle méthode qui reçoit une liste de 3 chiffres romains.
ensuite, en itérant sur les éléments de la liste, il appellera la fonction somme_roman(). Les possibles
les erreurs devront être gérées avec des exceptions pour afficher un message et continuer l'exécution suivante
numéro.
classMejorNumero(Numero):
def__init__(self, normal):
[Link]=Numero.normal_a_romano(normal)
[Link]=[Link]
defresta(self, romano):
numero_anterior=Numero.romano_a_normal([Link])
numero_nuevo=Numero.romano_a_normal(romano)
res=int(numero_anterior)-int(numero_nouveau)
[Link]=Numero.normal_a_romano(res)
[Link]=res
defmultiplier(self, romano):
numero_anterior=Numero.romano_a_normal([Link])
numero_nuevo=Numero.romano_a_normal(romano)
res=int(numero_anterior)*int(numero_nouveau)
[Link]=Numero.normal_a_romano(res)
[Link]=res
defiterar(self, lista):
numero_anterior=Numero.romano_a_normal([Link])
acumulador=0
forelementoinlista:
essayer :
accumulateur += Numero.romain_a_normal(elemento)
exceptTypeError:
print("Le numéro a échoué " + str(elemento))
res=numero_précédent+accumulateur
[Link]=[Link]=Numero.normal_a_romano(res)
[Link]=res
ACTIVITÉ 4
Exercice 1
Crée une fonction appelée exercice1, qui reçoit le chemin où se trouve un jeu de données et renvoie une
DataFrame avec les données présentes dans le jeu de données. Pour vérifier cette fonction, utilise le jeu de données.
[Link] qui est inclus dans cette activité.
importpandasaspd
defejercicio1(dataset):
returnpd.lire_csv(ensemble)
Exercice 2
Crée une autre fonction appelée exercice2. Cette fonction reçoit un seul argument qui est un dataframe. Dans
concret doit recevoir le dataframe qui a été obtenu en lisant le [Link]. Cette fonction
renverra un autre ensemble de données qui inclura uniquement les passagers de moins de 35 ans et qui voyageaient en 3ème.
classe.
defejercicio2(dataframe):
filtro=dataframe[([Link]<35)&([Link]==3)]
retourfiltre
Exercice 3
Crée une fonction appelée exercice3, qui reçoit comme argument le dataframe de salidadelejercicio
2, calcule el porcentaje de pasajeros menores de 35 años de 3ª clase que sobrevivieron.
defejercicio3(dataframe):
total_registros=[Link]()
survivants=dataframe[([Link]==
1)].Survé[Link]()
p_sobrevivientes=(sobrevivientes*100)/total_registros
returnp_sobrevivientes
Exercice 4
Implémentez une fonction appelée exercice4 qui, en recevant le dataframe avec les données du Titanic, renvoie
en una tupla el porcentaje de hombres y mujeres que viajaban en el Titanic, redondeados al segundo
décimal.
defejercicio4(dataframe):
total_registros=[Link]()
n_hommes=dataframe[([Link]=="homme")].[Link]()
n_mujeres=dataframe[([Link]=="femme")].[Link]()
p_hombres=round((n_hombres*100)/total_registros,2)
p_mujeres=round((n_mujeres*100)/total_registros,2)
returnp_hombres, p_mujeres
Ejercicio 5
Implémentez une fonction appelée exercice5 qui, en recevant le dataframe avec les données du Titanic, renvoie
en una lista el número de pasajeros que viajaban en 1ª, 2ª y 3ª clase.
def exercice5(dataframe):
lista=[]
[Link](0, dataframe[([Link]==1)].[Link]())
[Link](1, dataframe[([Link]==2)].[Link]())
[Link](2, dataframe[([Link]==3)].[Link]())
retourner liste
Test Thème 1
L'objectif principal de Python était de créer un langage aussi puissant que d'autres de l'époque
mais qu'il soit facile à utiliser et à apprendre en simplifiant sa syntaxe.
La version de Python que nous devons utiliser, quel que soit notre équipement, est la version 3.8 ou
posterieur, puisque d'autres versions ont été discontinuées depuis janvier 2020.
Laquelle des outils suivants ne pouvons-nous pas utiliser pour programmer en Python ?
A. Éditeur de texte brut comme Atom.
B. La console du système.
C. Applications bureautiques comme Word.
D. Environnements de développement avancés comme PyCharm.
Python permet l'utilisation de différents outils pour créer des programmes, depuis la console de
système jusqu'aux environnements avancés. Cependant, il n'est pas possible de créer des programmes qui ne soient pas
de texte brut comme Word ou WordPad.
Jupyter Notebook est une application gratuite qui est incluse dans la distribution
Anaconda.
Quelle différence existe-t-il entre les distributions de Python ?
A. La distribution de base de Python comprend plus de modules qu'Anaconda.
B. La distribution d'Anaconda inclut plus de modules que la version de base.
C. Anaconda ne permet pas d'installer plus de modules.
D. La version de base de Python ne permet pas d'installer plus de modules.
La distribution Anaconda inclut plus de modules que la version de base de Python en raison de ce que
est orientée vers l'analyse des données. De plus, les deux distributions permettent d'installer de nouveaux
modules.
Jupyter Notebook est un environnement de développement dont la principale caractéristique est les cellules, qui
permettent de créer des blocs avec différents contenus tels que du code Python, du texte ou
graphismes.
Dans Jupyter Notebook, nous pouvons créer des cellules qui contiennent du code Python et du texte, que ce soit
avec le format markdown ou avec le format console.
Quel type de fichiers ne pouvons-nous pas créer avec le navigateur de fichiers de Jupyter Notebook ?
A. Cahiers.
B. Dossiers.
C. Fichiers texte.
D. Fichiers PDF.
Dans le navigateur de fichiers de Jupyter Notebook, nous pouvons créer différents types de
des fichiers comme des dossiers, des blocs-notes ou des fichiers texte. Cependant, d'autres formats comme
les fichiers PDF ne peuvent pas être créés ici.
Les seules cellules qui se créent automatiquement dans Jupyter Notebook sont les cellules de sortie,
qui montrent le résultat d'une cellule contenant du code Python. Ce n'est pas nécessaire
exécuter les instructions dans la console et les actions C et D si elles sont autorisées dans Jupyter.
Test Thème 2
Les identifiants en Python ne peuvent pas inclure de symboles spéciaux, ils peuvent être dans
minuscules ou majuscules, peuvent inclure des chiffres sauf au début de l'identifiant et
Ils peuvent avoir n'importe quelle longueur.
Que devons-nous utiliser pour que Python détecte différents blocs de code ?
A. Clés ({})
B. Les mots réservés begin et end.
C. Sangrías de uno ou plusieurs espaces.
D. Sangrías de quatre espaces.
En Python, nous utilisons une indentation de quatre espaces pour définir de nouveaux blocs de code, par
exemple, après avoir déclaré une instruction if.
Cet opérateur est une division normale, donc, même s'il s'agit de deux nombres entiers, le type de
les données renvoyées par cet opérateur sont des float.
Si nous partons d'une variable var avec une valeur initiale égale à 10 et que nous voulons la multiplier par 3
en stock le résultat dans la même variable, quelle est la façon la plus efficace pour
y parvenir ?
A. var = var + 10.
B. var += int('10').
C. var -= 10.
D. var*= 3
La méthode la plus efficace pour multiplier 3 par une variable et stocker la valeur dans la même variable
la variable est en utilisant la multiplication avec affectation. De plus, il n'est pas nécessaire de faire quoi que ce soit.
changement de type de donnée.
Tenemos la siguiente cadena de caracteres almacenada en una variable: frase = “Hola,
Python !. Si nous accédons aux positions phrase[-7:12], quel sera le résultat ?
Python
B. "Bonjour".
C. “la, P”
D. Cela renverra une erreur.
Dans ce cas, nous accédons à partir de la position 7 en comptant depuis la droite, c'est-à-dire le P,
jusqu'à la position 11 en comptant depuis la gauche (c'est la position 12 moins une position), c'est
dire, la n. Le résultat est «Python».
En utilisant la même variable que dans la question précédente, nous exécutons l'instruction suivante :
[Link](“Adiós”, “Buenos días”). ¿Cuál será el resultado?
A. "Au revoir, Python!"
B. Cela renverra une erreur.
C. "Bonjour, bonnes matins".
D. "Salut, Python!".
Comme il n'y a pas de correspondance avec « Adiós » dans la variable phrase, elle renverra la même valeur.
que contenait initialement la variable phrase.
En continuant avec la variable précédente, quel est le résultat de cette phrase ? : len("Bonjour") <=
[Link](',')
A. Vrai.
B. Cela entraînera une erreur.
C. Faux.
D. « Faux ».
Dans cette opération, on compare si la longueur de la chaîne « Hola » (4) est inférieure ou égale
que la position de la virgule dans la variable phrase (4). Étant un opérateur de comparaison,
renverra une valeur booléenne et, si elle est vraie, renverra True.
Modifier un objet de type basique ou None en chaîne de caractères n'a aucune restriction.
Le résultat sera True, car le premier opérateur bool(0) renverra False et le second
l'opérateur renverra not(False), c'est-à-dire True. Donc le résultat de False or True sera
Vrai.
Test Thème 3
Pour accéder à la valeur d'un élément d'un dictionnaire, nous devons savoir :
A. Sa position dans le dictionnaire.
B. La taille du dictionnaire.
C. La valeur de l'élément auquel nous voulons accéder.
D. La clé qui a été attribuée à l'élément.
Les ensembles sont des structures de données qui stockent leurs objets de manière non ordonnée et sans
répétitions.
En una ejecución condicional, un bloque de código tras una sentencia else se ejecuta:
A. Si l'expression de la condition if a donné comme résultat Faux.
B. Si les expressions des instructions if et elif ont donné comme résultat False.
C. Si l'expression de la sentence else a donné comme résultat False.
D. Toujours.
Dans une boucle while, un bloc de code après une instruction else s'exécute :
A. Si l'expression de la boucle while a donné comme résultat Vrai.
B. Seulement s'il y a eu une erreur dans l'exécution.
C. Avant d'exécuter la boucle.
D. Toujours.
Combien de fois le message sera-t-il imprimé dans ce code ? pour i dans la plage(1,9) :
A. 10.
B. 8.
C. 9.
D. 11.
L'itérateur parcourra les différentes positions de la liste, lorsqu'on appellera la fonction next, il renverra
le premier élément de la liste 'a'. Comme c'est de type chaîne de caractères, la multiplication
aaaaaaaaaa
Lequel des objets suivants ne peut pas être utilisé dans un itérateur ?
A. Une chaîne de caractères.
B. Un dictionnaire.
C. Un nombre entier.
D. Un tuple.
Test Thème 4
Combien d'arguments peut recevoir la fonction suivante et comment doivent-ils être fournis ?
def ejemplo(*args):
imprimer(args)
A. Un unique argument.
B. Tous ceux qui le souhaitent, et ils seront placés par position.
C. Tous ceux qui le souhaitent, et seront classés par nom.
D. N'accepte pas d'arguments.
Quelle fonction du système Python peut être utilisée pour obtenir la partie entière d'un
numéro?
A. [Link]().
B. [Link]().
C. [Link]().
D. Il n'existe pas, il faut mettre en œuvre une nouvelle fonction.
La bibliothèque math de Python comprend de nombreuses fonctions arithmétiques que nous pouvons utiliser,
parmi elles, la fonction trunc() qui nous renvoie la partie entière d'un nombre décimal.
Nous voulons vérifier si le fichier '/Carpeta/[Link]' existe sur le système. Comment est-ce que
pourrais-vous le faire de la manière la plus simple ?
A. Création d'une fonction qui lit des fichiers dans le système.
B. Créer le même fichier et, s'il y a une erreur, cela signifie qu'il existe déjà.
C. En utilisant la fonction [Link]().
D. En utilisant la fonction [Link]().
Que renvoie la fonction suivante ?
déf test():
lista = [2, 6, ‘Hola’, 10, 7]
retourne [Link](lista)
A. Une permutation des éléments définis dans la liste.
B. Un élément de la liste choisi au hasard.
C. Un nombre aléatoire de 0 au nombre le plus élevé de la liste.
D. Divers éléments de la liste choisis au hasard.
Dans ce fragment de code, une map est appliquée pour convertir chacun des
éléments de la liste en objets de type chaîne de caractères.
Test Thème 5
Au moment d'importer un module, nous pouvons lui assigner un alias. Cet alias nous permet de faire
référence au module avec un nouvel identifiant qui, normalement, est plus court ou plus simple à
se souvenir.
Dans l'importation suivante d'un paquet, comment devons-nous accéder à la fonction test() de
module mon_module ?
à partir du paquet importé mi_modulo en tant que mod
A. paquet.mi_module.test().
B. mi_modulo.[Link]().
C. [Link]().
D. [Link]().
Lorsque nous implémentons une méthode dans une classe, à quoi sert le paramètre self ?
A. Pour donner au méthode l'instance de l'objet qu'il va utiliser.
B. Il s'agit d'un paramètre anonyme.
C. Ce paramètre indique que la fonction est une méthode.
D. Ce paramètre ne doit pas être inclus dans les méthodes.
Lorsque nous implémentons une méthode à l'intérieur d'une classe, nous devons passer comme premier
paramètre l'élément self. Ce paramètre sert à ce que la méthode puisse accéder à la
instance de l'objet qui a invoqué la méthode.
Pour le prochain cours, comment pourrions-nous créer une instance ?
classe MiClasse :
def __init__(self, nombre, puntuacion=0.0):
[Link] = nom
[Link] = puntuacion
Pour le cours suivant, comment pourrions-nous créer une instance ?
classe MiClasse :
def __init__(self, nombre, puntuation=0.0):
[Link] = nom
[Link] = puntuacion
A. objet = new MaClasse().
B. objet = MaClasse().
C. objet = MiClasse.__init__(‘Bonjour’, 10).
D. objet = MaClasse('Bonjour').
Lorsque nous implémentons une classe qui hérite d'une autre classe, à quels éléments de la
Une classe parente peut-elle être accessible depuis la classe fille ?
A. Uniquement aux attributs de la classe parente.
B. Seulement les méthodes de la classe parente.
C. Aux attributs et méthodes de la classe parente.
D. Seulement à la constructeur de la classe parente.
Supposons que nous avons implémenté les classes suivantes. Que sera affiché dans la console ?
si nous exécutons la méthode imprimer de l'objet ?
classe ClasseParent :
def imprimer(self):
print('Bonjour, je suis la classe parente')
class ClasseFille(ClassePère):
def imprimer(self):
print('Bonjour, je suis la classe fille')
objet = ClasseFille()
A. Il affichera une erreur ne sachant pas à quelle méthode nous faisons référence.
B. «Bonjour, je suis la classe fille».
C. «Bonjour, je suis la classe parente.»
D. Nous ne pouvons pas imprimer car nous ne lui avons pas passé l'argument self.
Que retourne la fonction match() lorsqu'elle n'a trouvé aucun résultat dans la chaîne
de caractères ?
A. La même chaîne de caractères d'entrée.
B. Aucun.
C. -1.
D. Renvoie une erreur.
La sentencia else se pone al final del bloque try-except y nos permite definir un conjunto de
instructions qui seront exécutées lorsqu'il n'y a eu aucune erreur dans l'instruction try.
A partir de la siguiente lista, queremos crear un diccionario donde, por cada elemento, la
clave sea el nombre del usuario y el valor, la edad. En el diccionario solo guardaremos
les utilisateurs de moins de 35 ans. Laquelle des phrases suivantes devrait être utilisée ?
usuarios = [['Juan', 33], ['Alicia', 28], ['Rebeca', 56]]
A. [élément[0]: élément[1] pour élément dans utilisateurs si élément[1] < 35].
B. {item[0]: item[1] for item in usuarios if item[0] < 35}.
C. [item[0]: item[1] for item in usuarios}.
D. {item[0]: item[1] for item in usuarios if item[1] < 35}.
Test Thème 7
pandas est :
A. Un langage de programmation.
B. Une bibliothèque de calcul symbolique.
C. Une bibliothèque pour faciliter le traitement des données.
D. Tous les précédents.
Pour obtenir avec pandas les informations statistiques sur la structure et les informations contenues
dans un dataframe nous appelons la fonction :
A. résumé().
B. descr().
C. décrire().
D. examen().
La fonction iloc nous permet d'accéder à une position du dataframe en utilisant l'index, c'est-à-dire le
numéro de position qu'il occupe.
La phrase df[df.A>0]:
A. Ça ne marche pas.
B. Fait que toutes les valeurs de A dans df soient supérieures à zéro.
C. Changez df en supprimant toutes les valeurs inférieures à zéro.
D. Montre seulement les lignes de df qui ont une valeur supérieure à zéro dans leur colonne A.
Comment dois-je appeler la fonction read_csv() pour lire un fichier [Link] où les
Les valeurs sont séparées par un point-virgule (;)?
A. lire_csv(‘[Link]’).
B. read_csv('[Link]', ';').
C. read_csv('[Link]', sep=[',', ';']).
D. lire_csv('[Link]', sep=';').
Test Thème 8
Les données utilisées dans les graphiques de matplotlib, quel type de structure de données doivent-elles avoir ?
avoir ?
A. Listes ou tableaux de numpy.
B. Ensembles.
C. Chaîne de texte.
D. Tuples.
matplotlib lit les données de structures telles que des listes Python ou des tableaux numpy pour générer
les graphiques.
Comment s'appelle la fonction qui nous permet d'afficher les graphiques de matplotlib ?
A. iplot().
B. graphe().
C. montrer().
D. graphiques().
Dans les objets Scatter, nous pouvons changer le type de graphique (en ligne ou en points) avec l'attribut
mode=`marker`. Ensuite, nous pouvons changer le type de point affiché avec l'attribut
symbole.
Quel attribut nous permet de modifier la plage de valeurs qui sera affichée dans un
histogramme?
A. gamme.
B. start - ends.
C. xbins.
D. valeurs.
Est-il nécessaire que les valeurs d'un diagramme circulaire soient normalisées, c'est-à-dire qu'elles totalisent 1 ?
A. Oui, parce que sinon le graphique correct ne s'affichera pas.
B. Oui. Dans le cas contraire, Python nous montrera une erreur.
C. No, Pie calcula la representación de cada dato en el gráfico de forma automática.
D. Non, les valeurs passées à Pie sont de type chaîne de caractères et ne peuvent pas être additionnées.
Pour générer une image avec plusieurs graphiques, quelle fonction devons-nous utiliser ?
A. ajouter_graphique().
B. make_subplots().
C. inclure_sous_graphe().
D. faire_figure().