Unsupported operand type(s) for /: 'str' and 'int' PYTHON

Résolu/Fermé
Captainbleu - Modifié le 11 nov. 2021 à 01:14
Whismeril Messages postés 18958 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mars 2024 - 11 nov. 2021 à 15:33
Bonjour,
je commence à peine en python et je dois rendre pour mes cours un programme pour calculer une moyenne facilement peu importe le nombre de notes, à titre personnel, je l'ai limité à 25, mais ce n'est pas pénalisant.

Je suis au courant que mon code n'est surement pas optimisé et comporte plein de défaut, mais je souhaite juste trouver la solution à mon problème, pas changer de code.


def moyenne (z):
a=0
b=0
c=0
d=0
e=0
f=0
g=0
h=0
i=0
j=0
k=0
l=0
m=0
n=0
o=0
p=0
q=0
r=0
s=0
t=0
u=0
v=0
w=0
x=0
y=0
if z>0:
if z>=1:
print ("Rentrez une note")
a= input()
if z>=2:
print ("Rentrez une note")
b= input()
if z>=3:
print ("Rentrez une note")
c= input()
if z>=4:
print ("Rentrez une note")
d= input()
if z>=5:
print ("Rentrez une note")
e= input()
if z>=6:
print ("Rentrez une note")
f= input()
if z>=7:
print ("Rentrez une note")
g= input()
if z>=8:
print ("Rentrez une note")
h= input()
if z>=9:
print ("Rentrez une note")
i= input()
if z>=10:
print ("Rentrez une note")
j= input()
if z>=11:
print ("Rentrez une note")
k= input()
if z>=12:
print ("Rentrez une note")
l= input()
if z>=13:
print ("Rentrez une note")
m= input()
if z>=14:
print ("Rentrez une note")
n= input()
if z>=15:
print ("Rentrez une note")
o= input()
if z>=16:
print ("Rentrez une note")
p= input()
if z>=17:
print ("Rentrez une note")
q= input()
if z>=18:
print ("Rentrez une note")
r= input()
if z>=19:
print ("Rentrez une note")
s= input()
if z>=20:
print ("Rentrez une note")
t= input()
if z>=21:
print ("Rentrez une note")
u= input()
if z>=22:
print ("Rentrez une note")
v= input()
if z>=23:
print ("Rentrez une note")
w= input()
if z>=24:
print ("Rentrez une note")
x= input()
if z>=25:
print ("Rentrez une note")
y= input()
return (a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y)/z
else :
return "Revenez quand vous aurez une moyenne à calculer :)"
A voir également:

3 réponses

Jean20B Messages postés 1751 Date d'inscription dimanche 6 avril 2014 Statut Membre Dernière intervention 25 février 2024 2 259
Modifié le 11 nov. 2021 à 09:25
Bonjour, quand vous utilisez
input()
, la note est enregistrée en tant que chaîne de caractères (string).

Pour calculer la moyenne, il faut que le type des variables a,b,c,... soit possible à calculer. Il faut que ce soit par exemple un entier (int), un nombre flottant (float, ça accepte les nombres décimaux), etc.

Par exemple, vous pouvez directement convertir l'input de string vers float en le mettant dans
float()
. Cela donne
a = float(input())
0
Captainbleu
11 nov. 2021 à 14:17
Merci, j'avais utilisé int( au départ, mais je voulais pas des nombres entier, je connaissais pas float
0
Whismeril Messages postés 18958 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mars 2024 921
11 nov. 2021 à 09:42
Bonjour

merci d'avoir essayé d'utiliser les balises de code.
Mais comme tu peux le voir le pavé gris, c'est pas ça qui est ça.

Pour la suite, merci de lire et d'appliquer ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Whismeril Messages postés 18958 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mars 2024 921
11 nov. 2021 à 15:33
Par contre l'état ton code ne répond pas à l'énoncé, puisque tu as limité à 25 la quantité de valeurs possible à moyenner.

Il y a plusieurs façons de faire pour que cette quantité ne soit pas limitée et les 2 façons les plus simples qui me viennent en tête ont en plus la faculté de largement optimiser ton code.


0