Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet
Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1
Velkommen
Hvem er vi Steffen Berg Klenow Jonas Bamse Andersen 23 a r 23 a r Datalogi 7. semester Datalogi 7. semester Fritid: Foto og cykling Fritid: FDF og gaming 2
Kursets Opbygning To moduler pr dag, pause/frokost imellem modulerne Et modul består af: Introduktion Opgaver Learn by doing. Tag små pauser når I har brug for det. Husk at stille spørgsmål! 3
Hjemmeside Kurset har en hjemmeside: https://imada.sdu.dk/~sklen15/python/ Her findes slides, opgaver og eventuelle tips og tricks. 4
Software Python og en tekst-editor skal installeres. Python 3.7 Editor/IDE: Sublime, Visual Studio Code, Pycharm... 5
Installation af python 1. Download python installationsfilen https://www.python.org/downloads/release/python-370. Vælg mellem windows/linux/mac. 2. Kør den downloadede installationsfil. 3. Tjek at python er installeret rigtigt ved at køre følgende kommando i en terminal/komandoprompt: python --version Her skal python svare tilbage med den version I har installeret, dvs.: Python 3.7.0 6
Fordele/Ulemper ved python Fordele Simpelt sprog - nemt at lære Stort standardbibliotek (allerede implementede funktioner) Kan køre på mange platforme Udbredt brugt både i industri og forskning Ulemper Langsomt ift. mere avancerede sprog som C/C++ 7
Hvad bruges python til Scripting - små hurtige programmer Data behandling og visualisering Machine Learning og Deep Learning Backend-development (eg. brugt af Instagram) Hardwareprojekter 8
Programmering i python
Hvad er et program Program = sekvens af instruktioner Instruktioner beskriver hvad der skal ske / hvad der skal beregnes Termer: Instruktioner: Hvad selve programmet består af Input: Input som programmet skal forholde sig til Output: Resultatet af programmet Computere er dumme! (men hurtige). Gør kun som de får besked på... First, solve the problem. Then write the code. - John Johnson 9
Eksekvering af et program Programmer skrives i et højniveau-sprog, så som C, Java eller Python. Et program skal oversættes (compiles) før computeren kan forstå det. Computeren udfører instruktioner baseret på program og input og producerer et output. Flow: Et program udføres indstruktion for instruktion, fra top til bund. 10
Eksekvering i en terminal Åben en terminal (mac), komandoprompt (windows) Naviger til placering af dit python-program Eksekver med følgende kommando: python <program_navn>.py 11
Eksekvering i pycharm Tryk på play-knappen. 12
Strukturering af et pythonprogram Et python-program er struktureret via indeksering. Dvs. hvordan man formaterer sin kode kan afgøre om et program kan køres eller ej. Vær opmærksom på hvordan det er gjort i de givne eksempler. Kodeblokke skal være indekseret til samme niveau 13
Typer, variabler og udtryk
Datatyper - et programs enheder Følgende er de mest brugte primitive typer: Datatyper Eksempel String (streng) Hej Integer (heltal) 42 Float (kommatal) 42.0 Boolean True Derudover er der de mere avancerede typer som: List, tuple og dictionary Mere om dem senere... En type kan tjekkes i python via: type(< type der skal tjekkes >) Program: type(42.0) Output: <class float > 14
Konvertering mellem typer (casting) Nogle typer kan konverteres/tvinges til at blive andre typer. Konvertering til kommatal: float (4) 4.0 Konvertering til heltal: int (4.3) 4 Konvertering til streng: str(4 + 3) 7 15
Variabler En variabel er en beholder som kan gemme en værdi. I hukommelsen bliver der reserveret plads til den givne variabel. En variabel har et navn: Tilladte variabelnavne x et navn TEST var2 hej Forbudte variabelnavne 1var en.var -var Giv meningsfyldte variabelnavne! 16
Variabler Ud over førnævnte forbudte variabelnavne er der nogle reserverede nøgleord, som heller ikke må bruges. Disse er: and, exec, not, assert, finally, or, break, for, pass, class, from, print, continue, global, raise, def, if, return, del, import, try, elif, in, while, else, is, with, except, lambda, yield Hvad de forskellige nøgleord bruges til vil I løbende komme til at forstå... 17
Variabler En tildeling gemmer noget i den givne beholder/variabel. Tildeling til en variabel sker på følgende vis: <navn> = <værdi> Tildeling af et heltal: x = 42 Tildeling af en streng: hilsen = hej med jer 18
Operatorer Følgende beskriver de basale operatorer anvendt på tal: Operatorer Beskrivelse Eksempel Resultat + Læg to operanter sammen 40 + 2 42 Træk to operanter fra hinaden 50 8 42 Gang to operanter 6 7 42 / Division mellem to operanter 126/3 42 // Heltalsdivision mellem to operanter 126.5//3 42 Eksponentiering 2 3 8 19
Operatorer Følgende beskriver de basale operatorer anvendt på tal: Operatorer Beskrivelse Eksempel Resultat + Læg to operanter sammen 40 + 2 42 Træk to operanter fra hinaden 50 8 42 Gang to operanter 6 7 42 / Division mellem to operanter 126/3 42 // Heltalsdivision mellem to operanter 126.5//3 42 Eksponentiering 2 3 8 Disse operatorer kan måske anvendes på andet?... 19
Streng-operatorer Addition?: print( hej + Per ) 20
Streng-operatorer Addition?: print( hej + Per ) hej Per 20
Streng-operatorer Addition?: print( hej + Per ) hej Per Subtraktion?: print( hej ej ) 20
Streng-operatorer Addition?: print( hej + Per ) hej Per Subtraktion?: print( hej ej ) Traceback (most recent call last ): File <stdin>, line 1, in <module> TypeError: unsupported operand type(s) for : str and str 20
Streng-operatorer Multiplikation?: print( hej 3) 21
Streng-operatorer Multiplikation?: print( hej 3) hejhejhej 21
Streng-operatorer Multiplikation?: print( hej 3) hejhejhej Division?: print( hej / 3) 21
Streng-operatorer Multiplikation?: print( hej 3) hejhejhej Division?: print( hej / 3) Traceback (most recent call last ): File <stdin>, line 1, in <module> TypeError: unsupported operand type(s) for /: str and int 21
Udtryk Et udtryk er en kombination af værdier, variabler og operatorer Eksempler på udtryk: 5 x = 3 x + 5 x = 2 y = 3 (1 + x) 5 y Regnereglernes hieraki overholdes. 22
Print Udskriv udtryk og variablers værdier med print-funktionen: Program: print( hej ) print(42) x = 23 print(x) Output: hej 42 23 Print kan bruges til output fra et program, men også til fejlfinding af ens program (debugging). 23
Input fra brugeren Input fra brugeren tages på følgende vis: <variabel> = input(<beskrivende streng>) Eksempel 1: navn = input( Hvad er dit navn? ) Eksempel 2: alder = input( Hvad er din alder? ) 24
Kommentarer Kommentarer i koden er tekst som ignoreres når koden eksekveres. Disse er kun til ære for den der læser koden. print( hej ) # en kommentar som beskriver denne instruktion # en fritstående kommentar som beskriver den følgende kode print( whatup ) Gode kommentarer hjælper når man ser på sin kode lang tid efter man har skrevet den. 25
Moduler Mange ting er allerede implementeret i python af dygtige programmører. Disse funktioner er tilgængelige via moduler (aka. biblioteker). Fx kan vi benytte math-biblioteket til at lave klassiske matematiske operationer: Program: import math x = 64 y = math.sqrt(x) print(y) Output: 8 Se dokumentation for alle matematikfunktioner: https://docs.python.org/3/library/math.html 26