bonjour à tout le monde,
je suis nouveau ici et me lanc dan sla découverte de python qui est totalement nouveau pour moi.
j'ai donc un excercie a resoudre et j'ai aussi un pb ...... je galere un peu.
help.....
TP2.pdf
bonjour à tout le monde,
je suis nouveau ici et me lanc dan sla découverte de python qui est totalement nouveau pour moi.
j'ai donc un excercie a resoudre et j'ai aussi un pb ...... je galere un peu.
help.....
TP2.pdf
Bonjour,
Merci de respecter les règles du forum et de politesse.
Qu'as tu déjà produit comme code ?
Quelles sont les problèmes que tu as rencontré ?
Qu'est-ce que tu as vu en cours ?
Quels sont les modules que tu as le droit d'utiliser ?
Dernière modification par Invité ; 13/11/2022 à 09h43.
en fait je débute mais j'ai du mal avec python...
je reprend quelques exercice et j'essaye de me débrouiller seul mais je cale la
je ne sais pas trop par ou commencer et comment faire en fait.
j'ai mis en PJ l'exercice mais j'avoue que je patauge et ne sais pas vraiment par ou commencer
Bonjour
Honnêtement je trouve ça normal. On ne demande pas à un débutant d'importer des codes faits par d'autres, ça le paume complet !!!
Au contraire, apprendre Python c'est apprendre à faire ses propres codes pour acquérir de l'expérience et de l'aisance afin d'être ensuite à l'aise pour pouvoir utiliser des codes importés.
Et en plus, comme si ce n'était pas assez compliqué, on rajoute de ne pas utiliser boucles alors que la boucle est le coeur de la programmation
Ok Python offre des syntaxes permettant d'éviter les boucles mais pour les maitriser ces syntaxes, il faut d'abord maitriser les boucles car elles en sont issues (en fait ce sont des boucles masquées donc ça reste des boucles quoi). Franchement TP de prof totalement à l'ouest !!!
Mais bon, il faut faire ce truc débile alors on va le faire. Mais petit à petit.
Donc première question, tu as "C" qui contient un truc généré (on appelle cela un itérable, c'est à dire un truc sur lequel on peut itérer mais seulement une fois car il est issu d'un générateur et une fois traité, il est effacé).
Et on te demande de le convertir en tableau (ce qui se nomme "liste" en Python). Quelle est l'instruction qui permet d'obtenir une liste de trucs?
Ensuite la moyenne c'est la somme des éléments divisée par le nombre d'éléments. Il existe une fonction qui donne la somme d'un tableau, et une autre qui donne le nombre d'éléments. Suffit de les utiliser. Pareil pour le min et max.
Et ensuite calculer l'écart type en te donnant une formule mathématique de Sigma (=somme de termes) ce qui nécessite fatalement une boucle mais sans boucle. Pfff...
Euh... il est obligatoire ce TP ??? Parce que sinon je te conseillerais notre rubrique exercices Python qui te fera progresser en Python cent fois plus rapidement que cette bouse qu'on t'a donnée...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Je me suis dit que c'était un exercice avec numpy, car je vois assez difficilement comment transformer une liste en tableau sans boucle.
ce TP est un TP de fac en licence de chimie (LAS 2).
je reprend les cours d'une élève pour essayer de comprendre python et travailler avec
j'ai réussi les premiers cours mais la je bloque
sur un exercice precedent j'ai fait ca avec l'aide d'un collegue de travail. mais franchement c'est plus lui qui a fait et moi essayer de comprendre
apres en relisant je pense avoir compris mais ....
pour ce TP je vais essayer quelque chose
Import math
def calculer_ecart_type(ma_liste):
somme = 0
moyenne = sum(ma_liste) / len(ma_liste)
for element in ma_liste:
somme += (element - moyenne) ** 2
result= math.sqrt(1/len(ma_liste) * somme)
return result
print(calculer_ecart_type(C))
Tu as mal lu, ce n'est pas une liste au départ mais un truc issu de gc.genere() donc probablement un générateur. Tu peux le simuler un équivalent de cette façon => C=(x for x in range(10)); print(type(C)).
Et pour convertir un générateur en liste ben... list() (le secret de la réussite en Python c'est de savoir rester simple)
Ok, l'idée est là. Attention import ce n'est pas Import et on met ses codes entre balises pour qu'ils soient traités comme du code par le forum sinon c'est illisible (cf ma signature).
Utiliser sum() et len() c'est ok. Mais ensuite tu utilises une boucle et c'est (connement) interdit. Je pourrais te dire comment faire sans mais je suis pas certain que ça te soit profitable. Comme je l'ai dit, savoir écrire du Python sans boucle (plus exactement "avec boucles implicites") ça commence d'abord par savoir écrire du Python avec boucles (plus exactement "avec boucles explicites"). Mais c'est un bon début.
PS: j'ai continué à lire le TP et suis tombé sur cette phrase "Si vous avez réussi les questions précédentes, C’est que le sujet a été écrit pour vous faciliter la tâche."
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Sinon tu utilises le module statistics...
Bon ok, apprentissage de Python sans boucle
Ecrire du Python sans boucle, c'est ce qu'on nomme les "expressions en compréhension". C'est directement issu de la théorie des ensembles en mathématiques.
Ca consiste à remplacer cette structure...
... par cette structure [travail(x) for x in iterable]. Ce qui reste une boucle mais boucle inscrite dans l'expression. Le petit plus, c'est que cette expression est utilisable (quasi) exactement comme une liste : on peut lui appliquer des opérations qu'on applique généralement aux listes. Et si vraiment on veut les utiliser comme des listes à part entières, rien n'interdit alors de les les convertir finalement en vrai listes via list().
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for x in iterable: travail(x)
Ainsi ton calcul...
... s'écrira directement somme=sum((element - moyenne) ** 2 for element in ma_liste).
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 somme=0 for element in ma_liste: somme += (element - moyenne) ** 2
Plus de détails ici.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Sve@r, "expressions en compréhension"... Y a aussi la récursivité.
Hello,
Peut-être une proposition sans boucle,
Pas sûr que se soit ce qui est attendu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 moy = sum(notes) / len(notes) def ecart_type(mean): def wrap(elem): return (elem-mean) ** 2 return wrap print(moy) print(sum(map(ecart_type(moy), notes)))
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
merci
sur spyder ca a l'air de fonctionner, puisque un résultat s’affiche
sur la partie 1 du TP j'ai fait :
import genereConcentration as gc
N = 150
C = gc.genereC(N)
print(C)
[3.8738, 3.90364, 3.77899, 3.89135, 3.95556, 4.08984, 4.02226, 3.85094, 3.79835, 4.29729, 3.90852, 4.10247, 3.95896, 3.90514, 4.4713, 3.99437, 3.80679, 4.15422, 3.99175, 3.60938, 4.59578, 4.06655, 4.12869, 4.26525, 4.4245, 4.26909, 3.62402, 3.83973, 3.79851, 3.85918, 3.91302, 4.33041, 4.1602, 3.79942, 4.15597, 3.94037, 4.38964, 3.90139, 4.11428, 4.41744, 4.05136, 3.95735, 4.07974, 4.10516, 3.90146, 3.96328, 3.92318, 4.26414, 3.7803, 3.8125, 3.76514, 3.93225, 3.85156, 4.09955, 4.2479, 4.0943, 4.104, 3.85648, 4.04958, 3.94873, 3.94882, 4.52786, 3.90872, 4.0944, 4.22558, 3.92493, 3.88275, 3.74374, 3.94498, 3.93517, 3.96739, 3.89417, 3.88121, 4.30288, 4.05715, 4.37499, 3.93325, 4.03333, 3.97526, 3.91372, 4.25061, 4.06441, 3.73089, 3.72348, 4.34032, 3.81611, 4.01409, 4.33616, 4.30834, 4.15666, 4.05081, 4.14704, 3.86, 3.75277, 4.16208, 4.03177, 4.02088, 3.94786, 4.07586, 4.09508, 4.17266, 4.01647, 3.84774, 4.02035, 4.10193, 3.92955, 4.03826, 4.02606, 4.06077, 3.90742, 3.94986, 4.21931, 4.16106, 4.09349, 4.16808, 3.9713, 4.00624, 4.14042, 3.70971, 4.02142, 3.94715, 4.20514, 4.00319, 3.82023, 3.79581, 4.0003, 3.8285, 4.03283, 3.96265, 3.89245, 3.98442, 4.16922, 4.21798, 3.95131, 4.22452, 4.06208, 3.84456, 3.83853, 4.26352, 4.1103, 4.25086, 3.89964, 4.18364, 3.78555, 4.14944, 4.03109, 4.21274, 3.8307, 4.0517, 3.88691]
print(min(C))
3.60938
print(max(C))
4.59578
import math
def calculer_ecart_type(ma_liste):
somme = 0
moyenne = sum(ma_liste) / len(ma_liste)
for element in ma_liste:
somme += (element - moyenne) ** 2
result= math.sqrt(1/len(ma_liste) * somme)
return result
print(calculer_ecart_type(C))
0.18199624924950764
l1 = [3.8738, 3.90364, 3.77899, 3.89135, 3.95556, 4.08984, 4.02226, 3.85094, 3.79835, 4.29729, 3.90852, 4.10247, 3.95896, 3.90514, 4.4713, 3.99437, 3.80679, 4.15422, 3.99175, 3.60938, 4.59578, 4.06655, 4.12869, 4.26525, 4.4245, 4.26909, 3.62402, 3.83973, 3.79851, 3.85918, 3.91302, 4.33041, 4.1602, 3.79942, 4.15597, 3.94037, 4.38964, 3.90139, 4.11428, 4.41744, 4.05136, 3.95735, 4.07974, 4.10516, 3.90146, 3.96328, 3.92318, 4.26414, 3.7803, 3.8125, 3.76514, 3.93225, 3.85156, 4.09955, 4.2479, 4.0943, 4.104, 3.85648, 4.04958, 3.94873, 3.94882, 4.52786, 3.90872, 4.0944, 4.22558, 3.92493, 3.88275, 3.74374, 3.94498, 3.93517, 3.96739, 3.89417, 3.88121, 4.30288, 4.05715, 4.37499, 3.93325, 4.03333, 3.97526, 3.91372, 4.25061, 4.06441, 3.73089, 3.72348, 4.34032, 3.81611, 4.01409, 4.33616, 4.30834, 4.15666, 4.05081, 4.14704, 3.86, 3.75277, 4.16208, 4.03177, 4.02088, 3.94786, 4.07586, 4.09508, 4.17266, 4.01647, 3.84774, 4.02035, 4.10193, 3.92955, 4.03826, 4.02606, 4.06077, 3.90742, 3.94986, 4.21931, 4.16106, 4.09349, 4.16808, 3.9713, 4.00624, 4.14042, 3.70971, 4.02142, 3.94715, 4.20514, 4.00319, 3.82023, 3.79581, 4.0003, 3.8285, 4.03283, 3.96265, 3.89245, 3.98442, 4.16922, 4.21798, 3.95131, 4.22452, 4.06208, 3.84456, 3.83853, 4.26352, 4.1103, 4.25086, 3.89964, 4.18364, 3.78555, 4.14944, 4.03109, 4.21274, 3.8307, 4.0517, 3.88691]
arr = np.array(l1)
print(arr, arr.shape)
[3.8738 3.90364 3.77899 3.89135 3.95556 4.08984 4.02226 3.85094 3.79835
4.29729 3.90852 4.10247 3.95896 3.90514 4.4713 3.99437 3.80679 4.15422
3.99175 3.60938 4.59578 4.06655 4.12869 4.26525 4.4245 4.26909 3.62402
3.83973 3.79851 3.85918 3.91302 4.33041 4.1602 3.79942 4.15597 3.94037
4.38964 3.90139 4.11428 4.41744 4.05136 3.95735 4.07974 4.10516 3.90146
3.96328 3.92318 4.26414 3.7803 3.8125 3.76514 3.93225 3.85156 4.09955
4.2479 4.0943 4.104 3.85648 4.04958 3.94873 3.94882 4.52786 3.90872
4.0944 4.22558 3.92493 3.88275 3.74374 3.94498 3.93517 3.96739 3.89417
3.88121 4.30288 4.05715 4.37499 3.93325 4.03333 3.97526 3.91372 4.25061
4.06441 3.73089 3.72348 4.34032 3.81611 4.01409 4.33616 4.30834 4.15666
4.05081 4.14704 3.86 3.75277 4.16208 4.03177 4.02088 3.94786 4.07586
4.09508 4.17266 4.01647 3.84774 4.02035 4.10193 3.92955 4.03826 4.02606
4.06077 3.90742 3.94986 4.21931 4.16106 4.09349 4.16808 3.9713 4.00624
4.14042 3.70971 4.02142 3.94715 4.20514 4.00319 3.82023 3.79581 4.0003
3.8285 4.03283 3.96265 3.89245 3.98442 4.16922 4.21798 3.95131 4.22452
4.06208 3.84456 3.83853 4.26352 4.1103 4.25086 3.89964 4.18364 3.78555
4.14944 4.03109 4.21274 3.8307 4.0517 3.88691] (150,)
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
ou l'utilisation du module statistics de python https://docs.python.org/fr/3.7/library/statistics.html
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager