zufall!

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.
Benutzeravatar
Basti91
User
Beiträge: 53
Registriert: Samstag 15. Dezember 2007, 11:50
Wohnort: Saarland

zufall!

Beitragvon Basti91 » Montag 15. September 2008, 14:44

Hi hab als Hausaufgabe folgende aufgabe:

2) Verschlüsselung:
Schreibe eine Funktion „Verstecke“ mit 2 Argumenten „s“ und „n“, die einen Klartext auf folgende Weise unleserlich macht:
a) Die Zeichenkette wird in Großbuchstaben umgewandelt.
b) Hinter diese Zeichen werden n zufällige Großbuchstaben eingefügt.
c) Das Argument ist optional. Defaultwert: n=1
Eine Entschlüsselung soll auch enthalten sein!

nun hab ich ein problem bei der b) nämlich bei dem Wörtchen "zufällig"
hab schon ein paar wörter wie "random" ausprobiert aber niochts hat funktioniert. hat jemand ne idee wie man das in Python "dem Zufall überlässt". Ich dneke mal ich muss ne Liste mit allen Buchstaben machn und dann iwie zufällig auf diese zugreifen.
DasIch
User
Beiträge: 2405
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Montag 15. September 2008, 14:47

Schau dir mal die Module random und string an.
Benutzeravatar
Basti91
User
Beiträge: 53
Registriert: Samstag 15. Dezember 2007, 11:50
Wohnort: Saarland

Beitragvon Basti91 » Montag 15. September 2008, 14:51

wo sol ich mir die anschauen gibts da beschreibungen :oops:
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

Beitragvon Lonestar » Montag 15. September 2008, 14:54

Basti91 hat geschrieben:wo sol ich mir die anschauen gibts da beschreibungen :oops:


ja gibt es:

einfach suchen
Benutzeravatar
Basti91
User
Beiträge: 53
Registriert: Samstag 15. Dezember 2007, 11:50
Wohnort: Saarland

Beitragvon Basti91 » Montag 15. September 2008, 15:03

hab jetzt ein bisschen rumexprimentiert aber iwie will das nicht funzen weil er mir immer ausgibt das es den befel "random()" nicht gibt.



[code=]>>> Alphabeth= ["A","B","C","D","E","F","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
>>> random(Alphabeth)

Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
random(Alphabeth)
NameError: name 'random' is not defined[/code]
DasIch
User
Beiträge: 2405
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Montag 15. September 2008, 15:10

n4p
User
Beiträge: 55
Registriert: Dienstag 10. Juni 2008, 11:05

Beitragvon n4p » Montag 15. September 2008, 15:11

Du hast ihn wohl nicht importiert?!

Probiers mal so und lies noch ein bisschen Tutorial nebenher.

Code: Alles auswählen

import random

random.choice(Alphabeth)
BlackJack

Beitragvon BlackJack » Montag 15. September 2008, 16:21

Ich konnte nicht widerstehen. :-)

Code: Alles auswählen

from itertools import islice
from random import choice
from string import ascii_uppercase


def iter_random_uppercase():
    while True:
        yield choice(ascii_uppercase)


def encode(text, n=1):
    random_uppercase = iter_random_uppercase()
    for character in (c.upper() for c in text):
        yield character
        for character in islice(random_uppercase, n):
            yield character


def decode(text, n=1):
    return islice(text, None, None, n + 1)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Montag 15. September 2008, 16:36

Da wird der Lehrer bestimmt ganz aus dem Häuschen sein ... :lol:
Benutzeravatar
Basti91
User
Beiträge: 53
Registriert: Samstag 15. Dezember 2007, 11:50
Wohnort: Saarland

Beitragvon Basti91 » Montag 15. September 2008, 16:55

was bewirkt denn das yield und das islice ...sry aber hab ich noch nie gesehen
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 15. September 2008, 17:00

Wirf doch einen Blick in die Dokumentation. Dann sparst du auch gleich das Raten von irgendwelchen Befehlen. Den Vorschlag von BlackJack solltest du nicht allzu ernst nehmen ;-) . Mit den Dir bekannten Mitteln bekommst du es sicher auch hin.

Edit: Typo-Tag :lol:! War ja echt grausam :roll:
Zuletzt geändert von EyDu am Montag 15. September 2008, 21:01, insgesamt 2-mal geändert.
DasIch
User
Beiträge: 2405
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Montag 15. September 2008, 17:14

Basti91 hat geschrieben:was bewirkt denn das yield und das islice ...sry aber hab ich noch nie gesehen

Wenn yield aufgerufen wird, wird der Wert "return"ed und die funktion(generator) angehalten. Man kann den nächsten Wert dann mit .next() bekommen.

islice liefert ein slice Object über das man iterieren kann. Du kennst vielleicht ["foo", "bar"][0:2] um bestimmte Elemente aus Sequenzen zu bekommen, im Prinzip ist dass das gleiche.
Benutzeravatar
Basti91
User
Beiträge: 53
Registriert: Samstag 15. Dezember 2007, 11:50
Wohnort: Saarland

Beitragvon Basti91 » Montag 15. September 2008, 17:38

danke für die infos
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Beitragvon name » Montag 15. September 2008, 17:40

Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 15. September 2008, 18:45

Ist denn heute Typo-Tag? Erst les ich Schwirigkeiten bei Python und dann kommen hier "Befhele". Heute haben es wohl einige erst genommen, noch mehr Tippfehler zu machen als ich normalerweise 8)

Letzten Endes kann man natürlich auch BlackJacks Lösung nehmen, sofern man weiß wie sie geht und dem Lehrer auf Anfrage auch erklären und modifizieren kann (falls er glaubt dass man die Erklärung auswendig kann). Allerdings ist es wohl einfacher, das Problem selbst zu lösen, dann gibt es auch keine Verdachtsmomente.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder