Wikisida, MMG200 H21 Matematik 1: Introduktion till Python

Wikisida
2021-08-27T17:39:08+02:00

Denna första vecka ska ni installera nödvändig programvara (Python-miljön Ananconda som inkluderar Spyder som är det som ni främst kommer att arbeta med) och bekanta er mer denna. I samband med det kommer du också att lära dig de första grunderna i programmering som bl.a. variabler och typer. Du kommer också prova på att använda Spyder som en "miniräknare".

Installation

Anaconda kan installeras på datorer med Windows, macOS eller Linux via denna sidan (Länkar till en externa sida.). Där finns också tydliga instruktioner hur man installerar i de olika fallen.

Om man inte lyckas installera Spyder så kan man köra Spyder i en webbläsare. Instruktioner för detta finns här (Länkar till en externa sida.) och där finns också installationspaket som bara installerar Spyder och inte hela Anaconda.

Anaconda finns installerat på studentdatorerna på Matematiska vetenskaper, så om du sitter vid en av dessa datorer så behöver du inte tänka på installation eller använd programmet i webbläsare.

Starta Spyder

När du installerat Anaconda så har också Spyder installerats. Spyder är det program vi ska använda i denna kursen. Du kan välja att starta Spyder genom att först starta Anaconda Navigator (Länkar till en externa sida.)och sedan starta Spyder därifrån. Alternativt, starta Spyder direkt på samma sätt som du startar Anaconda navigator.

De olika fönstren i Spyder

När du startar Spyder så ser det ut ungefär som de flesta program med en meny längst upp, en rad av ikoner under denna med ofta använda kommandon och under dessa är det när man startar programmet för första gången tre olika fönster. Den vänstra halvan består av en textredigerare (editor) som vi kommer att använda flitigt för att skriva kod. Den högra halvan är delad på mitten och båda delfönstren har 2-4 flikar som visas längst ned centralt i fönstren (inringat i rött i bilden nedan). Det övre fönstret har (några av flikarna) flikarna "Help", "Variable explorer", "Plots" och "Files". Det nedre fönstret har flikarna "IPythonConsole" och "History".

Dessa olika flikar och textredigeraren kallas för paneler (panes) och man kan välja att visa eller dölja dem genom att gå in i menyn på View och sedan Panes och klicka i eller ur vilka paneler man vill visa. Testa att dölj "Plots" och sedan visa den igen. Under View kan man också välja olika layouter så om det skulle råka bli konstig layout så kan man alltid välja View -> Window layouts och sedan "Spider Default Layout" för att komma tillbaka till det ursprungliga läget. Om du vill kan du testa någon av de andra layouterna under "Window layouts", men återgå i så fall till "Spider Default Layout" när du testat färdigt.

Välj nu fliken "Variable explorer" i det övre fönstret till höger och "IPythonConsole" i det nedre som det är på bilden ovan.

Kommandofönstret, aritmetiska beräkningar och variabler

Kommandofönstret, IPythonConsole, i det nedre fönstret är där man skriver kommandon. Man kan t.ex. gör enkla aritmetiska uträkningar med addition, subtraktion, multiplikation och division. Testa att skriva t.ex. 5 * 3 och tryck på return och du får då produkten av 5 och 3. Addition och subtraktion skrivs förstås med + och - och division skriver man med tecknet /. Man kan använda parenteser för att ange prioritetsordning precis som vanligt. Exponentiering skrivs med **, så t.ex. 5** 3 returnerar 5³ dvs 125.

Ofta behöver man utföra flera steg i en beräkning eller vill spara resultatet man får och då använder man sig av variabler. För att skapa en variabel i Python så räcker det att man tilldelar den ett värde. Testa med att skriva x=5 i kommandofönstret och tryck på return. Du har nu skapat en variabel som heter x som är ett heltal och har värdet 5. Likhetstecknet här är ingen jämförelse utan en tilldelning, dvs. variabeln x tilldelas värdet 5. Tilldela nu en variabel y värdet 3.

Om man vill se vad en variabel har för värde så kan man använda kommandot print. Testa att skriva print(y) och tryck return. Om du gjort rätt när du tilldelade innan så ska du få resultatet 3. (Man kan också bara skriva y och trycka return.)

Man kan nu skapa nya variabler och tilldela dem värden som består av aritmetiska uttryck som innehåller x och y. Skriv t.ex. a=x+y. Då kommer variabeln a att tildelas värdet av summan av a och b dvs 8. Tilldela nu variablerna b, c och d värdet av differensen, produkten och kvoten av x och y. Använd print för att kontrollera att resultaten blivit de förväntade. Observera att det är skillnad på stora och små bokstäver i variabelnamn, så att t.ex. x och X är olika variabler.

Variabelutforskaren

Ta nu en titt på det övre fönstret och panelen "Variable explorer". Om du följt instruktionerna så ska det där finnas sex rader som innehåller de sex variablerna a,b,c,d,x och y som du skapat. Varje rad innehåller namnet längst till vänster och värdet längst till höger. Det är ju mycket behändigare att titta här om man vill se vilka värden variablerna har jämfört med att använda print och den här praktiska listan på alla variabler kan vara till ovärderlig hjälp inte minst när man försöker hitta vad det är för fel man gjort när koden man skrivit inte fungerar som det är tänkt.

Testa nu att ändra värdet på x till 4 genom att skriva x=4 i kommandofönstret. Då ändras värdet i raden för x till 4 i variabelutforskaren. När du skapade a så satte du a till värdet på x+y. Ändrades värdet på a när du ändrade värdet på x till 4? Nej! Variabeln a har inget "minne" av att vara x+y utan när du skrev a=x+y så fick a värdet 8 och kommer inte att påverkas av att man ändrar på x eller y.

Det går också att ändra på värdet inuti variabelutforskaren. Klicka på fyran i raden för x och skriv 5. Detta ger samma effekt som att skriva x=5 i kommandofönstret. Genom att högerklicka på någon av variablerna i utforskaren så får man fler alternativ. Man kan t.ex. radera variabeln eller lägga till en ny variabel genom att välja "Insert". Testa att först radera variabeln y (högerklicka på den och välj "Remove) och sedan skapa den igen (högerklicka någonstans i utforskaren och välj "Insert") och återigen ge den värdet 3.

Utöver namn och värde så finns det två kolumner till i variabelutforskaren. Kolumnen "Size" anger hur många värden som variabeln innehåller. Detta blir intressant senare då vi kommer att ha variabler som t.ex. är listor av tal. Nu bör det stå 1 i alla rader i den kolumnen. Den andra kolumnen "Type" är mer intressant nu. Den anger vilken datatyp som variabeln har. Om du följt instruktionerna så står det i alla rader utom en int. Detta betyder att de är ett heltal (int är förkortning av integer). För variabeln d står det istället float. Det betyder att d är ett så kallat flyttal vilket betyder att det är ett decimaltal. Anledningen till att d blev ett flyttal är helt enkelt för att 5/3 inte blir ett heltal och då returneras ett flyttal (decimaltal) som är "bästa möjliga approximation" av 5/3.

Datorer har olika strategier för att lagra heltal och flyttal. Det viktigaste att komma ihåg är att heltal lagras exakt, medan flyttal nästan alltid är en approximation. Vi kommer att återkomma till detta senare i kursen.

Historiefönstret

Klicka nu på fliken "History" i det nedre fönstret. Här ser du en lista på alla kommandon du skrivit. När du tittar in här i nästa vecka (eller om ett år) så kommer allt du skrev idag att ligga kvar här (om du inte raderar det på något sätt). Det kan vara behändigt om man vill använda ett kommando igen, kopiera det och spara det i en fil eller bara påminna sig om vad man gjorde senast.

Växla nu tillbaka till kommandofönstret. Genom att använda uppåt- och nedåt-pilarna på tangentbordet kan du bläddra i historiken. Testa att klicka på uppåtpilen några gånger. Då visas tidigare kommandon och du kan köra dem igen eller justera dem och sedan köra det redigerade kommandot.

Textredigeraren och filhanteraren, kommandofiler

Även om man har historiken och variabelutforskaren till hjälp så är det inte praktiskt i längden att skriva alla kommandon direkt i kommandofönstret. Det fungerar för att testa saker och korta beräkningar, men inte när man ska göra mer avancerade beräkningar. Mer praktiskt är då att spara kommandona i en fil och sedan köra allt i filen med ett enda kommando. För att åstadkomma detta använder man lämpligen den inbyggda textredigeraren i det vänstra fönstret och filhanteraren som man hittar om man väljer fliken "Files" i det övre fönstret till höger.

Välj fliken "Files" i övre högra fönstret. Du ser nu hela filträdet på datorn. Leta upp en lämplig mapp där du vill lägga dina filer för denna kursen. Högerklicka på denna och välj New -> Folder och döp den t.ex. till Python. Dubbelklicka på mappen du skapat för att den ska bli den aktiva mappen.

Klicka nu på textredigeraren så att den blir aktiv. Skapa en ny fil genom att gå till menyn File -> New file (alternativt använda kortkommandot som står där). Spara sedan denna filen via menyn File -> Save as. Döp filen till t.ex. test.py. Kontrollera så att den hamnar i mappen Python du precis skapade. Filnamnstillägget .py ska man alltid ha på filer som innehåller Python-kod. Du har nu en fil test.py i den mapp du skapat där du kan lägga in kommandon.

Längst upp i din fil så finns det lite text som är tänkt som dokumentation av innehållet i filen. Ignorera denna för tillfället och låt det stå kvar. När du kör filen så kommer dessa rader att ignoreras av programmet eftersom de är markerade att vara kommentarer.

Gå nu till historiefönstret och kopiera de sex raderna du skrev när du skapade variablerna x, y, a, b, c och d och klistra in dem i slutet på din fil i textredigeraren. (Det går att markera flera rader på en gång.) Spara filen genom att gå till menyn File -> Save. Gå till variabelutforskaren och klicka på suddgummit i listen i toppen av fönstret och ta bort alla variabler. Nu har Spyder totalt glömt vad dessa variabler hade för värden.

För att köra dessa sex kommandon igen kan du köra filen du precis skapat. Det enklaste sättet att göra det är att klicka på den gröna pilen ovanför textredigeraren. Gör det! Nu är variablerna tillbaka i variabelutforskaren och om du tittar i kommandofönstret så ser du att det står runfile('XXX/test.py', wdir='XXX'), där XXX är sökvägen till mappen du skapade. Klicka på den gröna knappen är i själva verket likvärdigt med att skriva den texten i kommandofönstret och detta är i sin tur likvärdigt med att köra de sex kommandona i filen inuti kommandofönstret.

Grunderna i Python

Vi har nu bekantat oss med Spyder och också tittat lite på de första grunderna i Python. När det gäller att lära sig grunderna i Python så finns det massor av bra (och ännu fler mindre bra) källor på internet. Jag kommer att guida er till källor som är på en lämplig nivå. I början med väldigt detaljerade instruktioner, men efterhand med successivt mindre detaljer eftersom ett mål med kursen också är att ni själva ska kunna hitta relevant information.

En bra källa om man inte har någon direkt tidigare programmeringsvana är Python-handledningen på w3Schools.com (Länkar till en externa sida.). Nu i början kommer jag främst att hänvisa till denna. Det finns också testövningar (Länkar till en externa sida.) där på alla avsnitt om man vill testa om man förstått.

De avsnitt du ska läsa nu för att få lite mer förklaringar till det du gjorde innan är:

Variabler (Länkar till en externa sida.) (sluta när du kommit till Global Variables)

Datatyper (Länkar till en externa sida.) (du behöver inte fundera så mycket på alla de olika typer som finns utan bara att det finns många olika datatyper och att int och float är två mycket viktiga sådana som innehåller tal)

Taltyper (Länkar till en externa sida.) (sluta när du kommit till Random Numbers)

Aritmetiska operatorer (Länkar till en externa sida.) (bara första avsnittet på sidan)

Kommentarer (Länkar till en externa sida.)

Gör gärna också övningarna (Länkar till en externa sida.) som hör till dessa avsnitt.

Övningar

1. Tilldelning, aritmetik och utskrift

Skriv kod som

tilldelar tre variabler olika heltalsvärden (som du väljer själv)

beräknar summan och produkten av dessa och lägger dem i lämpligt namngivna variabler

kommandon som resulterar i att texten "Summan är S" respektive "Produkten är P" skrivs ut (där S och P är de verkliga värdena på summan respektive produkten)

Hjälp: Kommandot print.

2. Elementära funktioner

Du kommer att behöva importera modulen math och i denna t.ex. använda funktionerna sin, cos, tan, radians, sqrt och eventuellt konstanten pi.

Skriv kod som

tilldelar fyra variabler v1, v2, v3, v4 vinklarna 0, 30, 60 respektive 90 grader uttryckt i radianer

beräknar och skriver ut sinus, cosinus och tangens för dessa fyra vinklar (blev resultaten rätt?)

tilldelar två variabler a och b två valfria värden

beräknar och skriver ut lösningarna till andragradsekvationen x²+ax+b=0

Hjälp: Importera modulen math. Användbara funktioner i math

3. Inmatning, elementära funktioner

Du kommer också här att behöva importera modulen math och i denna t.ex. använda funktionerna atan, degrees och sqrt.

Skriv kod som

ber användaren mata in längden på de två kateterna i en rätvinklig triangel

använder de inmatade värdena och beräknar hypotenusan samt de två spetsiga vinklarna uttryckt i grader och avrundat till två decimaler

skriver ut "Om kateterna är a och b, så är hypotenusan c och de spetsiga vinklarna u och v" med de verkliga värdena på de olika variablernas plats

Hjälp: Kommandot input.