Je suppose que vous utilisez Python 2.
Lorsque les deux arguments sont des entiers, Python 2 utilise division de nombres entiers ce qui signifie que le résultat sera également un nombre entier. Par exemple :
print 1/2
# 0
print 5/2
# 2
Pour y remédier, il faut utiliser l'équivalent flottant ( 0.5
), ou changer l'un des arguments de la division (soit 1
ou 2
n'a pas d'importance) en un flottant, de sorte qu'il renvoie également un flottant.
print 1.0/2
# 0.5
print 1/2.0
# 0.5
print 1.0/2.0
# 0.5
Vous pourriez aussi, comme nneonneo a mentionné on met la somme directement dans la division, comme ça :
(x1+x2)/2.0
Cela donnera également le résultat souhaité.