Python Zahlen, Strings Logik Scriptsprachen Python Basics Sascha Winter Lehrstuhl fuer Bioinformatik Friedrich-Schiller-Universitaet Jena [email protected] 11.08.2014 Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Python Erschien 1991, Guido van Rossum Nach Monty Python benannt Leicht erlernbare Syntax Gut lesbar Multi-Paradigmen Sprache Objektorientiert, Imperativ, Funktional Python 2 vs. Python 3 Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Python Interpretiert Automatische Speicherverwaltung Dynamisches Typensystem Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen Python i f 2==2: p r i n t ”TEST” . s t r i p ( ”T” ) # Kommentar ! else : p r i n t ”TEST” . s s t t r r i i p p ( ”T” ) Scriptsprachen Python Zahlen, Strings Logik Kontrollstrukturen Python python python python python # interaktive −c ’command ’ # w eg w er f Code FILE . py # f u e h r t FILE a u s − i FILE . py # FILE , dann i n t e r a k t i v e Scriptsprachen Python Zahlen, Strings Logik Blöcke Blocksyntax! i f 1 + 1 == 2 : print ” foo ” print ” bar ” i f 1 + 1 == 2 : print ” foo ” ; print ” bar ” Tab XOR Leerzeichen! Styleguide: Einrückung == 4 Leerzeichen Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Zahlen, Strings Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Zahlen Unendlich große ints a, b = 5, 2 a + b, a − b, a ∗ b, a / b, a % b i = 0 i += 1 a , b = 5.5 , 2.25 a + b, a − b, a ∗ b, a / b Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Strings ’ S i n g l e ’ o r ” Double q u o t e s ” p r i n t ”A v e r y l o n g s t r i n g w i t h \ a l i n e break ” A very long s t r i n g with a l i n e break p r i n t ””” Oth e r v e r y l o n g s t r i n g w i t h l i n e b r e a k ””” Other v e r y l o n g s t r i n g with l i n e break Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Strings ”Con” + ” c a t ” ” Concat ” ” T e s t ” ∗3 ” TestTestTest ” Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Strings word = ” S i m p l e T e s t ” word [ 3 ] ”m” word [ : 6 ] ” Simple ” word [ 7 : ] ” Test ” word [ : i ] + word [ i : ] == word Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Strings word = ” S i m p l e T e s t ” word [ 1 : 1 0 0 ] ” Simple Test ” word [ −1] ”t” word [ − 3 : ] ” est ” Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen Strings s . e n d s w i t h ( s u f f i x ) # A l s o w i t h s t a r t , end s . s t a r t s w i t h ( p r e f i x ) # A l s o w i t h s t a r t , end s . f i n d ( s u b s t r i n g ) # A l s o w i t h s t a r t , end Scriptsprachen Python Zahlen, Strings Logik Kontrollstrukturen Strings s . s t r i p ( [ chars ] ) # Also l s t r i p () , r s t r i p () ” testtest ” . strip ( st ) # ” estte ” s . s t r i p ( ) # Remove w i t h e s p a c e Scriptsprachen Python Zahlen, Strings Logik Kontrollstrukturen Strings s . s p l i t ( s t r i n g ) # Also l s p l i t () , r s p l i t () # maxsplits ” 1 ,2 , ,3 ” . s p l i t ( ” , ” ) # [”1” , ”2” , ”” , ”3”] ”1 2 3” . s p l i t ( ) # [ ” 1 ” , ” 2 ” , ” 3 ” ] Scriptsprachen Python Zahlen, Strings Logik Kontrollstrukturen Strings ” , ” . j o i n ( [ ”1 ” , ” 2 ” , ” 3 ” ] ) # 1 , 2 , 3 ” , ” . j o i n ( ” 1 ,2 ,3 ” . s p l i t ( ” , ” )) # 1 ,2 ,3 # j o i n i s the r e v e r s e operation of s p l i t Scriptsprachen Python Zahlen, Strings Logik Kontrollstrukturen C-style Format Strings ”%3d , %3d , %3.3 f ” % ( 1 2 7 , 8 , 1 3 . 0 2 3 6 1 3 1 ) ” 127 , 8 , 13.024 ” ” H e l l o %s ” % ” World ” #=> ” H e l l o World ” ”%d + %d < 10 ” % ( 5 , 4 ) #=> ”5 + 4 < 10” Scriptsprachen Python Zahlen, Strings Logik Logik Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen Logik <, >, ==, <=, >=, != a < b == c and , or , not FALSE : F a l s e , None , 0 , 0 . 0 , ” ” , [ ] , Scriptsprachen ... Python Zahlen, Strings Logik Logik p r i n t 0 and ”B” 0 p r i n t ”A” and F a l s e False p r i n t ”A” and ”B” B Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Logik a = s o m e S t r i n g F u n c t i o n ( ) # Might be ”” p r i n t a or ” D e f a u l t V a l u e ” Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik IF x = 4 i f x < 2: print ”x i s t e l i f x == 2 : print ”x i s t else : print ”x i s t p r i n t ” Ende d e s k l e i n e r 2” g l e i c h 2” g r o e s s e r 2” IF ” Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik WHILE a, b = 0, 1 while b < 10: print b a , b = b , a+b 1 1 2 3 5 8 Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen FOR words = [ ”Mary” , ” had ” , ” a ” , ” l i t t l e ” , ” lamb ” ] f o r word i n words : p r i n t word Mary had a little lamb Scriptsprachen Python Zahlen, Strings Logik FOR f o r i i n range ( 1 0 ) : print i range ( 5 , 1 0 ) #[ 5 , 6 , 7 , 8 , 9 ] range ( 0 , 1 0 , 2 ) #[ 0 , 2 , 4 , 6 , 8 ] Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen FOR words = [ ”Mary” , ” had ” , ” a ” , ” l i t t l e ” , ” lamb ” ] f o r i i n range ( l e n ( words ) ) : p r i n t i , words [ i ] 0 1 2 3 4 Mary had a little lamb Scriptsprachen Python Zahlen, Strings Logik Continue f o r i i n range ( 1 0 ) : i f i % 2 == 0 : continue print i 1 3 5 7 9 Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Break, Else f o r n i n range ( 3 , 1 0 ) : f o r x i n range ( 2 , n ) : i f n % x == 0 : break else : print n 3 5 7 Scriptsprachen Kontrollstrukturen Python Zahlen, Strings Logik Kontrollstrukturen Pass f o r i i n range ( 1 0 ) : i f i % 2 == 0 : pass # TODO: I m p l e m e n t t h i s l a t e r else : print i 0 2 4 6 8 Scriptsprachen Python Zahlen, Strings Logik keyword def introduces a function definition first statement may be a docstring Defining and calling a function def gcd ( a , b ) : ’ ’ ’ Euclidean algorithm ’ ’ ’ w h i l e b != 0 : t , b , a = b , a%t , t return a gcd ( 4 2 , 2 3 ) Scriptsprachen Kontrollstrukturen