MENA 1000 – Materialer, energi og nanoteknologi Programmering med Python i MENA1000 Introduksjon og litt til… Truls Norby Kjemisk institutt/ Senter for.

Slides:



Advertisements
Liknende presentasjoner
Nedlasting av apper på Apple
Advertisements

Nedlasting av Adobe Reader Adobe Reader brukes bl.a. for å åpne vedlegg i en E-post. Åpne Internett og skriv, adobe.no i adressefeltet, klikk Enter. Rull.
GoOnline XP publisering Hvordan komme i gang med GoOnline XP. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline.
HVA ER ?.
Tabeller av objekter Klassen ArrayList
YouTube Amerikansk nettside Gratis Video og musikk
Internett for nybegynnere
Bygg web på Opplæring Presentasjon Idium AS Bygg web på Opplæring.
Hvordan etablere nettbutikk med GoOnline Commerce
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
Kontoinnstillinger Slik kommer du til «Kontoinnstillinger»:
Programmering med Python i MENA1000 Introduksjon til undervisningen
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
eDialog24 Operator Nyheter og endringer i versjon Sentinel eDialog24 AS Ingvald Ystgaards vei 3A 7047 Trondheim Telefon: Faks:
Bruke Gmail 3a Gmail er et e-postprogram.
Programmering med Python i MENA1000 Introduksjon og litt til…
Nedlasting av Java Java bruker du til bl.a. å logge deg inn i nettbanken. Åpne Internett og skriv, java.com i adressefeltet, klikk Enter. Klikk på Free.
Enkel brukerhåndbok for NFUs redaktører Versjon 1, 3. februar 2013.
Bilderedigering 6e Kopiere bilde
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Au2Pc med kortleser TPpay. Hurtigbruksanvisning.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Dokument med bilde, formatere i Word
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
AP - Arbeidsplan Vi jobber med arbeidsplanen nesten hver dag.
Oppdatering for Windows Update Windows Update er viktige oppdateringer for din PC. Disse skal i utgangspunktet komme første tirsdag i hver måned, men de.
IS-102 Klassedefinisjoner
Gerica på ny plattform Oppdatert
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 7.9 Bakgrunn for øvelse 2 Bruk av variabler i beregninger Ser på tekststrenger (3.4 Strings.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Gjennomgang av prøven Tidsangivelse. Prøven deles ut Vi fyller ut øvelsen sammen.
INF150 Programmering mandag 11.9
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
Opplæring: Digital Diktering
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Publisering på verdensveven Kursdag 2 VÅFF, våren 2002.
Publisering på verdensveven Kursdag 3 VÅFF, våren 2002.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
ELEFANTKLUBBEN (De eldste barna)
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
Funksjoner og Innstillinger i
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
123 Data - Førstehjelp Krokelvdalen Skole. Hva skal vi lære Slå på/av datamaskinen Hva som må til for å komme på internett Hvilke typer kommunikasjonsformer.
Harald Kaasa Hammer: Manual til redigering av nettstedet Først forklares hva de ulike elementene på nettsidene betyr. Så ser vi på mappene.
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Hurtigreferanse for © 2012 Microsoft Corporation. Med enerett. Lync Web App Bli med i et Lync-møte med PC-lyd Hvis du ikke har Lync 2013, kan du bli med.
Vibeke IT-seksjonen LU - LUVIT brukere våren PUS Luvit undervisning våren 2002 Hvordan lære opp studentene i LUVIT?
Vibeke IT-seksjonen LU - LUVIT brukere våren PUS Luvit undervisning våren 2001 Hvordan lære opp studentene i LUVIT?
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
Finne feil - Debugging Introduksjon til sortering.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 14.9 Ulike måter for å lese inn og skrive ut data. Kap. 3.5 mer om if – setninger Ferdige.
Lions hjemmeside Slik legger du som hjemmeside- redaktør ut en enkel artikkel Medlemsregistret.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
TDT4105 Informasjonsteknologi, grunnkurs
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

MENA 1000 – Materialer, energi og nanoteknologi Programmering med Python i MENA1000 Introduksjon og litt til… Truls Norby Kjemisk institutt/ Senter for Materialvitenskap og nanoteknologi (SMN) Universitetet i Oslo FERMIO Forskningsparken Gaustadalleen 21 N-0349 Oslo

MENA 1000 – Materialer, energi og nanoteknologi Programmering med Python i MENA1000 er en miniversjon av INF1100 En første introduksjon til å programmere datamaskiner Programmering er svært viktig i industri og forskning Programmering er i seg selv en akademisk utfordring og gjenstand for forskning og utvikling og kommersialisering Programmering vil bli brukt i mange senere emner INF1100 er koordinert med MAT1100 og MAT-INF1100: –i MAT1100 lærer du matematikk (kalkulus) –i MAT-INF1100 lærer du en ”datamaskinvennlig” versjon av matematikken –i INF1100 lærer du å skrive programmer for å regne med denne datamaskinvennlige versjonen av matematikk Du vil se matematikk og anvendelser fra ulike perspektiver i disse tre emnene Hvis du som MENA-student ikke får tatt INF1100 må du lære programmering bl.a. ved hjelp av tilbudet i MENA1000, samt egeninnsats

MENA 1000 – Materialer, energi og nanoteknologi Undervisning i programmering i MENA1000 Kollokvier (”øvelser”) i kurs-uke 1 –Introduksjon –Lære å logge inn og skrive, redigere, lagre og utføre et Python- program Programmeringstemaer i enkelte forelesningstimer Spesialhjelp i løpet av enkelte kollokvier Programmeringsoppgave i hver laboppgave-innlevering Egeninnsats –Bruk INF1100 (web, materiell, undervisningstilbud) –Programmér aktivt Liten oppgave i programmering på del- og slutteksamen.

MENA 1000 – Materialer, energi og nanoteknologi Hvordan du må jobbe … la oss høre Hans Petter Langtangens ord for INF1100: Det er utviklet en egen lærebok til INF1100 (og noe for MENA1000…) Foran hver forelesning må du ha lest ukens kapittel Foran hver oppgaveløsning i plenum må du selv ha forsøkt å løse oppgavene for hånd eller med maskin (og selvfølgelig først ha lest ukens pensum i boken!) Spesielt forelesningene går frem mye fortere enn klasseromsundervisningen i videregående skole Forelesningene er basert på foiler og demonstrasjoner – foilene kan lastes ned mens demonstrasjonene må du huske... Undervisningen forutsetter at du er forberedt! Hver uke må du levere inn oppgaver (løst på terminalstuen) (i MENA1000 leverer du inn sammen med laboppgaver)

MENA 1000 – Materialer, energi og nanoteknologi Om å lære programmering (fra INF1100): Du må lære programmering gjennom å programmere selv Programmering er krevende i begynnelsen – så blir det gøy! Oppskrift på suksess: vær godt forberedt til undervisningen (jfr. følg forrige foil) – det gir deg mest fritid og mest læring Forventet arbeid i INF1100: 6 t undervisning + 7 t selvstudium = 13/uke Eksemplene i INF1100 handler om bruk av matematikk og bygger på maksimal matematikk-fordypning fra vgs Vi antar at du tar MAT1100 og MAT-INF1100 i parallell (eller at du har tatt tilsvarende kurs) Det er fordel med noe fysikk fra vgs for å forstå fysikk-eksemplene INF1100 vil belyse matematikk fra en ny vinkel og hjelpe deg til å forstå matematikk bedre samtidig som du lærer å programmere Vi bruker matematikken hovedsakelig som verktøy til å løse problemer i fag som fysikk, biologi, finans,...

MENA 1000 – Materialer, energi og nanoteknologi Mer om Python (fra et INF1100 lysark) The INF1100 book contains only fragments of the Python language (intended for real beginners!) The slides in the education are even briefer Therefore you will need to look up more Python information Primary reference –The official Python documentation at docs.python.org –Very useful: The Python Library Reference, especially the index Example: what can I find in the math module? Go to the Python Library Reference index, find ”math”, click on the link and you get to a description of the module Alternative: pydoc math in the terminal window (briefer) –Note: for a newbie it is difficult to read manuals (intended for experts) – you will need a lot of training; just browse, don’t read everything, try to dig out the key info

MENA 1000 – Materialer, energi og nanoteknologi Kom i gang med å programmere i Python Python er en programpakke som tolker og utfører Python-programmer som du skriver. Som del av pakken har vi programmene emacs og/eller idle – programmer som hjelper deg med å skrive og holde orden på programmene dine. De gjør også jobben med å påkalle selve Python- programmet når du ber om få sjekket, tolket og utført programmet ditt. Python-pakken må være tilgjengelig på din datamaskin lokalt eller via nettverk Python-pakken skal kunne kjøres fra alle UiO sine datamaskiner. Sett deg ved en ledig datamaskin (terminal) og logg inn med ditt vanlige brukernavn og passord.

MENA 1000 – Materialer, energi og nanoteknologi Hvis maskinen har linux operativsystem Hvis datamaskinen er en Linux-maskin, høyreklikk og opprett et nytt vindu. I dette vinduet skriver du emacs testprogram1.py (og Enter). Systemet finner da emacs-programmet og utfører dette. Det oppretter i sin tur python-programmet ditt, som vi nå har kalt testprogram1.py. Det at du har.py i navnet forteller emacs at det er et python-program, slik at emacs oppfører seg deretter. Gå frem til lysark ”Skriv et kort program”

MENA 1000 – Materialer, energi og nanoteknologi Hvis maskinen har Windows operativsystem Hvis maskinen er en Windowsmaskin, klikk Start, Programmer og se etter Python. Hvis maskinen har Python, finn og klikk på idle eller emacs. Hvis maskinen ikke har Python: –Klikk Start, Programmer, Tilbehør, Tilkobling til eksternt skrivebord (Engelsk: Start, Programs, Accessories, Remote Desktop Application) –Det kommer opp et vindu der du skriver windows.ifi.uio.no –Du kobles da til en Windows-server på ifi (Institutt for informatikk). –Logg deg på i de neste vinduene med ditt vanlige brukernavn og passord. –Nå vil du finne Python med Idle: Klikk Start, Programmer, Python, Idle Uansett om du kjører på maskinens Windows eller ifi’s emacs eller idle: Det vinduet som kommer opp i først er et ”Skall” – et vindu der programmet kommuniserer med deg. Klikk på Fil og åpne et nytt vindu. Dette er vinduet der selve programmet skrives. I det nye vinduet Klikk på Fil og lagre som ”testprogram1.py’

MENA 1000 – Materialer, energi og nanoteknologi Skriv et kort program Uansett om du er på linux eller Windows kan du nå skrive linjer med kode. Hver linje avsluttes med Enter-tasten Skriv for eksempel disse to programlinjene, helt eksakt: # Kommentar: Dette er et testprogram. print ”testing…” Test programmet: I rullemenyene, finn og klikk Run. –Hvis alt er korrekt får du en utskrift på skjermen: Testing… –Hvis du har tastet feil, kan det hende at du får en feilmelding. Korriger og prøv Run igjen. Utforsk menyene: Lagre filen. Lagre filen med nytt navn. Åpne en lagret fil. Rediger programmet. Lagre igjen. Utfør programmet igjen. Når du er ferdig, lukk og logg ut. Nå kan du begynne å lære deg programmering ved å prøve selv etter hvert som du lærer nytt stoff ved eksempler.

MENA 1000 – Materialer, energi og nanoteknologi Om å bruke æ, ø og å Hvis du bruker æ, ø og å vil Python komme med en advarsel når du kjører programmet. –Det foreslår å sette inn en kode i første linje, for eksempel # -*- coding: utf8-*- Ved å trykke “Edit My File” knappen som kommer opp, skrives koden rett inn for deg. Ved å trykke OK lagres filen på en måte som godtar disse bokstavene. Etter dette vil den godta æ, ø og å. Bruk æ, ø og å bare i kommentarer og utskrift – aldri i variabelnavn.

MENA 1000 – Materialer, energi og nanoteknologi Casting Casting: Konvertering mellom variabel-typer Generelt: Ny_variabel = Ny_type(Gammel_variabel) Eksempler: Tekst = ‘123.4’ Flyttall = float(Tekst) Flyttall = float(Heltall) Heltall = int(Flyttall) Heltall = int(Tekst) Tekst = str(Flyttall) Tekst = str(Heltall) Den samme variabelen kan skifte type. Eksempel: Input = ‘123.4’#Input er nå en string Input = float(Input) #Input er nå blitt en flyttallsvariabel

MENA 1000 – Materialer, energi og nanoteknologi If- og if-else-forgreininger Med If-forgreininger kan vi velge forskjellige løp i programmet Eksempel med ballens høyde: Vi skriver bare ut verdien HVIS høyden er > 0, dvs. over bakken. if y >= 0: print ‘høyden er ‘,y Vi kan også bruke if else: if y >= 0: print ‘høyden er ‘,y else: print ‘Landet!’

MENA 1000 – Materialer, energi og nanoteknologi Heltall - flyttall Operasjoner mellom heltall resulterer i heltall: 3 / 2 = 1 Derfor bør vi ofte gjøre om heltallsvariable til flyttall før slike operasjoner. For konstanter kan vi bruke komma: 3.0 / 2 = 1.5

MENA 1000 – Materialer, energi og nanoteknologi If-elif-else-forgreininger Hvis vi har flere valg enn to kan vi bruke elif (else-if): if y > 0: print ‘høyden er ‘,y elif y==0: print ‘dunk!‘ else: print ‘Har landet!’

MENA 1000 – Materialer, energi og nanoteknologi while-løkker brukes når vi vil bruke samme program-del (gjøre samme operasjon) flere ganger, inntil et kriterium er nådd. Anta at vi vil finne tiden det tar før høyden til ballen er null: v0 = 5 g = 9.81 t = 0.0 while v0*t - 0.5*g*t**2 >= 0: t = t # kan også skrives t += 0.1 print t Merk: Bare de linjene som er indentert etter løkka er i løkka og repeteres. Hvis du glemmer å øke t i løkka, vil løkka gå uendelig – programmet synes å ha gått i stå, men det løper egentlig i bakgrunnen. For å stoppe et løpsk program, trykk Ctrl-D.

MENA 1000 – Materialer, energi og nanoteknologi Mer avansert: while løkke og lister Vi vil lagre forløpet til ballkastet; alle høydene og tidene: v0 = 5 g = 9.81 t = 0.0 tider = [t] #Vi starter med en liste med bare startverdien hoyder = [0] i = 0 # en tellevariabel for antall ganger vi har gått igjennom løkka # Den teller også indeksen på listene while hoyder [i] >= 0: i += 1 # Vi øker telle-variablen tider.append(i*0.1) t = tider[i] hoyder.append(v0*t -0.5*g*t**2) print tider print hoyder

MENA 1000 – Materialer, energi og nanoteknologi Vi bruker en while-løkke til å lage en pen utskrift av listene j = 0 n = len(tider) # Funksjonen len(x) gir lengden på listen print "|%10s|%10s|" % ("Tid", "Høyde") print " " while j < n: print "|%10f|%10f|" % (tider[j], hoyder[j]) j += 1 print " "

MENA 1000 – Materialer, energi og nanoteknologi for-løkke Samme utskrift med en for-løkke: n = len(tider) print "|%10s |%10s|" % ("Tid", "Høyde") print " " for j in range(n): print "|%10f |%10f|" % (tider[j], hoyder[j]) print " “ Legg merke til at for-løkken i Python ikke er som i de fleste andre språk (for j = 1 to n…) men for istedet for j in range(n)…

MENA 1000 – Materialer, energi og nanoteknologi Funksjoner Funksjoner i python likner på funksjoner i matematikken. Funksjoner er definisjoner på hva som skal gjøres (funksjonsblokken) med noen parametre vi sender inn og hva som skal komme ut. Som en boks som produserer noe fra noe (annet). En funksjon begynner med def, så funksjonsnavn, en parentes med navn på parametervariablene og et kolon. Så kommer selve funksjonsblokken. Funksjonen kjøres bare når den kalles Vi må definere funksjonen før vi kan kjøre den. (Høyere opp i programmet.)

MENA 1000 – Materialer, energi og nanoteknologi Funksjoner Funksjonen returnerer en verdi ved kommandoen return Funksjoner kan også utføres uten å returnere noe. Funksjoner bruker for å unngå å gjenta kode som brukes flere ganger; gir ryddigere program. Hold funksjonene korte; del evt. opp i flere.

MENA 1000 – Materialer, energi og nanoteknologi Funksjoner – import fra pakker Ikke alle må finne opp kruttet på nytt Ofte er de ferdiglagde funksjonene raskere enn det vi kan skrive selv. (python er et tregt språk, pakker er skrevet i c,c++ eller FORTRAN) Hvordan importere alt Hvordan importere noe Det finnes veldig mange funksjoner. Her skal vi lære om/ bruke: –Standard python –math, random, sys, time –Tileggspakker: numpy, scitools –Finne ut mer: pythons hjemmeside, google. Lurer du på hvordan, har noen andre sannsynligvis gjort det før.

MENA 1000 – Materialer, energi og nanoteknologi Funksjon: Eksempel # Eksempel: Fakultet (!): def nfakultet(n): fakultet = 1 for i in range(1,n+1): fakultet = fakultet * i # fakultet *= i return fakultet print nfakultet(4), nfakultet(10), nfakultet(20) NB: Indenteringen må være riktig!!

MENA 1000 – Materialer, energi og nanoteknologi Import av pakke For eksempel: Hvis vi trenger en matematisk funksjon er det sannsynlig at den ligger i pakken Math. HVilke funksjoner som finnes hvor, hva de heter, og hvordan de brukes finnes i Python-dokumentasjon i manualer, sammen med Python, og på web. Importere hele Math: import math print math.cos(math.pi)

MENA 1000 – Materialer, energi og nanoteknologi Importere litt av en pakke Eksempel: Vi importerer bare funksjonene cos og pi from math cos, pi print cos(pi) Legg merke til at vi samtidig definerte navnet på funksjonen slik at vi ikke trenger å skrive math.cos, men bare cos Etter at en funksjon er importert kan den brukes fritt Dersom navnene på importerte funksjoner ikke passer deg, kan du gi dem nye ved importen. Eksempel: from math import sin as math_sin, pi as math_pi print math_sin(math_pi)

MENA 1000 – Materialer, energi og nanoteknologi Importere hele pakken from math import * print cos(pi) print sin(e) # Her regner vi også ut ut sinus til e, # e og sin er importert fra math. I tillegg til standard python-pakker skal vi her bruke scitools og numpy

MENA 1000 – Materialer, energi og nanoteknologi Bruker-input raw_input(x) leser alt, som tekst. Tekst = raw_input (‘Angi temperaturen i °C: ’) TCelsius = float(Tekst) input(x) leser tall: TCelsius = input(‘Gi temperaturen i °C: ‘)

MENA 1000 – Materialer, energi og nanoteknologi Eval(x) Eval(x) funksjonen evaluerer (regner ut) matematiske uttrykk #-*- coding: utf8 -*- from math import * print ’Velkommen til pythonkalkulatoren \n’ while s != ’STOPP’: print ’Skriv inn uttrykket du ønsker å evaluere’ s = raw_input(’For å avslutte skriv STOPP. \n’) if s != ’STOPP’: print ’\n’ + "Resultatet ble: " + str(eval(s)) print ’På gjensyn’ Tekststrengen \n betyr ny linje. Hva skjer hvis du ikke svarer STOPP til slutt? Å legge sammen tekster (Tekst1+Tekst2 eller ‘tekst’+’en annen tekst’ kalles “concatenation”

MENA 1000 – Materialer, energi og nanoteknologi Feil-håndtering Syntaksfeil –Kompilatoren gir deg indikasjon på hvor feilen er –Men dette kan være misvisende Innrykksfeil Perentesfeil NameError IndexError TypeError Value Run-time error Feil ved brukerinput ….og mange andre muligheter

MENA 1000 – Materialer, energi og nanoteknologi Feilhåndtering ved try - except try: except: Programmet prøver “try”-delen. Dersom det kræsjer hopper det til “except”-delen. Eksempel: mangler_verdi = True while mangler_verdi: try: C = float(raw_input(’Oppgi temperaturen i grader celsius’)) mangler_verdi = False except: print "Du maa oppgi et tall!“ print C, ‘ °C ‘,C ,’ K’