lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks [2022/12/09 09:21]
Karlheinz Schubert [Was für eine Note muss ich schreiben, damit ich über einen Schnitt von x.y komme?]
lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks [2022/12/09 22:45] (current)
Karlheinz Schubert
Line 24: Line 24:
 <hidden Hinweis3> <hidden Hinweis3>
 <code python> <code python>
-c_unicode ord("c"+abc ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
-C_unicode = ord("C"+       'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
-print("Unicode von 'c' ="c_unicode) +
-print("Unicode von 'C="C_unicode)+
  
-character_65 chr(65+shift int(input("Offset: ")
-character_100 chr(220) + 
-print("Unicode 65 steht für", character_65+while True: 
-print("Unicode 100 steht für", character_100) +    quelltext input("Quelltext: ") 
-# ausserhalb des englischen Alphabeths+    if len(quelltext) == 0: 
-Ue_unicode ord("Ü"+        break 
-print("Unicode von 'Ü' =", Ue_unicode+    code = "" 
-character_220 chr(220+    for buchstabe in quelltext
-print("Unicode 220 steht für", character_220)+        index abc.index(buchstabe
 +        indexCode = index + shift 
 +        # if indexCode > len(abc) - 1: 
 +        #     indexCode -len(abc
 +        indexCode indexCode % len(abc
 +        code += abc[indexCode] 
 +    print(code)
 </code> </code>
 </hidden> </hidden>
- 
- 
 ---- ----
 <hidden Expertenaufgabe> <hidden Expertenaufgabe>
Line 59: Line 61:
   * Ergänze das Programm so, dass du nach dem Dateinamen gefragt wirst und beliebig viele Dateien nacheinander verschlüsseln kannst.   * Ergänze das Programm so, dass du nach dem Dateinamen gefragt wirst und beliebig viele Dateien nacheinander verschlüsseln kannst.
 </hidden> </hidden>
 +<hidden Hinweis3>
 +  * Möglichkeit zur Verschlüsselung von beliebigen UniCode Zeichen
 +<code python>
 +c_unicode = ord("c")
 +C_unicode = ord("C")
 +print("Unicode von 'c' =", c_unicode)
 +print("Unicode von 'C' =", C_unicode)
  
 +character_65 = chr(65) 
 +character_100 = chr(220) 
 +print("Unicode 65 steht für", character_65) 
 +print("Unicode 100 steht für", character_100) 
 +# ausserhalb des englischen Alphabeths: 
 +Ue_unicode = ord("Ü"
 +print("Unicode von 'Ü' =", Ue_unicode) 
 +character_220 = chr(220) 
 +print("Unicode 220 steht für", character_220) 
 +</code> 
 +</hidden>
 </WRAP> </WRAP>
  
Line 71: Line 90:
  
 <hidden Hinweis1> <hidden Hinweis1>
 +<code python>
 +while True:
 +    Eingabe = input('Gewünschter Schnitt: ')
 +    if len(Eingabe) == 0:
 +        break
 +    # Umwandlung der Texteingabe in eine Dezimalzahl:
 +    WunschNote = float(Eingabe)
 +</code>
 +</hidden>
 +
 +<hidden Hinweis2>
 <code python> <code python>
 Noten = [4.5, 5, 3.75, 5.5] Noten = [4.5, 5, 3.75, 5.5]
Line 86: Line 116:
     Vokabeln = [     Vokabeln = [
        "lesen","read",         "lesen","read", 
-       "Apfel","Alple",+       "Apfel","apple",
        "geben","give"        "geben","give"
     ]     ]
Line 102: Line 132:
 <hidden Hinweis2> <hidden Hinweis2>
 <code python> <code python>
-Antwort = input(f'Übersetzte "{Vokabel}": ')+Antwort = input(f'Übersetze "{Vokabel}": ')
 </code> </code>
 </hidden> </hidden>
 +----
 <hidden Expertenaufgabe1> <hidden Expertenaufgabe1>
   * Baue das Programm so um, dass du die Übersetzungsrichtung wählen kannst.   * Baue das Programm so um, dass du die Übersetzungsrichtung wählen kannst.
Line 113: Line 144:
 <hidden Expertenaufgabe2> <hidden Expertenaufgabe2>
   * Erweitere das Programm so, dass du es für mehr als zwei Sprachen verwenden kannst.    * Erweitere das Programm so, dass du es für mehr als zwei Sprachen verwenden kannst. 
 +</hidden>
 +<hidden Lösung>
 +<code python>
 +"""
 +Vokabeltrainer
 +"""
 +from random import randint
 +
 +Vokabeln = [
 +    'lesen', 'read',
 +    'Apfel', 'apple',
 +    'geben', 'give',
 +    'lächeln', 'smile',
 +    'rennen', 'run'
 +]
 +Richtige = []
 +Zaehler_richtig = 0
 +Zaehler_falsch = 0
 +while True:
 +    Mode = input('de - Deutsch -> Englisch\ned - Englisch -> Deutsch: ')
 +    if Mode == 'ed' or Mode == 'de':
 +        break
 +    print('Unbekannter Mode, versuche es noch einmal!')
 +
 +while True:
 +    index = randint(0, len(Vokabeln)//2 - 1)
 +    #print(f'{index} of {len(Vokabeln)//2 - 1}')
 +    if index in Richtige:
 +        if len(Richtige)==len(Vokabeln)//2:
 +            break
 +        continue
 +    deutsch = Vokabeln[2*index]
 +    englisch = Vokabeln[2*index+1]
 +    if Mode == 'de':
 +        Frage = deutsch
 +        Antwort = englisch
 +    else:
 +        Frage = englisch
 +        Antwort = deutsch
 +    Test = input(f'Übersetze "{Frage}" ▶ ')
 +    if len(Test) == 0:
 +        break
 +    if Antwort == Test:
 +        print('richtig')
 +        Zaehler_richtig += 1
 +        Richtige.append(index)
 +    else:
 +        print('falsch')
 +        Zaehler_falsch += 1
 +
 +print(f'Du hattest {Zaehler_richtig} richtige und {Zaehler_falsch} falsche {"Antwort" if Zaehler_falsch==1 else "Antworten"}.')
 +print('fertig')
 +
 +</code>
 </hidden> </hidden>
 </WRAP> </WRAP>
  • lehrkraefte/sbt/informatik/glf22/python/little-programming-tasks.1670574103.txt.gz
  • Last modified: 2022/12/09 09:21
  • by Karlheinz Schubert