Forum / Grundlagen des Programmierens / 1. ProbeKolloquium

1. ProbeKolloquium

Lösung des ersten Probe Kolloquium:

def grossklein(meinString):
    rueckgabe = ""
    for i in range(len(meinString)):
        if i % 2 == 0:
            rueckgabe = rueckgabe + meinString[i].lower()
        else:
            rueckgabe = rueckgabe + meinString[i].upper()
    return rueckgabe
    
def prod(zahl1, zahl2):
    produkt = zahl1 * zahl2
    return produkt

if __name__ == "__main__":
    eingabe = raw_input("Bitte geben Sie einen Text ein:")
    verbesserterText = grossklein(eingabe)
    print verbesserterText
    
    eingabeZahl1 = int(raw_input("Bitte geben Sie die Erste Zahl ein:"))
    eingabeZahl2 = int(raw_input("Bitte geben Sie die Zweite Zahl ein:"))
    produkt = prod(eingabeZahl1, eingabeZahl2)
    print produkt, " : ) das war ja leicht"
\n~~~
thomas ±0

Diesselbe Lösung nur schlanker:

def grossklein(meinString):
    rueckgabe = ""
    for i in range(len(meinString)):
        if i % 2 == 0:
            rueckgabe = rueckgabe + meinString[i].lower()
        else:
            rueckgabe = rueckgabe + meinString[i].upper()
    return rueckgabe
    
def prod(zahl1, zahl2):
    produkt = zahl1 * zahl2
    return produkt

if __name__ == "__main__":
    print grossklein(raw_input("Bitte geben Sie einen Text ein:"))
    
    print prod(int(raw_input("Bitte geben Sie die Erste Zahl ein:")), int(raw_input("Bitte geben Sie die Zweite Zahl ein:")))
\n~~~
thomas +1

Es geht noch schlanker

def grossklein(meinString):
    rueckgabe = ""
    for i in range(len(meinString)):
        if i % 2 == 0:
            rueckgabe = rueckgabe + meinString[i].lower()
        else:
            rueckgabe = rueckgabe + meinString[i].upper()
    return rueckgabe
    
def prod(zahl1, zahl2):
    return zahl1 * zahl2

if __name__ == "__main__":
    print grossklein("ein Text der nachher komisch aussieht") + " : )"
    
    print prod(2, 7)
\n~~~
Michael ±0

ich weiß, es ist etwas spät danach zu fragen.. ich war im Ausland und hab daher keinen Versuch im Probekolloquium machen können..

könnte mir jemand die Aufgabenstellung (sinngemäß ausreichend) für eure geschriebenen Skripte ergänzen ? Danke und viel Glück morgen =)

Niki +4
Angabe

Erstellenn Sie ein Python File (z.b. e1326732.py) welches zwei Funktion mit folgenden Anforderungen enthaelt:

  1. Schreiben Sie eine Funktion "kleingross", die als Parameter einen String "meinstring" erhaelt. Es soll ein String retourniert werden, in dem die Buchstaben aus "meinstring" abwechselnd gross und klein geschrieben werden, beginnend mit einem Kleinbuchstaben. Die Ordnung der Buchstaben im String wird nicht veraendert. Funktion Name: kleingross Parameter: String Rueckgabewert: String

  2. Schreiben Sie eine Funktion, die zwei Ganzzahlen als Parameter annimmt und deren Produkt retourniert. Funktion Name: prod Parameter:

  3. int

  4. int Rueckgabewert: int

Paula ±0

ich hätte eine frage, wofür ist das if name == "main": ? bei mir funktioniert es auch ohne

thomas ±0

Damit weiß Python mit welcher Zeile gestartet werden soll. Zum Beispiel

def Fkt1() return 1

def Fkt2() return 2

if name == "main": print Fkt1() print Fkt2()

Hier startet Python mit der Zeile print Fkt1() und macht dann print Fkt2()

thomas +1

Wenn du das if __name=="main":

weglässt, dann ist nicht ganz klar in welcher Zeile Python startet. Aber für den Test ist das nicht so wichtig. Am besten ist, du lässt es weg. und schreibst deinen code nach folgendem Schema:

<1. Funktion>

<2. Funktion>

<Code zum Testen der Funktionen>

Wenn es nicht da ist, startet Python mit der Zeile code als erstes wo keine funktion steht.

thomas +2

Zusammenfassend: in unseren Beispielen macht es oft keinen Unterschied ob man es stehen hat oder nicht. Später mal wirds sehr wohl wichtig. Also jetzt am besten weglassen und sich nach dem Test gedanken darüber machen.

Marcus ±0

jedes python file startet IMMER in zeile 1 und läuft zeilenweise durch. dabei wird der block nach "if name == 'main' " nur durchlaufen, wenn der namespace main ist. das ist in etwa vergleichbar mit einem include-guard in c(++)

Sorry, die Kommentarfunktion ist geschlossen.