Total fremgang
0%
1.11: Øvelser bestått0 av 0

0% fullført

Lærebok/Kapittel 1.11

Kapittel 1.11

Enkel bibliotek import og random-modulen

I dette kapitlet skal du lære om enkel bibliotek import og random-modulen i Python.

Kapittel 1.11: Bibliotek import og random-modulen
Se denne videoen før du starter med kapitlet for en best mulig introduksjon.

Enkel stjerneimport

Vi skal nå lære om hvordan vi importerer biblioteker i Python. Den enkleste importen for introduksjonsformål er en såkalt stjerneimport. Det er verdt å nevne at det å benytte en slik import ofte ikke er sett på som "god skikk". Dette er blant annet fordi denne typen import ofte importerer mer enn nødvendig og at alternativet ofte gjøre koden vår mer oversiktlig. Vi begynner med å importere random-modulen direkte til konsollen. For funksjonene under skal virke må du først skrive inn:from random import i konsollen og trykke Enter.*

Oppgave 1.44 (konsolloppgave)
Skriv inn i konsollen from random import *, trykk Enter. Du har nå lastet inn random modulen til konsollen.\n\nSimuler ett terningkast ved å skrive randint(1,6) inn i konsollen, trykk Enter. Du skal nå få et tilfeldig tall mellom 1 og 6.\n\nSimuler ett myntkast ved å skrive randint(0,1) inn i konsollen, trykk Enter. Du skal få et tilfeldig tall mellom 0 og 1. La 0 representere kron og 1 representere mynt.\n\nSimuler et tilfeldig desimaltall mellom 0 og 1 med 2 desimaler med round(uniform(0,1),2)\n\nSkriv navn = ['Susanne','Tormod','Ricardo'] inn i konsollen og trykk Enter. Skriv deretter choice(navn) inn i konsollen slik at du tilfeldig velger ett av navnene. Bruk choice() til å simulere terningkast og myntkast. (Du må definere terninger og myntkast som lister først) Sett terningkast = choice([1,2,3,4,5,6]) og myntkast = choice([0,1]) Skriv deretter print(terningkast) og print(myntkast)
Lett
Python
Loading...
Løsningsforslag Oppgave 1.44
Se videoløsning for denne oppgaven.
Eksempel 28: Terningkast med random
Python
Loading...
Oppgave 1.45 (random_kopi.py)
Kopier koden ifra eksempelet like over. \n\nSara og Lars bestemmer seg for å isteden ha en konkurranse om hvem som får best sammenlagt resultat på 2 fiktive terninger med 100 sider hver, der sidene har verdiene (1,2,3,4, … ,98,99,100). Endre koden slik at de kaster to slike terninger hver (altså isteden for terninger med 6 sider). \n\nSara og Lars bestemmer seg isteden for å ha en konkurranse med to tilfeldige desimaltall (flyttall). Hvordan disse tallene genereres er uten betydning, de kan ikke se noe mønster i dem. Hver terning kan gi alle verdier i mellom 0 og 1 (terningene kan altså for eksempel vise 0.0, 0.5, 0.9995, 0.543, 0.11, 0.0002, osv.). Lag et program der de får 2 slike 'terninger' hver, og den med høyest sum vinner konkurransen.
Lett
Python
Loading...
Løsningsforslag Oppgave 1.45
Se videoløsning for denne oppgaven.

Import av enkeltfunksjoner fra biblioteker

Vi har frem til nå lært hvordan vi importerer alle funksjonene i et pythonbibliotek. Vi skal nå se på hvordan vi kan importere funksjoner enkeltvis ifra biblioteker. For å gjøre dette ersatter vi * i importkommandoen vår med funksjonsnavn. Ønsker vi å importere fler funksjoner så setter vi komma imellom slik vist i eksempelet under.

Eksempel 29: Import av spesifikke funksjoner
Python
Loading...
Oppgave 1.46 (random_kast.py)
NB: Husk å importere det du trenger ifra random modulen enkeltvis.\n\nLag et program som simulerer et terningkast. Lagre verdien i en variabel du kaller terning_1.\n\nLag enda et terningkast lagre verdien i variabelen terning_2. Skriv ut det høyeste terningkastet av de to. Det skal skrives ut uansett hvilket av terningkastene som var høyest.
Lett
Python
Loading...
Løsningsforslag Oppgave 1.46
Se videoløsning for denne oppgaven.

Import av enkeltfunksjoner med egenvalgte navn (alias)

Vi har muligheten til å endre navnene på funksjonene vi importerer imens vi importerer de. Dette kalles å importere funksjoner under et alias. Som tidligere spesifiserer vi funksjonene vi ønsker å importere, men vi skriver as nyttnavn ved siden av. Vi kan gjøre dette for å korte ned det vi trenger å skrive når vi lager koden vår, eller vi kan gjøre det av nødvendighet fordi vi allerede har importert andre funksjoner med samme navn.

Eksempel 30: Import med alias (as)
Python
Loading...
Oppgave 1.47 (random_alias.py)
Skriv from random import randint i begynnelsen av koden.\nBruk randint til å simulere et myntkast der 0 representer mynt og 1 representerer kron. La programmet skrive ut ordet 'Kron' om utfallet er 1, og la programmet skrive ut ordet 'Mynt' om utfallet er 0.\n\nDu kan også importere med alias. Det vil si at du kan bytte ut navnet til funksjonen.\nImporter uniform som uni slik: from random import randint, uniform as uni\nBruk uni til å finne et tilfeldig tall i mellom 0 og 100 med 2 desimaler. Bruk round() funksjonen.
Lett
Python
Loading...
Løsningsforslag Oppgave 1.47
Se videoløsning for denne oppgaven.

Import og bruk av "klasser" som funksjoner

Vi introduserer enda en vanlig import av funksjoner. I dette tilfellet importerer vi hele biblioteket som et eget bibliotekobjekt altså en "klasse". Vi kan benytte oss av dette objektet direkte når vi skal kalle på bibliotekets funksjoner. Teknisk sett er disse funksjonene ikke lengre funksjoner som vi er vant med ifra tidligere, men klasse/objekt metoder.

Eksempel 31: Import av hele biblioteket
Python
Loading...

Endring av navn på importerte klasser

Vi kan også importere bibliotek (/klasser) med et andre navn (random kan for eksempel erstattes med rnd). Dette gjøres noen ganger for å korte ned koden. Vi skriver da import biblioteknavn as nyttnavn.

Eksempel 32: Import av bibliotek med alias
Python
Loading...
Oppgave 1.48 (random_import.py)
Skriv import random i toppen av koden din.\nBruk random.randint til å generere et tilfeldig heltall i området [3,10]\nBruk random.uniform(a,b) til å finne et tilfeldig desimaltall i området [2,4]\n\nDu kan også importere hele biblioteket med alias. Det vil si at du kan bytte ut navnet på biblioteket til hva du vil.\nPrøv import random as rnd, og bruk da rnd.randint(a,b), rnd.uniform(a,b) osv.
Lett
Python
Loading...
Løsningsforslag Oppgave 1.48
Se videoløsning for denne oppgaven.

Oppgavesamling Kapittel 1

Husk å lagre programmene du lager i en egen mappe. Dette er spesielt viktig for oppgavene med filnavn med dette utseendet: oppgavenavn_1. Disse oppgavene bygger vi nemlig videre på i senere delkapitler.