Uke 2 — print / input ===================== Eksempler --------- Les `kapittel 1 av Automate the boring stuff `_. I følgende kodeeksempler skal du først lese koden, så forsøke å forstå hva den gjør. Etterpå skal du prøve å kjøre koden og se om den gjør det du trodde den kom til å gjøre. .. note:: For å laste ned filene, kan du høyreklikke / ctrl-klikke på dem og velge "Save link as" fra menyen. Lagre filene i en mappe du bruker for INF100, så åpner du den samme mappen i VSCode etterpå. Eksempel 1 .......... Last ned filen her: :download:`hello_1.py`. .. literalinclude:: hello_1.py Hva tror du outputet blir? Var det riktig? Eksempel 2 .......... Last ned filen her: :download:`hello_2.py`. .. literalinclude:: hello_2.py Svar på spørsmålet i filen. Hva tror du outputet blir? Var det riktig? Eksempel 3 .......... Last ned filen her: :download:`input_1.py`. .. literalinclude:: input_1.py Svar på spørsmålet i filen. Hva tror du outputet blir? Var det riktig? Hvorfor blir de to siste forskjellige? Eksempel 4 .......... Denne filen inneholder noen feil som gjør at den ikke kan kjøres. Finn feilen(e) og endre koden slik at den kan kjøres. Last ned filen her: :download:`errors_1.py`. .. literalinclude:: errors_1.py Å finne og fikse feil i koden er én etter én er en vanlig måte å jobbe på. (Vanligvis er det ikke så mange feil som her). Heldigvis er Python ganse hjelpsom med å si ifra. Her er en typisk feilmelding:: File "errors_2.py", line 7 Input("Hva heter du? ") NameError: name 'Input' is not defined Den første linja forteller oss at feilen ligger i ``errors_2.py`` på linje 7. Den andre linje viser oss linje 7, der hvor feilen er. Til slutt ser vi hva slags feil som har oppstått. Her er det en ``NameError`` og Python sier at ``Input`` (med stor I) ikke finnes. Vi fikser feilen ved å skrive ``input`` med liten i. For å fikse *alle* feilene kan vi kjøre fila på nytt, få en ny feilmelding og fikse den også helt til vi ikke får flere feil. Eksempel 5 .......... Last ned filen her: :download:`calc.py`. .. literalinclude:: calc.py Svar på spørsmålet i filen. Hva tror du outputet blir? Hvorfor må vi bruke float() før beregningen av arealet? Oppgaver -------- I disse oppgavene skal du lese inn input, og bruke det videre i koden din. Det er viktig å følge instruksene i oppgaven og skrive akkurat det som blir bedt om. Husk på disse tingene: * Alle oppgavene skal løses med kun det dere har lært til nå. (``input()``, ``print()``, ``len()`` og enkle utregninger) * Hver gang du leser inn noe med ``input()`` skal svaret være på den samme linjen. Skriv f.eks ``input('Skriv noe: ')``, istedet for ``input('Skriv noe:\n')`` (``\n`` legger til en ny linje). * Les oppgaveteksten nøye, det er vanlig å måtte lese gjennom flere ganger før du forstår det 100% * Når eksempelkjøringer er oppgitt, skal kjøringen se akkurat ut som oppgitt, dette **inkluderer** mellomrom osv. Se f.eks nedenfor: Eksempelkjøring:: Tekst: Heihei ========== = Heihei = ========== Hvis din kode ser slik ut:: Tekst: Heihei ========== = Heihei = ========== Her er det en ny linje (``\n``) etter ``Tekst:`` Hvis din kode ser slik ut:: Tekst:Heihei ========== = Heihei = ========== Her mangler det et mellomrom etter ``Tekst:`` Oppgave 1 .......... I filen ``oppgave_1.py``, skriv kode som gjør følgende, **i oppgitt rekkefølge**: 1. Spør brukeren om navnet deres via ``input()``, og lagre (assign) resultatet i en variabel. 2. Skriver ut navnet med ``print()`` funksjonen. 3. Skriver ut antall bokstaver i navnet med ``len()`` og ``print()`` funksjonen. Eksempelkjøring:: Hva heter du? Ola Ola 3 Oppgave 2 .......... I filen ``oppgave_2.py``, skriv kode som gjør følgende, **i oppgitt rekkefølge**: 1. Spør om brukerens alder via ``input()`` funksjonen, og lagrer resultatet i en variabel. 2. Printer hvor mange år det er til brukeren blir 100 år. Eksempelkjøring:: Hvor gammel er du? 23 Du blir 100 år om 77 år. Oppgave 3 ......... I filen ``oppgave_3.py``, skriv kode som gjør følgende, **i oppgitt rekkefølge**: 1. Spør brukeren om en temperatur i enheten Fahrenheit via ``input()`` funksjonen, og lagrer resultatet i en variabel. 2. Beregner tilsvarende temperatur i enheten Celsius. Den matematiske formelen er: .. math:: T_C = (T_F - 32) \cdot \frac{5}{9}, hvor :math:`T_C` er temperaturen i Celsius og :math:`T_F` er temperaturen i Fahrenheit. 3. Print resultatet. Eksempelkjøring:: Temperatur i Fahrenheit: 225 Temperatur i Celsius: 107.22222222222223 Oppgave 4 ......... I filen ``oppgave_4.py``, skriv kode som gjør følgende, **i oppgitt rekkefølge**: 1. Leser inn en streng via ``input()`` funksjonen, og lagrer resultatet i en variabel. 2. Tegn en boks rundt strengen. Det skal være **ett** mellomrom før og etter strengen, og **en** ``=`` på hver side. Fyll inn over og under tilsvarende. Eksempelkjøring:: Tekst: Heihei ========== = Heihei = ========== Oppgave 5 ......... I filen ``oppgave_5.py``, skriv kode som gjør følgende, **i oppgitt rekkefølge**: 1. Les inn en streng via ``input()`` funksjonen, og lagre resultatet i en variabel. 2. Les inn et heltall med ``input()``, dette heltallet skal du bruke som lengde i neste steg. 3. Skriv så ut en boks med input-strengen fra steg 1 i midten, den horisontale (sidelengs) lengden av boksen skal være lik heltallet fra steg 2. Det er ikke nødvendig å bruke ``if(..)`` for å løse oppgaven. Tips **** Bruk heltallsdivisjon ``//`` for å beregne antall mellomrom til venstre og høyre for teksten. Eksempelkjøring:: Tekst: Heihei Tall: 40 ======================================== = Heihei = ========================================