5 Kleine Programme

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

So ich habe mal 5 Kleine kommandozeilen basierte Programme geschrieben... Wobei eins ja inzwischen aus 'Hilfe benötigt: Dictonaries' forumsbekannt ist .... Naja hier mal die 5 Codes .... Das sind: ein kleiner 'Taschen'rechner, ein E-Mail-Adressenverwaltungsprogramm, ein Einkaufslistenprogramm sowie eine To-Do-Liste... Ja ich weiß der Aufbau ist überall soziemlich gleich, aber mir fiel nichts besseres ein um aus den Fehlern vom E-Mail-Adressenprogramm zu lernen (also dass ich sie nicht irgendwann noch einmal mache...) Wäre schön, wenn ihr auch noch ein bisschen was dazu sagen könntet, damit ich weiß, wie ich meine Sachen in Zukunft schöner & besser schreiben kann.... Aber nun genug Text Wink, hier sind die Codes.....

Der Taschenrechner:

Code: Alles auswählen

# Ein Taschenrechner
def menue():
    print 'Willkommen bei Ihrem Taschenrechner'
    print 'Druecken Sie die ...'
    print '1 um 2 Zahlen zu summieren'
    print '2 um die Differenz von 2 Zahlen zu bestimmen'
    print '3 um das Produkt von 2 Zahlen zu bestimmen'
    print '4 um 2 Zahlen dividieren'
    print '5 um das Programm zu beenden'
   
while True:
    menue()
    option = raw_input('Geben Sie nun eine der Zahlen ein!: ')
    if option == '1':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_summe = zahl_eins + zahl_zwei
        print 'Das Ergebnis ist %s' % ergebnis_summe
    if option == '2':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_differenz = zahl_eins - zahl_zwei
        print 'Das Ergbnis ist %s' % ergebnis_differenz
    if option == '3':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_produkt = zahl_eins * zahl_zwei
        print 'Das Ergbnis ist %s' % ergebnis_produkt
    if option == '4':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_dividieren = zahl_eins / zahl_zwei
        print 'Das Ergebnis ist %s' % ergebnis_dividieren
    if option == '5':
        print 'Auf Wiedersehn'
        break 
Zuletzt geändert von newone_XXV. am Donnerstag 29. Juni 2006, 12:19, insgesamt 1-mal geändert.
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Das E-Mail-Adressen-Programm:

Code: Alles auswählen

import cPickle as p

personendatei = 'personenliste.data' # Datei in die, die Liste nachher gespeichert werden soll.

class Person:
      '''Stellt eine Person da.'''
      def __init__(self, name, alter, position, adresse, email):
          self.name = name
          self.alter = alter
          self.position = position
          self.adresse = adresse
          self.email = email
          print 'Person %s initialisiert' % self.name

      def auskunft(self):
          '''Gibt genauere Daten über die Person aus'''
          print 'Name: "%s" Alter: "%s" Position: "%s" Adresse: "%s" Email: "%s"' %(self.name, self.alter, self.position, self.adresse, self.email)

try:
    f = file(personendatei)
    gl = p.load(f) # GL steht fuer GespeicherteListe

except:
    # 'Ab' steht für 'A'dress'b'uch
    ab = []

    f = file(personendatei, 'w')
    p.dump(ab, f)
    f.close()

    del ab # Loeschen des Adressbuches

    # Wieder einlesen des Adressbuches aus der Datei
    f = file(personendatei)
    gl = p.load(f) # GL steht fuer GespeicherteListe

def menu():
    print 'Willkommen bei Ihrem Adressbuch! Druecken Sie die ...'
    print '1 um das(komplette!) Adressbuch einzusehen'
    print '2 um einen Namen im Adressbuch zu suchen'
    print '3 um einen neuen Kontakt hizuzufuegen'
    print '4 um einen Kontakt im Adressbuch zu loeschen'
    print '5 um das Adressbuch zu speichern'
    print '6 um das Menue nocheinmal anzuzeiegen'
    print '7 um das Programm zu beenden'


menu()
while True:
    print '- - - - - - - - - - - - - - - - - - - -'
    option = raw_input('Geben Sie nun bitte eine der Zahlen ein! ')
    if option == '1':
        if len(gl) > 0:
            for item in gl:
                item.auskunft()
        else:
            print 'Das Adressbuch hat leider noch keine Eintraege'
    elif option == '2':
        item = raw_input('Geben Sie bitte den Namen ein, den Sie im Adressbuch suchen moechten: ')
        for pers in gl:
            if pers.name == item:
                pers.auskunft()
                break
        else:
            print 'Name nicht im Adressbuch! Ueberpruefen Sie ggf. die Schreibweise!'
    elif option == '3':
        neu_name = raw_input('Geben Sie den Namen des neuen Kontaktes ein: ')
        neu_alter = raw_input('Geben Sie das Alter des neuen Kontaktes ein: ')
        neu_position = raw_input('Geben Sie die Beziehung zu Ihrem neuen Kontakt ein! z.B. bester Freund: ')
        neu_adresse = raw_input('Geben Sie den Wohnort(Strasse, Ort, PLZ, und ggf. Land) an: ')
        neu_email = raw_input('Geben Sie nun die E-Mali-Adresse des Kontaktes ein: ')
        neu_name = Person(neu_name, neu_alter, neu_position, neu_adresse, neu_email)
        gl.append(neu_name)
    elif option == '4':
        item = raw_input('Geben Sie den Namen des Kontaktes ein, den Sie loeschen moechten:')
        for pers in gl:
            if pers.name == item:
                gl.remove(pers)
                print 'Kontakt aus dem Adressbuch entfernt!'
                break
        else:
            print 'Name nicht im Adressbuch! Ueberpruefen Sie ggf. die Schreibweise!'
    elif option == '5':
        f = file(personendatei, 'w')
        p.dump(gl, f)
        f.close()
        print 'Sicherung des Adressbuches erfolgreich!'
    elif option == '6':
        menu()
    elif option == '7':
        print 'Auf Wiedersehn!'
        break
    else:
        print 'Nichtgültige Eingabe! Bitte waehlen Sie erneut!'
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Die Liederliste

Code: Alles auswählen

# Ein Programm um sich zu merken welche Lieder man sich demnächst zu legen möchte
import cPickle as p
liederdatei = 'liederliste.data' # Datei in welche später die Liederliste gespeichert werden soll

class song:
    def __init__(self, name, interpret):
        self.name = name
        self.interpret = interpret
        print 'Song wurde initialisiert'
    def auskunft(self):
        print 'Interpret: "%s" Song: "%s"' %(self.interpret, self.name)
try:  # Der Versuch die Datei zu laden und ...
    f = file(liederdatei)
    gl = p.load(f)
except:  # ...falls sie noch nicht vorhanden ist, die Erstellung
    ld = [] # ld steht fuer 'L'ieder'L'iste
    f = file(liederdatei, 'w')
    p.dump(ld, f)
    f.close()
    del ld
    f = file(liederdatei)
    gl = p.load(f)

def menue():    # Das Menue
    print 'Willkommen bei Ihrer Liederliste'
    print 'Druecken Sie die ...'
    print '1 um sich die Lieder anzuschaun, die Sie eingetragen haben'
    print '2 um ein Lied in der Liste zu suchen'
    print '3 um ein Lied hinzuzufuegen'
    print '4 um ein Lied wieder aus der Liste zu entfernen'
    print '5 um die Liederliste zu speichern'
    print '6 um das Programm zu verlassen'
menue()   
while True:
    print '- - - - - - - - - - - - - - - - - - - - - -' # Aus Schoenheitsgruenden in der IDLE diese Reihe
    option = raw_input('Geben Sie nun eine der Zahlen ein: ')
    if option == '1':
        if len(gl) > 0:
            print 'Es sind %d Lieder in der Liederliste:' % len(gl)
            for lied in gl:
                lied.auskunft()
        else:
            print 'In der Liederliste befinden sich derzeit keine Lieder'
    elif option == '2':
        such_name = raw_input('Geben Sie den Namen oder den Interpreten eines Songs ein, den Sie such moechten: ')
        for lied in gl:
            if such_name == lied.name or lied.interpret:
                lied.auskunft()
            else:
                print 'Song nicht in der Liederliste!'
    elif option == '3':
        neu_lied = raw_input('Geben Sie den Namen, des Liedes ein, das Sie in die Liste aufnehmen wollen: ')
        neu_interpret = raw_input('Geben Sie den Namen des Interpreten des Songs ein: ')
        neu_lied = song(neu_lied, neu_interpret)
        gl.append(neu_lied)
    elif option == '4':
        del_name = raw_input('Geben Sie den Namen des Songs ein, den Sie aus der Liederliste entfernen moechten: ')
        for lied in gl:
            if del_name == lied.name:
                gl.remove(lied)
                print 'Lied aus der Liederliste entfernt!'
                break
            else:
                print 'Song befindet sich nicht in Liederliste'
    elif option == '5':
        f = file(liederdatei, 'w')
        p.dump(gl, f)
        f.close()
        print 'Liederliste gespeichert!'
        f = file(liederdatei)
        gl = p.load(f)
    elif option == '6':
        print 'Auf Wiedersehn'
        break
    else:
        print 'Ungueltige Eingabe! Geben Sie eine der Zahlen ein!'
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Die Einkaufsliste

Code: Alles auswählen

# Eine kleine Einkaufsliste
import cPickle as p
einkaufsdatei = 'einkaufsliste.data' # Die Daei in die die Einkauflsite immer gespeichert werden soll

try:
    f = file(einkaufsdatei)
    gl = p.load(f)

except:
    einkaufsliste = [] # Die Liste
    f = file(einkaufsdatei, 'w')
    p.dump(einkaufsliste, f)
    f.close()
    del einkaufsliste
    f = file(einkaufsdatei)
    gl = p.load(f)


def menue(): # Das Menue
    print '- - - - - - - - - - - - - - - - - - - - - - -'
    print 'Wilkommen'
    print 'Druecken Sie die ....'
    print '1 um sich die Einkaufsliste anzeigen zu lassen'
    print '2 um ein neues Produkt, das Sie kaufen wollen, hinzuzufuegen'
    print '3 um ein Produkt das Sie bereits gekauf haben zu loeschen'
    print '4 um Ihre Einkaufsliste zu speichern'
    print '5 um das Programm zu beenden'
    print '- - - - - - - - - - - - - - - - - - - - - - - '

while True:
    menue()
    option = raw_input('Ihre Wahl: ')
    if option == '1':
        if len(gl) > 0:
            print 'In der Einkaufsliste befinden sich die folgenden Dinge:'
            for item in gl:
                print item
        else:
            print 'Die Liste ist leider noch leer!'
    elif option == '2':
        neues_produkt = raw_input('Geben Sie ein Produkt ein, das Sie kaufen wollen: ')
        gl.append(neues_produkt)
        print 'Produkt hinzugefuegt!'
    elif option == '3':
        loesch_produkt = raw_input('Geben Sie ein Produkt ein, das Sie aus der Einkaufsliste entfernen möchten: ')
        while loesch_produkt in gl:
            produkt_nummer = gl.index(loesch_produkt)
            del gl[produkt_nummer]
            print 'Produkt wurde aus der Einkaufsliste entfernt'
            break
        else:
            print 'Produkt befindet sich nicht in Ihrer Einkaufsliste'
    elif option == '4':
        f = file(einkaufsdatei, 'w')
        p.dump(gl, f)
        f.close()
        del gl
        f = file(einkaufsdatei)
        gl = p.load(f)
        print 'Einkaufsliste wurde gespeichert!'
    elif option == '5':
        print 'Auf Wiedersehn'
        break
    else:
        print 'Ungueltige Eingabe! Waehlen Sie eine der vorgeschlagenen Optionen!'
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

So das schlechteste(?) zum Schluss:
Die To-Do-Liste

Code: Alles auswählen

# Eine kleine To-Do-Liste
import cPickle as p
tododatei = 'todoliste.data'

class eintrag:
    def __init__(self, topic, details, zeit, ort):
        self.topic = topic
        self.details = details
        self.zeit = zeit
        self.ort = ort

    def auskunft(self):
        '''Gibt Auskunft ueber den Eintrag'''
        print self.topic
        print self.zeit
        print self.ort
        print self.details
       
try:
    f = file(tododatei)
    gl = p.load(f) # GL steht fuer GespeicherteListe
except:
    todo= []
    f = file(tododatei, 'w')
    p.dump(todo, f)
    f.close()
    del todo
    f = file(tododatei)
    gl = p.load(f)
   
def menue(): # Das Menue
    print 'Wilkommen bei Ihrer To-Do-Liste'
    print 'Druecken Sie die ....'
    print '1 um zu sehen was auf Ihrer To-Do-Liste steht,'
    print '2 um etwas in die Liste einzutragen,'
    print '3 um etwas erledigtes zu loeschen,'
    print '4 um die To-Do-Liste zu speichern oder'
    print '5 um das Prgramm zu verlassen'

menue()

while True:   # Das eigentliche Programm
    print '- - - - - - - - - - - - - - - - -'  # Der Lesbarkeit in der Python IDLE halber ein ------ unter dem Menue
    option = raw_input('Bitte entscheiden Sie sich: ')
    if option == '1':
        if len(gl) > 0:    # Anzeigen der Eintraege
            print 'Auf Ihrer To-Do-Liste stehen die folgenden Dinge:'
            nummer = 1
            for item in gl:
                print 'Eintrag Nummer:', nummer
                item.auskunft()
                nummer = nummer + 1
        else:
            print 'Ihre To-Do-Liste enthält derzeit keine Eintraege!'
    elif option == '2':   # Hinzufuegen eines neuen Eintrages
        neu_topic = raw_input('Geben Sie ein Thema dieses Eintrages ein, wie z.B. "Besuch; Oma": ')
        neu_details = raw_input('Geben Sie nun Details zum Thema ein, wie "Mit Oma Kaffee trinken, sowie Blumen fuer ihren Balkon & Garten kaufen": ')
        neu_zeit = raw_input('Geben Sie nun den Tag und die Uhrzeit ein, wie "Mittwoch, 28.6": ')
        neu_ort = raw_input('Geben Sie nun den Ort ein wo das ganze stattfinden soll, wie "bei mir zu Hause": ')
        neu_topic = eintrag(neu_topic, neu_details, neu_zeit, neu_ort)
        gl.append(neu_topic)
    elif option == '3':
        del_name = raw_input('Geben sie das Thema des Eintrages ein welchen Sie loeschen wollen: ')
        for eintrag in gl:
            if eintrag.topic == del_name:
                gl.remove(eintrag)
                print 'Eintrag aus der To-Do-Liste entfernt'
                break
        else:
            print 'Kein Eintrag mit diesem Thema!'
    elif option == '4':  # Speichern der To-Do-Liste
        f = file(tododatei, 'w')
        p.dump(gl, f)
        f.close()
        print 'To-Do-Liste gespeichert!'
    elif option == '5':
        print 'Auf Wiedersehn!'
        break 
So das war es schon... Hoffe dann mal das Ihr da was zu sagt....
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Hi,

hab immoment nicht so viel Zeit und hab mir nur das 1.Programm angeschaut. Sieht gut aus. Aber folgende Stelle würde ich ändern:

Code: Alles auswählen

if option == '5':
        print 'Auf Wiedersehn'
        break
da würde ich sys importieren und dann das machen:

Code: Alles auswählen

if option == '5':
        print 'Auf Wiedersehn'
        sys.exit()
Somit beendet sich das Programm dann auch wirklich.Im falle, das du es mit dem Python Interpreter nutzt. :wink:
Wenn ich wieder Zeit hab, dann schau ich mir auch die anderen Programme an.

Achja und du rückst auch ganz schön weit(8 Zeichen) ein. Das macht zwar nichts und jeder sollte das so machen, wie er denkt, aber ich finde das das zu weit ist. Ich rücke immer 3 Zeichen ein. Ich finde der Code sieht dann besser aus. Aber wie gesagt musst du wissen. :lol:
mfg

Thomas :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Python Master 47 hat geschrieben:Achja und du rückst auch ganz schön weit(8 Zeichen) ein. Das macht zwar nichts und jeder sollte das so machen, wie er denkt, aber ich finde das das zu weit ist.
Warum rückt ihr nicht einfach so ein, wie alle?
Die meisten halten sich an PEP 8, den Styleguide, der von 4 Spaces spricht. Ich würde mal sagen, dass ein Großteil aller Python-Programmierer eben so einrückt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

newone_XXV. hat geschrieben: Der Taschenrechner:

Code: Alles auswählen

# Ein Taschenrechner
# ...   
while True:
    menue()
    option = raw_input('Geben Sie nun eine der Zahlen ein!: ')
    if option == '1':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_summe = zahl_eins + zahl_zwei
        print 'Das Ergebnis ist %s' % ergebnis_summe
    if option == '2':
        zahl_eins = input('Die erste Zahl, bitte: ')
        zahl_zwei = input('Die zweite Zahl, bitte: ')
        ergebnis_differenz = zahl_eins - zahl_zwei
        print 'Das Ergbnis ist %s' % ergebnis_differenz
# ...
    if option == '5':
        print 'Auf Wiedersehn'
        break 
Gute Programmierer sind faul. Wenn sich nahezu identischer Quelltext öfter wiederholt, dann sollte man versuchen daraus eine Funktion zu machen die die Unterschiede als Parameter bekommt.

Deine vier Grundrechenarten unterscheiden sich vom Quelltext her bis auf die Namen eigentlich nur durch die Operation die ausgeführt wird. Die Operatoren gibt's im `operator` Modul alle als Funktionen und da Funktionen in Python Objekte sind, kann man die auch an andere Funktionen als Argumente übergeben.

Also kann man eine Funktion schreiben die zwei Zahlen abfragt, eine Operation darauf ausführt, die als Argument übergeben wurde und dann das Ergebnis ausgibt. In der Schleife braucht man dann nur noch eine Abbildung von möglichen Benutzereingaben auf Operationen:

Code: Alles auswählen

from __future__ import division
import operator
import sys

def menue():
    print 'Willkommen bei Ihrem Taschenrechner'
    print 'Druecken Sie die ...'
    print '1 um 2 Zahlen zu summieren'
    print '2 um die Differenz von 2 Zahlen zu bestimmen'
    print '3 um das Produkt von 2 Zahlen zu bestimmen'
    print '4 um 2 Zahlen dividieren'
    print '5 um das Programm zu beenden'

def calculate(operation):
    number_one, number_two = [float(raw_input('Die %s Zahl, bitte: ' % num))
                              for num in ('erste', 'zweite')]
    print 'Das Ergebnis ist %s' % operation(number_one, number_two)

OPERATIONS = {'1': operator.add,
              '2': operator.sub,
              '3': operator.mul,
              '4': operator.div }

while True:
    menue()

    option = raw_input('Geben Sie nun eine der Zahlen ein!: ')
    
    if option == '5':
        sys.exit('Auf Wiedersehen')
    
    try:
        operation = OPERATIONS[option]
    except KeyError:
        continue
    
    calculate(operation)
Benutzeravatar
newone_XXV.
User
Beiträge: 50
Registriert: Dienstag 20. Juni 2006, 15:03
Wohnort: Direkt vor meinem PC
Kontaktdaten:

Code: Alles auswählen

from __future__ import division
import operator
import sys

def menue():
    print 'Willkommen bei Ihrem Taschenrechner'
    print 'Druecken Sie die ...'
    print '1 um 2 Zahlen zu summieren'
    print '2 um die Differenz von 2 Zahlen zu bestimmen'
    print '3 um das Produkt von 2 Zahlen zu bestimmen'
    print '4 um 2 Zahlen dividieren'
    print '5 um das Programm zu beenden'

def calculate(operation):
    number_one, number_two = [float(raw_input('Die %s Zahl, bitte: ' % num))
                              for num in ('erste', 'zweite')]
    print 'Das Ergebnis ist %s' % operation(number_one, number_two)

OPERATIONS = {'1': operator.add,
              '2': operator.sub,
              '3': operator.mul,
              '4': operator.div }

while True:
    menue()

    option = raw_input('Geben Sie nun eine der Zahlen ein!: ')
   
    if option == '5':
        sys.exit('Auf Wiedersehen')
   
    try:
        operation = OPERATIONS[option]
    except KeyError:
        continue
   
    calculate(operation)
Schwere Kost für mich..... Aber ich werde es dann mal versuchen in Zukunft es mehr so zu schreiben....... Und was ist mit den E-Mail-Adressen und so? Was kann ich da in Zukunft besser machen?
Valnar
User
Beiträge: 49
Registriert: Samstag 1. Juli 2006, 12:31
Wohnort: Trier

Also ich hab mir mal das E-Mail Programm angegugt.

Schreibfehler:

Im Menü

Code: Alles auswählen


def menu():
    print 'Willkommen bei Ihrem Adressbuch! Druecken Sie die ...'
    print '1 um das(komplette!) Adressbuch einzusehen'
    print '2 um einen Namen im Adressbuch zu suchen'
    print '3 um einen neuen Kontakt hizuzufuegen'             #Hinzuzufügen ;)
    print '4 um einen Kontakt im Adressbuch zu loeschen'
    print '5 um das Adressbuch zu speichern'
    print '6 um das Menue nocheinmal anzuzeiegen'
    print '7 um das Programm zu beenden'



Bei Neueinträge:

Code: Alles auswählen

elif option == '3':
        neu_name = raw_input('Geben Sie den Namen des neuen Kontaktes ein: ')
        neu_alter = raw_input('Geben Sie das Alter des neuen Kontaktes ein: ')
        neu_position = raw_input('Geben Sie die Beziehung zu Ihrem neuen Kontakt ein! z.B. bester Freund: ')
        neu_adresse = raw_input('Geben Sie den Wohnort(Strasse, Ort, PLZ, und ggf. Land) an: ')
        neu_email = raw_input('Geben Sie nun die E-Mali-Adresse des  adresse Kontaktes ein: ')          #Es heisst E-Mail
        neu_name = Person(neu_name, neu_alter, neu_position, neu_adresse, neu_email)
        gl.append(neu_name)
    elif option == '4':


Dann sollte noch die "Position" umbennant werden in soetwas wie "Kontaktart" o.ä.

Auch könnte man es irgendwie machen das man Nachnamen, Nicknamen und Vornamen macht.

Auch die Adresse in Strasse und Wohnort (Also 2 Spalten) ändern.


Ansonsten musst du dir nur noch ein Verlag suchen und dann kannste des Verkaufen XD
Die Schrebfehler sind absicht und dienen der Belustigung.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Am Rande:

Code: Alles auswählen

# statt
print '- - - - - - - - - - - - - - - - -'
# kürzer und flexibler:
print '- ' * 17
Wenn du mit mit dem Leerzeichen am Ende nicht leben kannst, geht dieses leichte mit-Kanonen-auf-Spatzen-Konstrukt: ;)

Code: Alles auswählen

print ' '.join('-' * 17)
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Y0Gi hat geschrieben:Am Rande:

Code: Alles auswählen

# statt
print '- - - - - - - - - - - - - - - - -'
# kürzer und flexibler:
print '- ' * 17
Wenn du mit mit dem Leerzeichen am Ende nicht leben kannst, geht dieses leichte mit-Kanonen-auf-Spatzen-Konstrukt: ;)

Code: Alles auswählen

print ' '.join('-' * 17)
Oder so:

Code: Alles auswählen

print ('- ' * 17)[:-1]
Wobei ich mir nicht sicher bin was mehr Kanone ist :D
TUFKAB – the user formerly known as blackbird
Benari
User
Beiträge: 8
Registriert: Sonntag 8. September 2019, 15:34

Hallo!

Ich finde die Python-Progs sehr schön anschaulich und gut nachvollziehbar.

Da ich mich auch schon sehr lange mit Wissensvermittlung befasse, habe
ich einen Vorschlag für Erweiterungen dieser Programme:

Wie wäre es, mehrere aufeinander aufbauende Progs zu erstellen?
1. Prog = Basisversion
2. Version davon mit einer/oder zwei Erweiterungen, wie z.B.: bei der Suchfunktion
auch nach Teilstrings zu suchen (wenn man z.B. nur Anfangszeichen
des Begriffs kennt). Oder eine phonetische Suche einzubauen, wenn man
etwa bei Meyer nicht weiß, ob es Mayer, Meier usw. ist ...
3. Version ...

Mehrere Versionen kann man vielleicht nicht im Forum darstellen, aber was
wäre mit einer ZIP-Datei, in der die weiteren Versionen herunter geladen
werden können?

Durch die Gegenüberstellung der Versionen wird dass Verstehen, wie es
zusammenhängt und wie die Syntax dafür ist prima verständlich.

Viele Grüße:

Arrist Spieß
lexikalischer Auskunftsdienst
wispor.de

wis-por@web.de
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Benari: Ui, alte Themen ausbuddeln. Aber das scheint bei Dir ja auch Beruf(ung) zu sein. 😉

Ich denke für so etwas ist das Forum weniger geeignet. Das könnte man beispielsweise ganz gut bei Github hosten, wo man sich leicht Diffs zwischen verschiedenen Versionen anschauen kann. Im Wiki zum Projekt oder in der README auf oberster Ebene kann man dazu dann noch erklärenden Text zu den Versionsunterschieden schreiben und auch Links direkt zu relevanten Diffs.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten