Skip to content
Datahjelperne

Datahjelperne

Primary Menu
  • Datahjelperne Pluss
  • Artikkel
    • Artikler
    • Teknologi
    • Mobil og nettbrett
      • Mobil
        • Data tilbehør
        • Mobil tilbehør
      • Nettbrett
        • Nettbrett tilbehør
    • Nettverk
    • Foto og Video
    • App
    • Lyd og Bilde
    • Smartklokke
    • Konkurranse
    • Programvare
    • Crypto
    • Nytt
    • Kommentar
  • Svindel
    • Svindel
    • E-post svindel
    • Crypto svindel
    • Nettside svindel
    • SMS Svindel
    • Facebook svindel
    • telefon svindel
  • Min Konto
  • Om Oss
  • Tips en venn – Vinn 1 million
  • Kontakt oss
  • Home
  • Aktuelt
  • Programmering: Ta imot informasjon fra brukeren

Programmering: Ta imot informasjon fra brukeren

Vidar 17. januar 2025

Del dette:

  • Twitter
  • Facebook
  • Skriv ut
  • Reddit
  • LinkedIn
  • Telegram
  • E-post
image

Har du noen gang lurt på hvordan det å programmere fungerer? Hva er det egentlig man gjør når man programmerer? Hvorfor programmerer man? Er det veldig vanskelig å forstå hvordan det fungerer? I denne serien av artikler vil jeg prøve å forklare det på en måte sånn at til og med du som ikke kan noen ting om data forstår det.

Har du lest Programmering: Helt grunnleggende kunnskap og Programmering: Bruk av variabler ? Det anbefaler jeg deg å gjøre før du leser denne artikkelen. Neste artikkel er Programmering: Dine egne funksjoner

I forrige artikkel viste jeg dere hvordan man sammenligner to verdier fra variabler, og hvordan Python tolker plassering av koden din. I dag skal vi lære hvordan man kan ta i mot input fra brukeren. Det betyr at når programmet starter, så vil programmet be brukeren om å ta et valg, eller skrive inn noe, som så blir lagt inn i en variabel og avgjør hvordan programmet skal oppføre seg videre.

Hvis du har lest de to forrige artiklene mine, så vet du hvorfor jeg har skrevet import random øverst: For å importere biblioteket random, som gir meg tilgang til å bruke funksjonen random.

Etter det har jeg laget en variabel som heter tall, og bestemt at verdien skal være resultatet av funksjonen random. Jeg har også bedt random om å velge et tall mellom 1 og 6. Etter denne linjen har jeg brukt print-funksjonen til å skrive “Velkommen til programmet mitt!”.

Så kommer vi til variabelen som heter gjett. Du husker kanskje at input er en funksjon som hindrer programmet fra å fortsette før brukeren har tastet noe. Ettersom input returnerer en string med innholdet som brukeren skrev inn, så må vi huske å konververte stringen til en integer hvis vi ønsker å sammenligne det tilfeldige tallet (som er en integer) med input (som er en string) fra brukeren. Derfor har jeg tatt med int og lagt inn input inne i int sine parenteser, og deretter inne i input sine parenteser har jeg skrevet beskjeden som brukeren skal få opp i forbindelse med denne funksjonen. Det er lett å glemme at man må både åpne og lukke funksjoner.

Denne linjen vil produsere en feilmelding, ser du hvorfor? Det er fordi jeg ikke har lukket int-funksjonen. Det skulle ha vært to parenteser på slutten, ikke bare en:

For å gjøre det enda mer synlig for dere:

OK, la oss gå videre til å sammenligne verdiene til disse to variablene

La oss kjøre koden og se.

Jeg blir bedt om å gjette et tall. Nå innser jeg at jeg burde ha fortalt brukeren at det er et tall mellom 1 – 6, så jeg oppdaterer koden og legger det inn.

Da prøver vi dette en gang til. Denne gangen har jeg også tatt med en kolon : på slutten.

Jeg velger å gjette 3 den første gangen. Og det viser seg å være riktig tall. Sånn flaks!

Jeg prøver en gang til, jeg vil gjette feil.

Nå går vi videre. Hva skjer hvis jeg, som er brukeren, skriver inn et tall som ikke er mellom 1 – 6?

Ingenting spesielt skjer, den forteller meg bare at jeg har gjettet feil. Selvfølgelig, fordi jeg har jo bedt random-funksjonen om å kun velge et tall mellom 1 og 6, så om jeg legger inn tallet 9, vil jeg aldri gjette riktig. La oss sørge for å hindre brukeren fra å gjøre feil her. Dette blir litt mer komplisert nå, så hold deg godt fast.

Som jeg tidligere har forklart, så vil programmet avslutte seg selv med en gang det er ferdig. Det betyr at man får bare en sjanse til å gjøre det riktig, så må man starte programmet på nytt. Kjedelig! Vi vil jo at programmet skal gi oss flere sjanser til å gjøre det riktig før programmet er ferdig.

Derfor skal vi nå bruke en while-løkke. En while løkke er selvbeskrivende, oversatt til norsk er det mens, som i i mens. Vi forteller while hvilke betingelser som skal oppfylles, og da vil while-løkken gjøre det som står i koden mens betingelsen er oppfylt. Det ligner på hvordan vi bruker if-funksjonen, vi legger inn to variabler, og det er betingelsen som må oppfylles hvis resten av koden under if skal kjøre.

Som du ser, jeg har laget to nye variabler, den ene heter sjanser, og den andre heter runde. Jeg gir brukeren 10 sjanser til å gjette riktig tall. Første runde er runde nummer 0. Vi skal oppdatere variabelen runde for hver runde og legge på et ekstra tall. Ser du hvordan jeg gjør det? Som du ser inne i while-løkken, rett under print(“Velkommen til programmet mitt!”) så ligger det runde += 1.

Som dere tidligere har lært, så setter man variabler ved å bruke et erlikhetstegn mellom variabel og verdi. Python tolker et plusstegn etterfulgt av et etterlikhetstegn += som at det skal plusse på det som står som verdi. Altså, for hver gang while-løkken kjører koden vil runde få plusset på 1.

Jeg har gitt brukeren 10 sjanser til å gjøre det riktig. Når runde også passerer tallet 10, så utløser jeg ikke lenger betingelsen som ligger inne i while-løkken. Betingelsen er at variabelen runde er mindre enn variabelen sjanser. Jeg bruker tegnet < for å indikere at variabelen skal være mindre enn. Man kan bruke tegnet > for å indikere at variabelen skal være større enn.

Jeg har også lært dere forskjellen mellom integer og streng. Som dere ser, har jeg denne gangen laget variabelen runde uten å bruke int-funksjonen.

Det er for å illustrere for dere at det er forskjell på om man bruker anførselstegn ” “ rundt verdien eller ikke. Når man bruker anførselstegn ” “, så angir man at innholdet er en streng. Hvis man lar være å bruke anførselstegn ” “, og legger inn et tall som verdi, vil runde automatisk bli oppfattet som en integer. Derfor kan jeg egentlig like greit gjøre det sånn:

Da vil både sjanser og runde være integere. La oss nå kjøre koden og se hva som skjer. Dette er koden som skal kjøres:

Som vi ser, så avslører den jo for oss hva tallet er når vi gjetter feil. Etter å ha gjettet 10 ganger, blir jeg bedt om å trykke en tast for å avslutte programmet. Ser dere også at tallet alltid er 2, og ikke forskjellig for hver gang? Det er en logisk forklaring på dette.

Jeg har definert tall før while-løkken. Siden det bare er while-løkken som gjentar seg, og ikke hele koden, er derfor variabelen tall alltid den samme gjennom hele programmets kjøretid.

Hvis vi vil at tallet skal være forskjellig hver gang, må vi flytte tall-variabelen inn i while-løkken:

La oss også flytte en annen ting:

Vi trenger ikke at dette gjentar seg igjen og igjen, det trenger bare å skrives ut den første gangen.

La oss kjøre koden og se hva som skjer.

Som vi kan se, så er tallet forskjellig for hver gang vi gjetter. Flott!

La oss nå gjøre dette litt mer komplisert. Vi skulle jo passe på så brukeren ikke skriver et tall som ikke er mellom 1 og 6. Dette løser vi inne i while-løkken. Vi omstrukturerer også koden litt.

Som vi kan se, har jeg flyttet en del ting rundt og lagt til noe nytt. Som vi ser, mens while-løkkens betingelse er oppfylt, så vil den spørre brukeren om input, og deretter en if-løkke med to betingelser som må oppfylles samtidig. De to betingelsene er angitt inne i parentes. Den ene betingelsen er at variabelen gjett skal være mer enn 1, og den andre betingelsen er at variabelen gjett skal være mindre enn 6.

Lengre nede ser vi at jeg har en else: print(“Tallet må være mellom 1 og 6!”). Husk at plassering av blokkene er viktig for at python skal forstå hva som er relatert til hva.

Ser du også at jeg har plassert runde += 1 innenfor if-løkken som sjekker om input var mellom 1 og 6? Det er fordi vi vil gi brukeren 10 sjanser til å gjette riktig tall, og hvis brukeren skulle legge inn et tall som ikke er mellom 1 og 6, så skal det ikke ødelegge for brukerens 10 sjanser til å legge inn et tall mellom 1 og 6.

Det betyr at hvis brukeren legger inn for eksempel tallet 9 hver eneste gang, så vil runde aldri øke, og while-løkken fortsetter i det uendelige, helt til brukeren gjør det riktig og legger inn et tall mellom 1 og 6.

Ser du også at når jeg la inn tallet 1, så ba den meg om å skrive inn et tall mellom 1 og 6? Jeg gjorde jo det, jeg la faktisk inn tallet 1, og det burde ha vært gyldig.

Det er en logisk forklaring på det. Les dette høyt:

Hvis gjett er mer enn 1 og mindre enn 6. Det betyr at tallet må være mer enn 1, og mindre enn 6, altså vil vi i praksis kun ha mulighet til å bruke tallene 2 – 5. Dette kan vi løse på to ulike måter.

Vi kan sette det til å være mer enn 0 og mindre enn 7.

Eller vi kan endre betingelsen litt. Hvis man skriver et enkelt >, vil det altså bety mer enn, men hvis man tar med et erlikhetstegn etterpå, slik at det blir >= og <=, så forteller man at betingelsen skal være mer enn, eller er lik 1 og 6. Vi prøver å kjøre koden på nytt. Dette er koden som kjøres:

Dette er resultatet, nå fungerer koden med tallet 1 og 6 også.

Nå går vi litt videre. Vi ser nærmere på while-løkken:

Hva om vi ønsker at programmet skal kjøre hele tiden, uten å avsluttes etter 10 sjanser? Det er faktisk ganske enkelt:

Som tidligere nevnt, så lenge betingelsen inne i while-løkken er oppfylt, vil while-løkken fortsette i det uendelige. Les høyt det som står: mens 1 er lik 1.

Det samme her, mens datahjelper er lik datahjelper.

Nå vil koden kjøre i det uendelige, uten å noen gang stoppe før du selv lukker programmet, eller utløser en feilmelding. For å sørge for at brukeren har mulighet til å avslutte programmet når brukeren gjetter riktig tall, legger vi inn en break-statement. Dette vil avbryte while-løkken og gå ut av den. Siden det ikke skjer noe mer etter while-løkken er ferdig, avsluttes programmet.

Har du allerede sett for deg hva resultatet av dette vil bli?

Håper at du lærte noe nytt i dag!

Relatert

Continue Reading

Previous: Programmering: Bruk av variabler
Next: Forskjellen mellom å bli hacket og å bli utsatt for en falsk Facebook-profil
  • Om Oss
  • Salgsvilkår
  • Personvernerklæring
  • Tips en venn – Vinn 1 million
Copyright © All rights reserved. | MoreNews by AF themes.
Vi bruker informasjonskapsler for å forbedre din opplevelse, analysere bruk og til markedsføring. Les mer i vår personvernerklæring, og endre innstillinger når som helst.
Personvernerklæring

Your privacy settings

We and our partners use information collected through cookies and similar technologies to improve your experience on our site, analyse how you use it and for marketing purposes. Because we respect your right to privacy, you can choose not to allow some types of cookies. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer. In some cases, data obtained from cookies is shared with third parties for analytics or marketing reasons. You can exercise your right to opt-out of that sharing at any time by disabling cookies.
Personvernerklæring
Allow all

Manage Consent Preferences

Necessary
Always ON
These cookies and scripts are necessary for the website to function and cannot be switched off. Theyare usually only set in response to actions made by you which amount to a request for services, suchas setting your privacy preferences, logging in or filling in forms. You can set your browser to block oralert you about these cookies, but some parts of the site will not then work. These cookies do notstore any personally identifiable information.
Analytics
These cookies and scripts allow us to count visits and traffic sources, so we can measure and improve the performance of our site. They help us know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies and scripts, we will not know when you have visited our site.
Embedded Videos
These cookies and scripts may be set through our site by external video hosting services like YouTube or Vimeo. They may be used to deliver video content on our website. It’s possible for the video provider to build a profile of your interests and show you relevant adverts on this or other websites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies or scripts it is possible that embedded video will not function as expected.
Google Fonts
Google Fonts is a font embedding service library. Google Fonts are stored on Google's CDN. The Google Fonts API is designed to limit the collection, storage, and use of end-user data to only what is needed to serve fonts efficiently. Use of Google Fonts API is unauthenticated. No cookies are sent by website visitors to the Google Fonts API. Requests to the Google Fonts API are made to resource-specific domains, such as fonts.googleapis.com or fonts.gstatic.com. This means your font requests are separate from and don't contain any credentials you send to google.com while using other Google services that are authenticated, such as Gmail.
Marketing
These cookies and scripts may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies and scripts, you will experience less targeted advertising.
Facebook Advanced Matching
Facebook Advanced Matching can improve ads attribution and conversion tracking. It can help us reach better-targeted custom audiences through our ads. When possible, we will share with Facebook hashed information like your name, phone, email, or address.
Facebook CAPI
Facebook Conversion API Events (CAPI) help us better understand how you interact with our websites. They allow us to measure the impact of our ads on the website's conversions and they improve ads targeting through custom audiences. When possible, we might share with Facebook information like name, email, phone, address.
Confirm my choices Allow all
 

Laster kommentarer...