Seite 1 von 1

String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 10:27
von Python-Nichtskönner
Hallo Leute,

ich möchte einen zufallsgenerierten String erzeugen der

1. 100000 Kombinationen aus den Buchstaben A,B,C,D erstellt, allerdings immer nur 4 Buchstaben nebeneinander stehen
2. Ich möchte die Kombination dauerhaft speichern

z.B. sowas: AABC ACDA BBBB CBDA ...

3. Zusätzlich möchte ich in einem 2. Programm auf der Basis des ersten Programms eine Kombination speichern, bei der drei gleiche Kombinationen nebeneinander stehen

also z.B.: ..., ABCD , ABCD , ABCD , .... , CCDA , CCDA , CCDA , ....


Könnt ihr mir helfen wie ich das anstelle. Keine Sonderzeichen!
Danke schonmal im voraus

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 10:49
von Jankie
Also möchtest du einfach 100.000x irgendeine Kombination aus ABCD haben? Das würde ich mit random.sample machen. Oder random.shuffle funktioniert auch. Den Rest der Aufgabe verstehe ich nicht.

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 10:56
von Sirius3
Und wo hast Du dabei in konkretes Problem? Zufallszeichen kann man sich mit dem random-Modul würfeln lassen, alles andere ist schon in der Grundausstattung dabei: for-Schleifen, Stringmanipulation, Ausgabe in eine Datei. Wenn Dir eines der Stichworte nichts sagt, dann lies das Kapitel in den Materialien nach, die Du zum Lernen von Python benutzt.

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 11:15
von Python-Nichtskönner
Also ich erkläre die Aufgabe nochmal:

Ich möchte einen Python einen String mit 100000 Kombinationen die aus einer zufälligen Kombination der Buchstaben A, B, C, D bestehen!
Bsp. ABDC ACDD AAAA

Wie erzeugt man den Code?
Wie kann ich diese Kombinationen dauerhaft speichern?

Zusätzlich will ich in einem zweiten Programm nur einen bestimmten Code speichern, bei dem mindestens einmal drei gleiche Kombinationen nebeneinander stehen. Also ...,ABBA, ABBA, ABBA, ...

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 11:18
von Python-Nichtskönner
Sirius3 hat geschrieben: Donnerstag 30. April 2020, 10:56 Und wo hast Du dabei in konkretes Problem? Zufallszeichen kann man sich mit dem random-Modul würfeln lassen, alles andere ist schon in der Grundausstattung dabei: for-Schleifen, Stringmanipulation, Ausgabe in eine Datei. Wenn Dir eines der Stichworte nichts sagt, dann lies das Kapitel in den Materialien nach, die Du zum Lernen von Python benutzt.
Ich weiß nicht wie ich das alles zusammen machen soll. Könntest du mir vielleicht ein Beispiel schicken?

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 11:23
von __deets__
Zeig uns was du hast, und wir erklaeren dir Fehler und geben Hinweise. Einfach auf fertigen Code hoffen wird eher nicht passieren.

Re: String erstellen und speichern

Verfasst: Donnerstag 30. April 2020, 11:56
von __blackjack__
@Python-Nichtskönner: Zerlege Dein Problem in kleinere Teilprobleme. Und die wieder in Teilprobleme, solange bis Du Teilprobleme hast die man mit einer Funktion mit wenigen Zeilen Code lösen kann. Das machst Du dann und testet die jeweilige Teillösung. Wenn sie funktioniert, gehe zur nächsten Teillösung über. Am Ende hast Du dann das Gesamtproblem gelöst.

Ein Teilproblem ist offensichtlich eine Zeichenkette mit vier Zeichen aus der Zeichenmenge "A", "B", "C", "D" zu bilden. Wenn Du das mit einer Funktion gelöst hast, kannst Du die 100.000 mal aufrufen und die Ergebnisse in einer Liste sammeln. Und hast damit das zweite, etwas grössere Teilproblem gelöst 100.000 solcher Zeichenketten zu erzeugen. Dann kommt das dritte Teilproblem die Zeichenketten in der Liste in eine Textdatei zu speichern. Und schon ist das Gesamtproblem gelöst.

An Modulen aus der Standardbibliothek sind hier das `random`-Modul und `pathlib` hilfreich, und man muss sich ein bisschen mit Zeichenketten und Listen auseinandersetzen.

Edit: Spasseshalber mal in JavaScript:

Code: Alles auswählen

#!/usr/bin/env node
'use strict';
let fs = require('fs');


function createRandomString(alphabet, length) {
  let result = [];
  for (let i = 0; i < length; i++) {
    result.push(alphabet[Math.floor(Math.random() * alphabet.length)]);
  }
  return result.join('');
}


function createRandomStrings(alphabet, length, count) {
  let result = [];
  for (let i = 0; i < count; i++) {
    result.push(createRandomString(alphabet, length));
  }
  return result;
}


function save(filename, strings) {
  fs.writeFileSync(filename, strings.join(' ') + '\n');
}


function main() {
  save('test.txt', createRandomStrings('ABCD', 4, 100000));
}


if (require.main === module) main();

Re: String erstellen und speichern

Verfasst: Montag 4. Mai 2020, 07:16
von Jankie
Die einfachste Möglichkeit wäre meiner Meinung nach erstmal die Buchstaben A, B, C und D in eine Liste zu packen. Wenn du die dann in einer Liste hast, dann kannst du die Liste zufällig durchmischen. Am Ende musst du eigentlich nur noch aus der durchgemischten Liste wieder einen String erstellen und das ganze dann halt 100000x machen.

Um die Kombinationen zu erstellen brauchst du:

Eine for Schleife (um die gewünschten Aktionen 100000x auszuführen)
random.shuffle() (um die Liste zu durchmischen)
string.join() (um aus der Liste wieder einen String zu machen)
list() (Um aus dem String eine Liste zu machen)

Den Rest solltest du mit ein bisschen Eigeninitiative und einer Suchmaschine deiner Wahl schon schaffen.

Re: String erstellen und speichern

Verfasst: Montag 4. Mai 2020, 07:35
von Sirius3
@Jankie: da Buchstaben mehrfach vorkommen dürfen (ABBA) reicht shuffle nicht. Das Erzeugen der Buchstabenkombinationen hat der TE in einem anderen Beitrag ja auch schon hinbekommen.

Re: String erstellen und speichern

Verfasst: Montag 4. Mai 2020, 19:28
von LeSchakal
Geh das Problem doch einfach schrittweise an!

Als erstes könntest du versuchen, eine einzelne zufällige Kombinationen aus den Buchstaben A,B,C,D zu erzeugen.