• No results found

Introduktion Variabler Funktioner Ett programexempel Referenser. Python del 1. Daniel Bosk 1

N/A
N/A
Protected

Academic year: 2022

Share "Introduktion Variabler Funktioner Ett programexempel Referenser. Python del 1. Daniel Bosk 1"

Copied!
26
0
0

Loading.... (view fulltext now)

Full text

(1)

Python del 1

Daniel Bosk1

Avdelningen för informations- och kommunikationssytem (IKS), Mittuniversitetet, Sundsvall.

python.tex 1317 2013-09-23 13:12:56Z danbos

1Detta verk är tillgängliggjort under licensen Creative Commons Erkännande-DelaLika 2.5 Sverige (CC BY-SA 2.5 SE). För att se en sammanfattning och kopia av licenstexten besök URL

http://creativecommons.org/licenses/by-sa/2.5/se/.

1

(2)

Översikt

1 Introduktion

Vad är programmering?

Ett enkelt exempel

2 Variabler Datatyper

Aritmetiska operatorer Identifierare

Variabler Typkonvertering

3 Funktioner Översikt

4 Ett programexempel

Beräkning av energi hos en boll Tips och kommentarer

(3)

Översikt

1 Introduktion

Vad är programmering?

Ett enkelt exempel

2 Variabler Datatyper

Aritmetiska operatorer Identifierare

Variabler Typkonvertering

3 Funktioner Översikt

4 Ett programexempel

Beräkning av energi hos en boll Tips och kommentarer

3

(4)

Vad är programmering?

(5)

Ett enkelt exempel

5

(6)

Översikt

1 Introduktion

Vad är programmering?

Ett enkelt exempel

2 Variabler Datatyper

Aritmetiska operatorer Identifierare

Variabler Typkonvertering

3 Funktioner Översikt

4 Ett programexempel

Beräkning av energi hos en boll Tips och kommentarer

(7)

Datatyper

Man kan säga att nästan allt i Python är av någon datatyp. Dessa datatyper håller Python själv reda på, men man måste även som programmerare hålla koll på dessa för att programmet ska fungera som man vill.

De datatyper som Python definierar är bl.a.

int Heltal (Integers),

float Flyttal (Floating point numbers), str Strängar (Strings).

7

(8)

Aritmetiska operatorer

På dessa datatyper finns operatorer definierade, t.ex.+är en operator definierad för heltal. Andra operatorer som finns är + - * / // %.

(9)

Aritmetiska operatorer

Några exempel (som körs i Pythons tolk från terminalen):

1 \ $ python

2 Python 2.2.3 (#1 , Jan 5 2005 , 1 6 : 3 6 : 3 0 ) 3 [ GCC 3.4.2] on sunos5

4 Type " help " , " co py rig ht " , " credits " or

" l i c e n s e " for m o r e i n f o r m a t i o n . 5 >>> 5+5

6 10 7 >>> 3*2 8 6

9 >>> 5//3 10 1

11 >>> 5\%3 12 2

13 >>> " hej "+" svejs "

14 ’ hejsvejs ’ 15 >>> " hej "*3 16 ’ hejhejhej ’ 17 >>>

9

(10)

Aritmetiska operatorer

Alla operatorer är dock inte definierade för alla datatyper, en mycket kort och ej fullständig sammanfattning är:

Heltal kan använda operatorerna+ - * / // %,

Flyttal kan använda operatorerna+ - * /, heltalsdivision och modulo går inte att beräkna för flyttal, Strängar har bara operatorerna + *.

(11)

Identifierare

Vilka regler gäller då för namnet på konstanterna?

De får bestå av bokstäver, siffror och även understreck (_).

Men de får dock inte börja med siffror.

De får heller inte vara något av följande reserverade ord: and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while

Viktigt att tänka på är att man skiljer på gemener och versaler, d.v.s. PIär inte samma sak somPi.

11

(12)

Variabler

En variabel är en identifierare.

Den representerar ett ett minnesutrymme i vilket man kan lagra data.

Namnet uppfyller kravet för en identifierare, men får inte vara enbart versaler (för det tolkar Python som en konstant).

(13)

Variabler

1 >>> x =5 2 >>> y =3 3 >>> z = x * y *3

4 >>> print x , y , z 5 5 3 45

6 >>> print x 7 5

8 >>> print y 9 3

10 >>> print z 11 45

12 >>> x = x +1 13 >>> print x 14 6

15 >>> print z 16 45

17 >>>

13

(14)

Variabler

Notera att värdet påz inte ändras när vi ändrar värdet påx. Detta för att det är värdet 45som lagras i zoch inte

relationen x*y*3.

(15)

Typkonvertering

Ibland kan man vilja konvertera vissa typer till andra.

Det kan vara att man läst in en sträng från tangentbordet och vill konvertera den till ett tag (om användaren matade in ett tal).

15

(16)

Typkonvertering

1 >>> x ="3.14"

2 >>> pi = float ( x ) 3 >>> print pi 4 3.14

5 >>> print x +2

6 Tr ac eb ac k ( most recent call last ) : 7 F i l e " < stdin >" , l i n e 1 , in ?

8 T y p e E r r o r : c a n n o t c o n c a t e n a t e ’ str ’ and ’ int ’ o b j e c t s

9 >>> print pi +2 10 5.14

11 >>>

(17)

Typkonvertering

Ett annat bra exempel är procentberäkningar, 1 >>> 9 9 / 1 0 0 * 1 0 0

2 0

3 >>> float (99) /100*100 4 99.0

5 >>>

där man får fel svar om man inte explicit typkonverterar.

17

(18)

Översikt

1 Introduktion

Vad är programmering?

Ett enkelt exempel

2 Variabler Datatyper

Aritmetiska operatorer Identifierare

Variabler Typkonvertering

3 Funktioner Översikt

4 Ett programexempel

Beräkning av energi hos en boll Tips och kommentarer

(19)

Översikt

Funktioner utgör en viktig byggsten i programmeringen.

Liksom inom matematiken kan den användas för att dela upp större problem i mindre och bidra till en bättre ordning.

De används dessutom på samma sätt.

f (x ) = 2 · g (x ) + 3 och g (x ) = x2 inom matematiken skulle kunna skrivas i Python som def g(x): return x*x

def f(x): return 2*g(x)+3

19

(20)

Översikt

När vi talar om funktioner består de av flera delar, funktionen består av ett funktionshuvud och en funktionskropp.

Funktionshuvudet är den första raden i funktionsdefinitionen.

Den består av funktionsnamn och formella parametrar. D.v.s.

funktionshuvud

z }| {

def functionname( argument1, argument2, ...

| {z }

formella parametrar

):

Resten av funktionen är funktionskroppen, d.v.s. all kod som hör funktionen till.

(21)

Översikt

1 Introduktion

Vad är programmering?

Ett enkelt exempel

2 Variabler Datatyper

Aritmetiska operatorer Identifierare

Variabler Typkonvertering

3 Funktioner Översikt

4 Ett programexempel

Beräkning av energi hos en boll Tips och kommentarer

21

(22)

Beräkning av energi hos en boll I

# e n c o d i n g : u t f 8 i m p o r t m at h

def k i n e t i c _ e n e r g y ( m , v ) :

r e t u r n 0 .5 * m * m a t h . pow ( v ,2) def p o t e n t i a l _ e n e r g y ( m , h ) :

G = 9 . 8 2 r e t u r n m * G * h def s k r i v ( e1 , e2 ) :

p r i n t " B o l l e n s ␣ r ö r e l s e e n e r g i ␣ = ␣ " , e1 ,

" J o u l e " # alt + str ( e1 )

p r i n t " B o l l e n s ␣ p o t e n t i e l l a ␣ e n e r g i " , e2 ,

" J o u l e "

(23)

Beräkning av energi hos en boll II

s v a r = r a w _ i n p u t ( ’ A n g e ␣ b o l l e n s ␣ m a s s a : ␣ ’ ) m = f l o a t ( s v a r )

s v a r = r a w _ i n p u t ( ’ A n g e ␣ b o l l e n s ␣ h ö jd : ␣ ’ ) h = f l o a t ( s v a r )

s v a r = r a w _ i n p u t ( ’ A n g e ␣ b o l l e n s ␣ h a s t i g h e t : ␣ ’ ) v = f l o a t ( s v a r )

e1 = k i n e t i c _ e n e r g y ( m , v ) ; e2 = p o t e n t i a l _ e n e r g y ( m , h ) ; s k r i v ( e1 , e2 )

23

(24)

Beräkning av energi hos en boll

En körning av detta program (från en terminal) kan se ut så här:

1 $ p y t h o n O1 . py

2 A n g e b o l l e n s m a s s a : 2 3 A n g e b o l l e n s h ö jd : 3 4 A n g e b o l l e n s h a s t i g h e t : 4

5 B o l l e n s r ö r e l s e e n e r g i = 1 6. 0 J o u l e 6 B o l l e n s p o t e n t i e l l a e n e r g i 5 8 . 9 2 J o u l e

7 $

(25)

Tips och kommentarer

Några punkter att tänka på:

Blanda aldrig språk, antingen skriver ni alla variabelnamn och funktioner på engelska eller på svenska – aldrig båda!

Använd förklarande namn till alla variabler och funktioner!

Skriv kommentarer!

Dela upp programmen i mindre delar – funktioner! Det blir lättare att följa och det blir snyggare kod, men framför allt mycket enklare att programmera!

25

(26)

Referenser

References

Related documents

Importance of information following myocardial infarction: a study of the self-perceived information needs of patients and their spouse / partner compared with the perceptions

A one-line method is all that is required (code example 13). Duck typing also makes the meta parameter completely generic and transparent. It is generic because any parameter type

Important greedy problems and algorithms discussed in this chapter include the knapsack problem (selecting a weight-bounded subset of items with maximum value), where the

sub(pattern, repl, string[, count=0]) Returns string obtained by replacing the (count first) leftmost non- overlapping occurrences of pattern (a string or a RE object) in string

FÖRSLAG TILL ÅTGÄRDER FÖR FÖRBÄTTRING 68. Fröslunda centrum

F¨orst skall vi se lite p˚ a matriser och d¨arefter p˚ a n˚ agra funktioner som finns i paket NumPy som vi anv¨ander ihop med Python, matematiska funktioner som sinus och cosinus

I Python Editor använder du [menu]&gt; Fler moduler&gt; BBC micro:bit för att lägga till ett importkommando i din kod:.. from microbit import * Tips: Om meddelandet &#34;

• L¨amna in en s˚ a enkel rapport som m¨ojligt, utan – detta ¨ ar viktigt – att utel¨amna python-kod, plottar och k¨orningsresultat.. • Rapporten ska vara ett