Python Programm schreiben?

2 Antworten

Moin,

das sind relative grundlegende Pythonkenntnisse, die da abgefragt werden. Dazu gibt es zahlreiche Videos im Internet.

Ich denke mal der Code sollte ungefähr so aussehen:

dna = ""

while True:
# Fragt den Nutzer wie lang die DNA ist, formt die Eingabe zu einem Int um
  try:
      dna_len = int(input("Wie lang ist die DNA-Sequenz? "))
      break
  except:
      print("Ungültige Angabe!")

# Wenn noch geprüft werden soll, ob das eine gültige Base ist...
valid_bases = ["A", "C", "T", "G"]

for _ in range(dna_len):
  base = input("Base: ")

  if base not in valid_bases:
      print("Ungültige Base!")
      break

  dna += base # Fügt die angegebene Base an den string "dna"

print("DNA " + dna)

Du kannst wie folgt vorgehen:

1) Zunächst deklarierst Du eine leere Stringvariable mit dem Namen dna:

dna = ""

2) Anschließend wird der Benutzer mittels der input()-Funktion gefragt, aus wie vielen Basen die DNA-Sequenz besteht. Da Eingaben über input() immer im Stringformat sind, muss die Eingabe mithilfe von int() in einen Integer bzw. eine Zahl umgewandelt werden und wird in der Variable dna_laenge gespeichert.

dna_laenge = int(input("Wie lang ist die DNA-Sequenz? "))

3) Nun wird eine for-Schleife definiert. Wenn dna_laenge = 5, wird die Schleife 5-mal ausgeführt. range(dna_laenge) gibt dann eine Zahlenfolge mit 5 Zahlen ab 0 aus, d. h. die Schleife zählt von 0 bis 4. Die aktuelle Zahl steht in der Variable nummer:

for nummer in range(dna_laenge):

4) Innerhalb der Schleife werden vom Benutzer wieder mit input() die einzelnen DNA-Basen abgefragt. Die Eingaben werden an der Stringvariable dna angehängt:

dna = dna + input("Base: ")

Die Eingabe kann auch mit dem Operator += angehängt werden:

dna += input("Base: ")

5) Zuletzt wird dem Benutzer die DNA-Sequenz mittels print() ausgegeben:

print("DNA " + dna)

Der fertige Code sieht also folgendermaßen aus:

dna = ""
dna_laenge = int(input("Wie lang ist die DNA-Sequenz? "))

for nummer in range(dna_laenge):
    dna += input("Base: ")

print("DNA " + dna)

Ergänzend dazu kann man auch überprüfen, ob die Benutzereingaben gültig sind:

while True:
    try:
        dna_laenge = int(input("Wie lang ist die DNA-Sequenz? "))
        break
    except:
        print("Ungültige Eingabe!")

while True definiert eine Endlosschleife. Sie wird so oft wiederholt, bis die Nutzereingabe gültig ist. Unter try steht, was ausgefüht werden soll. Gibt der Benutzer keine (gültige) Zahl ein, schlägt die int()-Funktion fehl und es wird die unter except Fehlermeldung ausgegeben. Mit break wird die while-Schleife beendet, sobald eine gültige Eingabe gemacht wurde.

for nummer in range(dna_laenge):
    while True:
        dna_base = input("Base: ")
        if dna_base in ["A", "G", "C", "T"]:
            dna += dna_base
            break
        else:
            print("Ungültige Eingabe!")

Auch hier wird der Code innerhalb der while True-Schleife wiederholt, solange die Eingabe ungültig ist. Wenn dna_base entweder A, G, C oder T ist, ist die Eingabe gültig und while-Schleife wird verlassen, ansonsten wird eine Fehlermeldung ausgegeben.