3.Befehle: Difference between revisions

From Bioinformatik Wiki
No edit summary
Line 31: Line 31:


  #Befehl
  #Befehl
  type()
  type()<br>
 
  #Beispiel_1:  
  #Beispiel_1:  
  a="abc"
  a="abc"
d=True
  print(type(a))
  print(type(a))
  print(type(1))
  print(type(1))
  print(type(1.0)
  print(type(1.0)
d=True
  print(type(d))
  print(type(d))
   
   
Line 59: Line 58:
* auch hier ist der print Befehl wieder notwendig um das Ergebnis ausgeben zu lassen  
* auch hier ist der print Befehl wieder notwendig um das Ergebnis ausgeben zu lassen  
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Console ausgegeben
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Console ausgegeben


== ''input'' -Befehl ==
== ''input'' -Befehl ==

Revision as of 12:37, 1 August 2021

print-Befehl

#Befehl: 
print()

#Beispiel: 
print(“hello“)

output

hello 

Funktion

  • der entsprechende Inhalt des print-Befehls wird in der Console ausgegeben

Syntax

  • die runden Klammern dienen dazu den Anfang und das Ende der Ausgabe zu markieren
  • Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden
  • geschieht das nicht wird ein Syntaxfehler angezeigt (s.Beispiel_2)
  • int und floats werden ohne Anführungszeichen eingegeben
#Beipsiel_2:
print(falsch)

output

NameError: name 'falsch' is not defined
  • Python geht davon aus das es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert


type-Befehl

#Befehl
type()
#Beispiel_1: a="abc" d=True print(type(a)) print(type(1)) print(type(1.0) print(type(d)) buch_1={"Buch":"Der Herr der Ringe", "Autor":"Tolkien", "Preis":45} print(type(buch_1))

output

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'dict'>

Funktion

  • mit dem type-Befehl lässt sich der Datentyp bestimmen

Syntax

  • um den Datentyp zu bestimmen wird dieser in die Klammern des type-Befehls geschrieben
  • dabei kann es sich direkt um den Datentyp handeln oder einen Varibalennamen
  • auch hier ist der print Befehl wieder notwendig um das Ergebnis ausgeben zu lassen
  • ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Console ausgegeben

input -Befehl

#Befehl:
eingabe=input()

#Beispiel: 
zahl=input()
print(zahl)

output

3 #eingegebene Zahl des Nutzers im Eingabefeld  
3 #durch print-Befehl ausgegebene Zahl

Funktionen

  • ermöglicht dem Nutzer die Interaktion mit dem Programm
  • so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen
  • gleichzeitig handelt es sich beim input-Befehl auch um ein print-Befehl, dazu muss der

Syntax

  • nach den Ausdruck "input" folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Console erzeugt
  • gleichzeitig handelt es sich beim input-Befehl auch um ein print-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)
#Beispiel_2:
zahl=input("Gib hier diene Zahl ein: ")

print(zahl)

output

Gib hier deine Zahl ein: 3
3
  • die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.:
eingabe=input()
  • da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden
  • s. Beispiel_3, bei der die Rechenoperation „*2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält
  • der Wert der Variablen wird also erst festgelegt, während das Programm läuft
  • in der Console entsteht durch den input-Befehl ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintrage kann
  • ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert
  • in Bespiel_3 wird die 3 in string-Form abgespeichert
  • die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings
#Beispiel_3: 
zahl=input("Gib hier diene Zahl ein: ")
ergebnis= zahl*2
print(ergebnis)

output

Gib hier deine Zahl ein: 3
33
  • der string 3 wird wiederholt und es kommt 33 statt 6 heraus
  • Lösung: man kann den Datentyp des "inputs" vorab definieren:
int(input()) , float(input())
  • weiß man vorab nicht um welchen Datentypen es sich handelt ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float)
  • hier ist allerdings zu beachten, dass ein string wieder in Anführungszeichen gesetzt werden muss
#Beispiel_4: 
zahl=eval(input("Gib hier diene Zahl ein: "))
ergebnis= zahl*2
print(ergebnis)

output

Gib hier deine Zahl ein: 3
6
#oder 
Gib hier deine Zahl ein: 2.4
4.8
#oder 
Gib hier deine Zahl ein: "a"
aa


while-Schleife

#Befehl
while Bedingung:
    Operation() 
#Beispiel:
n=1
while n<10: 
    print(n)
    n=n+1

output

1
2
3
4
5
6
7
8
9

Funktion

  • bestimmte Operationen werden automatisch wiederholt
  • erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen

Syntax

  • die Schleife wird mit dem Ausdruck "while" begonnen
  • darauf folgt eine Bedingung, die überprüft wird (z.B. n<10) gefolgt von einem Doppelpunkt
  • in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen
  • die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code eingerückt ist
  • die while-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung darf irgendwann nicht mehr zutreffen
  • --> ansonsten kommt es zu einer endlosen Schleife

Ablauf der Schleife

  • am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1:
  • ersten Zeile: der Variablen n wir der Wert 1 zugeordnet
  • zweite Zeile: so lange n kleiner als 10 ist werden folgende Operationen durchgeführt
  • (hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)
  • dritte Zeile: gebe den Wert von n aus
  • (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1)
  • vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst
  • (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2)
  • sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung
  • so wird der Wert n immer größer
  • erst wenn n=10, trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt
  • finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt
flowchart while-Schleife

for- Schleife

#Befehl: 
for element in sammlung: 
	befehl()

#Beispiel_1:
liste=[“Python”, 1, 4.5, True]

for element in liste: 
	print(element)

output

Python
1
4.5
True

Funktion

  • erlaubt wie die ‘‘while‘‘- Schleife die automatische Wiederholung von Befehlen
  • bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (die Funktionen der for-schleife wären zwar auch mit einer while schleifen lösbar, sind aber mit for schleifen deutlich einfacher zu lösen)
  • die for- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries
  • sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll

Syntax

  • nach den Ausdruck "for" kommt der Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz
  • beim input-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren
  • so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden
  • das gleiche Prinzip gilt auch für die Variable der "for"-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)
  • im Beispiel_1 steht die Variable "element" für die Elemente der Liste namens "liste"
  • die Variable "element" steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig
  • im ersten Durchlauf der Schleife steht sie für das erste Element der Liste ("Python"), nun werden die Befehle der Schleife ausgeführt:
  • print(element) wird im ersten Durchlauf also zu print("Python")
  • im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.
  • der darauf folgende Ausdruck "in" dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll
  • dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt
  • die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code eingerückt ist

Ablauf der Schleife

  • es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann
  • trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht
  • gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab
  • somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)
flowchart for-Schleife