It og informationssøgning Forelæsning 1 6. september 2006 Nils Andersen Beregning på computer Begrebet data Universel computer Højere programmeringssprog Python Dialogdrift Fejl (syntaksf., udførelsesf., semantiske f.) Konstanter, variable, gemmesætninger, operander, operatorer, udtryk Typer Reserverede ord ( nøgleord ) Program udført fra fil Kommentarer Downey, Elkner & Meyers: Chapt. 1 2 Andersen & Simonsen: kap. 1 1
Datalogi / IT / Computer science Data (Edb-ordbog, Dansk Standard 2049-1970): En formaliseret repræsentation af kendsgerninger eller forestillinger på en sådan form, at den kan kommunikeres eller omformes ved en eller anden proces. Analoge data >< digitale data ord af positioner med tegn fra et alfabet alfabet = {O, I, U}, ord = IOOUII Data beror på konvention; har både syntaks (form) og semantik (betydning). R A T da. eng. ty. D D MDCXLVIII 2
Virkelighed / information / data Datalogi EDB Informatik IT (informationsteknik) IKT Kybernetik Computer science Computing Omverden Tanke fænomen begreb Virkelighed Information Kode symbol Data Databehandling 3
Symbolbehandling Med symboler kan man Sende information (brev, telegram,... ) Gemme information (indskrift, dokument,... ) Behandle information (regneskema) Kalkule: 2 2 1 : 8 = 2 7 rest 5 1 6 ----- 6 1 5 6 --- 5 Regnemaskine: Blaise Pascal 1642 pascaline (addition, subtraktion) Computer/datamaskine/datamat: Fuldautomatisk; kan simulere enhver symbolbehandlingsoperation. (Beregning + styring) 4
Simulering gammel virkelighed ny repræsentation indgangsfænomen analyse og måling brug modellering indsigt information indgangsoplysninger resultater udgangsfænomen tolkning inddata data uddata dataproces 5
Universel datamat Enhver dataproces kan eftergøres blot maskinordrerne vælges passende. Maskinordrer Inddata Processor Uddata Maskinordrer er også data. John von Neumann: Ordre- og datalager kombineres; maskinordrer hentes fra lageret; maskinordrer kan frembringes som data. Derved bliver det muligt at programmere i et højere programmeringssprog, som fortolkes eller oversættes: Ved fortolkning udføres sætningerne i programmet sideløbende med, at inddata transformeres til uddata. Ved oversættelse har udførelsen to faser: Først omformes programmet til maskinordrer; derefter transformerer det oversatte program inddata til uddata. 6
Begrundelser Hvorfor Python? Primært af pædagogiske grunde Sidste trin i en udvikling: Indeholder moderne programmeringsfaciliteter (både objektorienterede og funktionsorienterede) på en harmonisk og elegant måde Fin afbalancering mellem begrebsmæssige og praktiske hensyn Let at lære Gode, gratis og lettilgængelige implementeringer Klare og umiddelbare fejlmeldinger Omfattende programbiblioteker, der gør sproget effektivt Man kan komme til at skrive ineffektive programmer (Endnu) ikke så udbredt (men brugen er i hastig vækst) Under stadig udvikling 7
Eksempel på kørsel $ > python Python 2.3.5 (#1, Mar 20 2005, 20:38:20) [GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 3 + 5 8 >>> timer = 37 >>> timer - 2 * 4 29 >>> 3 * timer - 4 * 6.5 + 114.0 >>> timer = >>> netto loen = 8650 >>> print netto loen / timer 75.8771929825 >>> 2 ** 10 1024 >>> 8650 / 114 75 >>> type(114) <type int > >>> type(114.0) <type float > >>> 8
Simple typer int long heltal ubegrænsede heltal float complex brudne tal komplekse tal str unicode tekster tekster (udvidet) bool sandhedsværdier 9
Kørsel fortsat >>> spm = Spiller du kort? >>> print spm Spiller du kort? >>> print spm, "Kun bridge", svarede hun Spiller du kort? "Kun bridge", svarede hun >>> print "l hombre" l hombre >>> print spm, "Kun l\ hombre", svarede hun Spiller du kort? "Kun l hombre", svarede hun >>> "ka" * 2 + "o" kakao >>> print kakao >>> ^D $ > Man forlader Python-fortolkeren (og kommer igen ud på operativsystem-niveau ) ved at taste CtrlˆD (trykke på D, mens ctrl holdes nede). Under Windows kan det være CtrlˆZ. 10
Reserverede navne Navne på variable og andre størrelser skal opbygges af et bogstav eller en understregning efterfulgt af nul eller flere bogstaver, understregninger eller cifre. Anvendelige bogstaver er de 26 små og store latinske (= engelske og amerikanske) bogstaver a z, A Z. Små og store bogstaver regnes for forskellige. Cifrene er de decimale 0 9. De reserverede navne (nøgleord ) er uanvendelige: and exec None assert finally not break for or class from pass continue global print def if raise del import return elif in try else is while except lambda yield 11
Program udført fra en fil Hvis man i stedet for blot python skriver python filnavn til operativsystemet, bliver indholdet af filen filnavn fortolket som et python-program. En anden mulighed er, at man inde i en pythondialog kalder execfile( filnavn ). Bemærk: Filen skal være en flad tekstfil, dannet med for eksempel Notepad/Notesblok, SimpleText eller emacs. (Ikke LAT E Xeller Microsoft Word eller HTML eller lignende.) Man plejer at lade navne på filer med pythonprogrammer ende på.py. Antag, filen 2og2.py indeholder én linje: print 2, og, 2, er, 2+2 >>> execfile( 2og2.py ) 2 og 2 er 4 >>> 12
Kommentarer Selv om programmer egentlig blot er instrukser til maskiner, læses de også af mennesker (herunder en selv!), og indsigtsfulde kommentarer er nødvendige, så man kan forstå programmerne. I python strækker en kommentar sig fra et nummertegn (#), der ikke indgår som del af en tekstkonstant, og linjen ud: timetal = n * 37 - loentimer # maanedstotal # Herefter beregnes feriepenge og skat: 13