Python , raw_inpu in Liste speichern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
schwedenmann
Beiträge: 5631
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Python , raw_inpu in Liste speichern

Beitrag von schwedenmann » 14.10.2009 11:07:22

Hallo

Blutiger Anfänger, folgendes Problem

möchte mehrere Eingaben, per raw_input in eine Liste speichern und dann falls möglich die Summe der Einträge bilden

Code
anzahl = int(raw_input("Wie viele CPU habne Sie? "))

for i in range(anzahl):
Mhz = raw_input("Bitte geben sie die Mhzzahl %d. CPU an --> " % (i+1))

liste = []
Man bei in der zeile mit anzahl die Anzhalen der vorhanden CPUs im LAN angeben
Dann wird nach der Mhzzahl jeder CPU gefragt , die man eintippe muß

Problem, wie bekomme ich diese MHz, also bei anzahl 3, 3 Fragen mit den Eingaben 500, 1000, 2000 in eine Liste.
liste.append (Mhz) schreibt nur den letzten raw_input in die Liste, wie bekomme ich alle inputs aus der in range Anweisung in die Liste ?
Und zu guter letzt, wenn die Liste dann z.B. 500, 1000, 2000 aufweist, wie kann mdie Einträge aufsummieren?

mfg
schwedenmann

Benutzeravatar
tegula
Beiträge: 440
Registriert: 04.06.2004 13:51:04
Lizenz eigener Beiträge: MIT Lizenz

Re: Python , raw_inpu in Liste speichern

Beitrag von tegula » 14.10.2009 13:12:03

Du setzt die Variabel mit jedem Schleifendurchlauf wieder auf eine leere Liste. Die Zuweisung der leeren Liste muss aus der Schleife raus.

Code: Alles auswählen

anzahl = int(raw_input("Wie viele CPU habne Sie? "))
liste = []

for i in range(anzahl):
	Mhz = raw_input("Bitte geben sie die Mhzzahl %d. CPU an --> " % (i+1))
	liste.append(Mhz)

Benutzeravatar
JaKlaRo
Beiträge: 121
Registriert: 06.03.2008 15:00:00
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Python , raw_inpu in Liste speichern

Beitrag von JaKlaRo » 14.10.2009 13:22:35

Hallo,
hier ist mal eine simple Lösung (simple in dem Sinn, dass es z.B. keine Fehlerbehandlung für falsche Eingaben gibt):

Code: Alles auswählen

#! /usr/bin/env python
# -*- coding: utf-8 -*-

liste = []
summe = 0

anzahl = int(raw_input("Wie viele CPUs haben Sie? "))

for i in range(anzahl):
    print "Bitte geben Sie die Mhzzahl der %d. CPU an: " %(i + 1)
    mhz = int(raw_input())
    liste.append(mhz) 

print liste

for i in liste:
    summe += i

print summe
Zum Lernen von Python arbeite folgendes durch: http://abop-german.berlios.de/

Viel Spaß
JaKLaRo

Methusalix

Re: Python , raw_inpu in Liste speichern

Beitrag von Methusalix » 14.10.2009 23:47:59

Hallo,

Code: Alles auswählen

>>>help(raw_input)
raw_input(...)
    raw_input([prompt]) -> string
    Read a string from standard input.... 
Da ist nichts mit Summenbildung. Deshalb der Hinweis von JaKlaRo mit:

Code: Alles auswählen

int(raw_input())
Es müssen nicht immer Schleifen benutzt werden:

Code: Alles auswählen

for i in liste:
    summe += i
kann durch:

Code: Alles auswählen

>>> l=[1000, 2000]
>>> sum(l)
3000 
(also die mittlere Zeile) ersetzt werden.
Wenn Du Dich weiter und vertieft mit Python beschäftigen möchtest ist ein regelmäßiger
Besuch hier: http://www.python-forum.de hilfreich.
Gruß Matthias

Antworten