Skip to content

Commit

Permalink
Update 1-objekt-och-metoder.md
Browse files Browse the repository at this point in the history
updated language
  • Loading branch information
linza79 authored Dec 2, 2024
1 parent a78f5a3 commit 3f49d08
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions data/osa-8/1-objekt-och-metoder.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Efter den här delen

</text-box>

Detta är första delen av fortsättningskursen i programmering. Materialet är designat för att användas med programmeringsmiljön Visual Studio Code, precis som i den föregående kursen (Grundkurs i porgrammering). Ifall du inte använt Visual Studio Code tidigare, hittar du installeringsinstruktionerna [här](https://www.mooc.fi/fi/installation/vscode) och en introduktion till programmeringsomgivningen från förra kursen [här](https://rage.github.io/ohjelmointi-24-sv/osa-4/1-vscode).
Detta är första delen av fortsättningskursen i programmering. Materialet är designat för att användas med programmeringsmiljön Visual Studio Code, precis som i den föregående kursen (Grundkurs i programmering). Ifall du inte använt Visual Studio Code tidigare, hittar du installationsinstruktionerna [här](https://www.mooc.fi/fi/installation/vscode) och en introduktion till programmeringsomgivningen från förra kursen [här](https://rage.github.io/ohjelmointi-24-sv/osa-4/1-vscode).

I grundkursen i programmering lade vi märke till att det ofta är logiskt att gruppera relaterade data tillsammans i våra program. Ifall vi till exemepl skulle förvara information om en bok skulle det vara logiskt att använda oss av en tupel eller en ordlista för att organisera datan till en enskild datastruktur.
I grundkursen i programmering lade vi märke till att det ofta är logiskt att gruppera relaterade data tillsammans i våra program. Ifall vi till exemepl skulle förvara information om en bok skulle det vara logiskt att använda oss av en tupel eller en ordlista för att organisera informationen i en och samma datastruktur.

Lösningen kunde se ut så här när man använder en tupel:

Expand All @@ -32,7 +32,7 @@ bok = (namn, författare, ar)
print(bok[0])
```

I ett fall som detta är fördelen med att använda en ordlista att vi kan använda strängar istället för indexar som nycklar. Vi kan alltså ge beskrivande namn till de saker som lagras i datastrukturen:
I ett fall som detta är fördelen med att använda en ordlista att vi kan använda strängar istället för numeriska index som nycklar. Vi kan alltså ge beskrivande namn till den typ av element som lagras i datastrukturen:

```python
namn = "Kodningsboken"
Expand Down Expand Up @@ -77,9 +77,9 @@ Sju Python
<text-box variant="info" name="Python objekt">


Du kanske kommer ihåg från grundkursen i programmering att vilket som helst värde i Python internt behandlas som ett objekt. Det betyder att värdet som lagrats i en variabel är en _referens till ett objekt_. Själva data är lagrad inuti ett objekt i datorns minne. Ifall du ger ett värde till en ny variabel med tilldelningen `a = 3`, är värdet som lagras i variabeln _inte_ 3, utan en _referens till ett objekt som innehåller värdet 3_.
Du kanske kommer ihåg från grundkursen i programmering att vilket som helst värde i Python internt behandlas som ett objekt. Det betyder att värdet som lagrats i en variabel är en _referens till ett objekt_. Själva data är lagrade inuti ett objekt i datorns minne. Ifall du ger ett värde till en ny variabel med tilldelningen `a = 3`, är värdet som lagras i variabeln _inte_ 3, utan en _referens till ett objekt som innehåller värdet 3_.

De flesta andra programmeringsspråk (i varje fall de som stöder objektorienterad programmering) inkluderar vissa särskilt definierade _primitiva datatyper_. Dessa inkluderar ofta åtminstone [integer] heltal, flyttal och booleska sanningsvärden. Primitiver processeras direkt, vilket betyder att de är lagrade direkt i variabler, inte som referenser. Python har inga sådana primitiver, men att jobba med de grundläggade datatyperna i Python fungerar i praktiken på liknande sätt. Objekt av dessa grundläggande datatyper (såsom tal, booleska värden och strängar) är _oföränderliga_, vilket betyder att de inte kan ändras i minnet. Om värdet som lagras i en variabel med en grundläggande datatyp ändras, dvs. variabeln tilldelas ett nytt värde, så byts hela referensen ut. Det ursprungliga objektet finns dock kvar i minnet.
De flesta andra programmeringsspråk (i varje fall de som stöder objektorienterad programmering) inkluderar vissa särskilt definierade _primitiva datatyper_. Dessa inkluderar ofta åtminstone [integer] heltal, flyttal och booleska sanningsvärden. Primitiver processeras direkt, vilket betyder att de är lagrade direkt i variabler, inte som referenser. Python har inga sådana primitiver, men att jobba med de grundläggade datatyperna i Python fungerar i praktiken på liknande sätt. Objekt av dessa grundläggande datatyper (såsom tal, booleska värden och strängar) är _oföränderliga_, vilket betyder att de inte kan ändras i minnet. Om värdet som lagras i en variabel med en grundläggande datatyp ändras, dvs. variabeln tilldelas ett nytt värde, så byts hela referensen ut. Det ursprungliga objektet finns dock fortfarande kvar i minnet.


</text-box>
Expand Down Expand Up @@ -107,15 +107,15 @@ Ernest Pythonson

</sample-output>

På samma sätt opererar en strängmetod på det strängobjekt som den kallas på. Några exempel på strängmetoder är `count` och `find`:
På samma sätt opererar en strängmetod på det strängobjekt som den anropas för. Några exempel på strängmetoder är `count` och `find`:

```python
namn = "Påhittige Per"

# Skriv ut mängden P som förekommer
# Skriv ut antalet P som förekommer
print(namn.count("P"))

# Mängden P som hittas i en annan sträng
# Antalet P som hittas i en annan sträng
print("Påhittade Praktiska Prepositioner".count("P"))

# Indexen av delsträngen Per
Expand All @@ -134,7 +134,7 @@ print("Helt annan sträng".find("Per"))

</sample-output>

Strängmetoder returnerar värden, men ändrar inte innehållet i en sträng eftersom strängar i Python är oföränderliga. Detta gäller däremot inte alla objekt och metoder. Listor i Python är föränderliga, alltså kan listmetoder ändra innehållet i den lista som den kallas på utan att skapa en ny referens eller ett nytt objekt.
Strängmetoder returnerar värden, men ändrar inte på strängarnas innehåll eftersom strängar i Python är oföränderliga. Detta gäller däremot inte alla objekt och metoder. Listor i Python är föränderliga, alltså kan listmetoder ändra innehållet i den lista som den anropas för utan att skapa en ny referens eller ett nytt objekt.

```python
lista = [1,2,3]
Expand Down Expand Up @@ -169,7 +169,7 @@ Varje ordlistsobjekt innehåller värden som refererar till följande nycklar:
* `"resultat2"`: deltagarens andra resultat (liksom ovan)
* `"resultat3"`: deltagarens tredje resultat (liksom ovan)

Funktionen ska beräkna genomsnittet av de tre resultaten för varje deltagare och sedan returnera den deltagare vars genomsnittliga resultat är minst. Returvärdet bör vara hela det ordlistsobjekt som innehåller information om deltagaren.
Funktionen ska beräkna medelvärdet av de tre resultaten för varje deltagare och sedan returnera den deltagare vars medelresultat är minst. Returvärdet bör vara hela det ordlistsobjekt som innehåller information om deltagaren.

Du kan anta att endast en deltagare har det minsta medeltalet.

Expand All @@ -193,7 +193,7 @@ print(minsta_medeltalet(person1, person2, person3))

<programming-exercise name='Radernas summor' tmcname='osa08-02_radernas_summor '>

I Python är varje värde som lagras i en variabel en referens till ett objekt, så varje värde som lagras i en lista är också en referens till ett objekt. Detta gäller även vid modellering av en matrisdatastruktur: varje värde i listan på högsta nivån är en referens till en annan lista, som i sin tur innehåller referenser till de objekt som representerar elementen i matrisen.
I Python är varje värde som lagras i en variabel en referens till ett objekt, så varje värde som lagras i en lista är också en referens till ett objekt. Detta gäller även när vi modellerar en matris (dvs. en tabell, tvådimensionell lista): varje värde i listan på högsta nivån är en referens till en annan lista, som i sin tur innehåller referenser till de objekt som representerar elementen i matrisen.

Skapa funktionen `radernas_summor(matris: list)`, som tar en heltalsmatris som argument.

Expand Down

0 comments on commit 3f49d08

Please sign in to comment.