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

Résolu
Captainbleu - Modifié le 11 nov. 2021 à 01:14
Whismeril
Messages postés
17686
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
- 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 :)"

3 réponses

Jean20B
Messages postés
1615
Date d'inscription
dimanche 6 avril 2014
Statut
Membre
Dernière intervention
16 août 2022
2 061
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
17686
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
849
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
17686
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
849
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