2016-06-13 8 views
0

Ich bin ein totaler Neuling auf Python und ich möchte den arithmetischen Durchschnitt berechnen.Einfaches arithmetisches Mittel in Python

Ich bin mir bewusst, dass solche Code meine Probleme lösen, aber das ist nicht genau das, was ich suche.

Ich möchte der Benutzer in der Lage sein, die Anzahl der Ausdrücke des arithmetischen Durchschnitts einzugeben, und ich möchte, dass er in der Lage ist, sie separat in verschiedenen Zeilen zu tippen. Also dachte ich, das Richtige wäre For Loop. Ich kam mit etwas wie folgt aus:

n = input('Number of terms') 

for i in range (1,int(n)+1): 

    a=input('Term number '+str(int(i))+': ') 

Ich weiß, dass alles, was ich weiß, tun müssen, ist, einen Weg zu finden, alle Werte eines auf jeder Schleife eingegeben zu summieren und teilen diese Zahl durch int(n) aber ich habe keine Ahnung, wie geht das.

Können Sie mir dabei helfen?

Danke allen!

+0

Wenn Sie Python 3 verwenden, gibt 'input' eine Zeichenfolge zurück. Keine Ganzzahl (oder Gleitkommazahl). Wenn Sie stattdessen Python 2 verwenden, sollten Sie nicht 'input', sondern' raw_input' verwenden. – Evert

+0

Da Sie eine _Sequenz_ von Werten speichern möchten, ist es natürlich, eine Art von _sequence_ type zu verwenden, was ist mit ['list'] (https://docs.python.org/3/tutorial/datastructures.html#more-on -listen) –

+0

Evert, ich benutze Python 3. Und Rogalski, ich bin nicht sicher, wie man Listen richtig verwendet, also habe ich versucht, dieses mit nur dem grundlegenden Wissen zu lösen, das ich habe. hehe – Lucianowz

Antwort

1
n = input('Number of terms') 
acc = 0 
for i in range(1,int(n)+1): 
    a=input('Term number '+str(int(i))+': ') 
    acc += float(a) 
print('The average is ',acc/int(n)) 

Die Idee ist, einen Akkumulator variable acc an denen die eingegebenen Zahlen hinzugefügt werden, zu erstellen. Nach der Schleife acc ist gleich der Summe aller eingegebenen Zahlen. Teile es durch die Anzahl der Terme und du erhältst den arithmetischen Durchschnitt.

+0

Ist es nicht Wort für Wort dasselbe wie meine Antwort? – SvbZ3r0

+0

Oh, ich verstehe! Ich hatte ein Problem mit dieser Akkumulatorvariablen. Ich werde mehr darüber lesen. Ich denke, das Problem wurde gelöst, haha. Vielen Dank :) – Lucianowz

0

Versuchen:

n = int(input('Number of terms')) 
sum = 0 
for i in range (1,n+1): 
    a=int(input('Term number '+str(i)+': ')) 
    sum += a 
avg = sum/n 
+0

habe ich versucht, den Code, aber ich habe diese Fehlermeldung: "Linie 8, in a * = a Typeerror: kann nicht multiplizieren Sequenz von nicht-int vom Typ 'str'" – Lucianowz

+1

'a' ist eine "int". Wir interpretieren es explizit als "int" in 'a = int (Eingabe ('Term number' + str (i) + ':'))'. Bist du sicher, dass du es gewirkt hast? – SvbZ3r0

+0

Ja, habe ich getan. Ich ctrl + c ctrl + v was deine Antwort. Ich benutze Python 3 BTW. – Lucianowz