Anfängerproblem - Buchstaben aus String ausgegen...

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
djsilverado
User
Beiträge: 4
Registriert: Donnerstag 30. Dezember 2010, 12:36

Hallo liebe Python-Forum Gemeinde,

ich versuche gerade mir selber Python beizubringen, bin jedoch ziemlich schnell auf ein Hindernis gestoßen, dass für mich unüberwindbar scheint. Im Prinzip geht es um folgendes:

Code: Alles auswählen

from time import *

a = "Katze"
for i in a:
    sleep(0.5)
    print(i)
Im Prinzip macht dieses "Progrämmchen" auch was es sollte, jedoch möchte ich die einzelnen Buchstaben zeitversetzt nebeneinander ausgegenen haben und nicht untereinander. Ich habe schon diverse Sachen ausprobiert, das nächstbeste was ich erreicht habe ist, dass der Code das hier ausgegeben hat:

K
Ka
Kat

usw., jede Zeile zeitversetzt, aber das ist ja nicht das was ich haben will.

Kann mir jemand von Euch einen Tipp geben? Das würde mich wirklich riesig freuen.

Gruß und guten Rutsch Euch allen
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Für den Fall, dass das Python 3 ist: Schau dir mal den `end`-Parameter von print an.
Wenn das Python 2 ist, solltest du die Klammern weglassen und `print i,` nutzen, das nimmt als Ende ein Leerzeichen und kein Newline.

Und nochwas: Generell gilt: Sternchen-Importe sind zu vermeiden.
djsilverado
User
Beiträge: 4
Registriert: Donnerstag 30. Dezember 2010, 12:36

Hallo cofi,

vielen Dank erstmal für die rasche Antwort und Hilfestellung. Ich benutze zum lernen prinzipiell Python 3, habe aber Deine Ideen auch unter Python 2.7 versucht anzuwenden, da ich Fedora benutze und beide Versionen hier installiert habe momentan.

Es hat mich schon ein Stückchen weitergebracht, nur mit dem kleinen Problemchen, dass jetzt, wenn ich den ursprünglichen Code um Deine Eingaben modifiziere, das komplette Wort auf einmal ausgegeben wird, nur halt zeitversetzt, ok, aber ich möchte das sleep.. oder besser wohl das time.sleep(0.5) nach jedem Buchstaben haben.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja mit python3.1 kann ich es nachvollziehen. Da kommt wohl der Buffer in die Quere.

Code: Alles auswählen

import sys, time
for c in 'kater':
    time.sleep(0.5)
    print(c, end='')
    sys.stdout.flush()
djsilverado
User
Beiträge: 4
Registriert: Donnerstag 30. Dezember 2010, 12:36

Juchuuu! Danke danke danke cofi. Danke! :D
Antworten