probleme mit for-schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lemmi82
User
Beiträge: 8
Registriert: Montag 15. Januar 2007, 12:21
Wohnort: Kiel

Hallo zusammen, ich möchte in einer for-schleife bei jedem Durchlauf einen Messwert aufnehmen. Nach Ende der Schleife möchte ich alle Werte auflisten.
Bis jetzt werden zwar alle Werte einzeln bei jedem Schleifendurchgang ausgegeben, aber sie sollen eben nach Ende der Schleife auch noch aufgerufen werden können.
Wie geht das?

Code: Alles auswählen

for i in range (1, 11):
	while True:
		wert = 0
                ...
			break	
		else:	
			DAC6_offset = wert
			ADC_offset_compensation()
			feature_settings()
			schlum = instrument("GPIB::12")
			schlum.write("BEE")
			voltage = schlum.ask_for_values("TRA ON")
			schlum.write("TRA OFF")
			average = 2000 * sum(voltage) / len(voltage) # average ist der Messwert, er ist die Mittelung aus der Liste der voltage-werte
			print "Average voltage: ", average 
			print 'Neustart...'
	print "Byby."
else: 
	print "Results: " # hier soll eine Liste aller Werte folgen
Bernhard
User
Beiträge: 136
Registriert: Sonntag 15. Januar 2006, 20:31
Wohnort: Greifswald
Kontaktdaten:

Du must einfach nur bei jedem Print die Werte in einer Liste abspeichern. Dazu kannst Du vor Deiner Zeile 1 so etwas wie

Code: Alles auswählen

Werteliste=[]
schreiben.

Und hinter Deine Zeile 5 schreibst Du

Code: Alles auswählen

Werteliste.append(average)
Wenn Du PEP 8-Konform sein willst, nimmst Du statt "Werteliste" einen englischen Bezeichner. Das wird hier im Forum gerne gesehen.

An die Werte kommst Du dann mit

Code: Alles auswählen

print Werteliste[0]
print Werteliste[1]
usw.


Gruß,
Bernhard
lemmi82
User
Beiträge: 8
Registriert: Montag 15. Januar 2007, 12:21
Wohnort: Kiel

Hallo Bernhard, danke schonmal für deine Hilfe. Das mit der Liste hört sich gut an, aber müsste ich dieses

Code: Alles auswählen

Wertelite.append(average) 
nicht erst nach Zeile 15

Code: Alles auswählen

average = 2000 * sum(voltage) / len(voltage) ...
setzen? Es fügt dann den Wert zu der Liste hinzu, oder?
Wie lang darf eine solche Liste sein?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

scheint logisch, aber was logisch ist, mußt Du selber bestimmen.
Die Liste darf eigentlich "beliebig" lang sein - na irgendwann setzen Dein Betriebssystem und die Hardware Grenzen ...

@Bernhard: Was hier gerne gesehen wird ist nicht so wichtig. Wenn lemmi sicher ist, daß nie jemand der nicht die deutsche Sprache beherrscht seinen / ihren Code sieht ... bitte sehr!

Gruß,
Christian
lemmi82
User
Beiträge: 8
Registriert: Montag 15. Januar 2007, 12:21
Wohnort: Kiel

Hallo, es klappt jetzt soweit. Die Ausgabe der Werteliste machen ich wieder mit einer for-Schleife. Das spart mir Schreibarbeit. Danke!
Gruß Lemmi82
Bernhard
User
Beiträge: 136
Registriert: Sonntag 15. Januar 2006, 20:31
Wohnort: Greifswald
Kontaktdaten:

Hi!

Ja, meine Zeilennummer war natürlich ein Tippfehler - gut, dass Du es erkannt hast.

> ... sicher ist, dass nie jemand der nicht die deutsche Sprache beherrscht
> seinen / ihren Code sieht ...

Ist, wie so vieles, relativ. Man kann hier im Forum durchaus dumm angemacht werden, wegen deutscher Bezeichner, obwohl hier im Forum Deutsch weit verbeitet ist. Ich nehme aber lieber deutsche Bezeichner, weil ich mich da weniger vertippe, nicht ganz aus versehen in irgendwelche Namespaces gerate oder Funktionen überschreibe und einfach kreativer mit passenden Namen bin.

In meinem Anfängerstadium darf man ruhig davon ausgehen, dass niemanden mein Code ernsthaft interessiert. Aber vielleicht sollte man es sich ja gleich richtig angewöhnen.

Will damit jetzt keine große Diskussion lostreten - natürlich erkenne ich an, dass Konventionen gut sind.

Schönen Gruß,
Bernhard
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Das print "Results" in einen else-Block zu stecken bringt übrigens nichts, wenn nicht die for-Schleife irgendwann mit break abgebrochen werden könnte.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

hi.
ich wollte den eintrag nochmal nach vorne holen, da hier jemand schon mit einem messgerät via gpib kommuniziert und das bei mir demnächst auch ansteht.
kann mir vielleicht jemand sagen, was der threadersteller hier für ein modul verwendet hat? wäre echt klasse.
thx
Antworten