IN1000 Repetisjonskurs: IO og listeoperasjoner (+ string)

Like dokumenter
IN1000 Obligatorisk innlevering 7

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

Løse reelle problemer

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

TDT4110 IT Grunnkurs Høst 2015

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

IN Seminaroppgaver til uke 11

Løse reelle problemer

Informasjon Prøveeksamen i IN1000 høsten 2018

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Python: Filer og unntak Gaddis: Kapittel 6

INF Ekstrainnlevering

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

Øvingsforelesning 5 Python (TDT4110)

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

INF Uke 11. Ukeoppgaver oktober 2012

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

INF Løsning på seminaropppgaver til uke 8

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

Øvingsforelesning 5 Python (TDT4110)

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Post-it spørsmål fra timen (Arv og subklasser)

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Python: Filer og unntak Gaddis: Kapittel 6

Læringsmål og pensum. Inn- og utoperasjoner 21/10/16

Repetisjon Novice Videregående Python PDF

Håndtere mange verdier

Filbehandling Tekstfiler

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon. Professor Alf Inge Wang

Oppgaver uke 1: Løsningsforslag

Oppgavesett for Python

TDT4110 IT Grunnkurs Høst 2016

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

TDT4105 Informasjonsteknologi, grunnkurs

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Øvingsforelesning 9 i Python (TDT4110)

Eksamensoppgaver 2014

TDT4110 IT Grunnkurs Høst 2016

INF1000 Eksamen 2014 (modifisert)

Hangman. Level. Introduksjon

IN Notat om I/O i Java

INF1000 Eksamen 2014 (modifisert)

Repetisjon, del 1. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Kap 2: Løkker og lister

Hver ting i en liste kalles et element. En liste lages ved å skrive elementer inni [], med, mellom elementene:

Hvordan løse problemer med programmering?

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

Øvingsforelesning 3 Python (TDT4110)

TDT4110 IT Grunnkurs Høst 2012

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Finne ut om en løsning er helt riktig og korrigere ved behov

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

PGZ - Hangman Ekspert Python Lærerveiledning

INF120: Oblig 3. Yngve Mardal Moe

INF Uke 10. Ukesoppgaver oktober 2012

Øvingsforelesning 1 Python (TDT4110)

INF Notat om I/O i Java

UNIVERSITETET I OSLO

Mattespill Nybegynner Python PDF

Løsningsforslag til eksamen i INF1000

INF1000-SIKT - Notat om I/O i Java

Utførelse av programmer, metoder og synlighet av variabler i JSP

Del 1 En oversikt over C-programmering

Læringsmål og pensum. if (be): else (not_to_be):

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12

TEMA: Kommunikasjon med Bruker INF1000 Plenumsgruppe 1, formatert utskrift

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

Seminaroppgaver IN1010, uke 2

Innhold. IN1000 Høst Hva skal evalueres? Fra kurssidene. Uke 12: Pensumgjennomgang og eksamenstips

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

"Nelsons kaffebutikk"

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

Informasjon Eksamen i IN1000 høsten 2017

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Kapittel 1 En oversikt over C-språket

Oppgave 1.1 (1 poeng) Oppgave 1.2 (2 poeng) Oppgave 1.3 (2 poeng) 1.1

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

Transkript:

IN1000 Repetisjonskurs: IO og listeoperasjoner (+ string) IO Hva mener vi med IO? Input/output Kommunikasjon mellom bruker og datamaskin Programmer kan få flere oppgaver avhengig av hva vi putter inn Utskrift til terminal print("hei!") s1 = "Det bor en baker i Oestre Aker" print (s1 + " hei") # Ikke lov: # print (s1 + 2) print (s1, 2) s2 = "Han baker boller og pepperkaker" print (s1, "\n", s2) #Linjeskift Input fra bruker Input av strenger mintekst = input("skriv noe pent! ") print("du skrev:", mintekst) Nyttig sammen med løkker mintekst = "" while mintekst!= "slutt": mintekst = input("skriv noe pent! ") print("du skrev:", mintekst) Konvertering av input til andre typer inn = int(input("skriv et tall! "))

sum = 0 while int(inn)!= 0: inn = input("skriv et tall! ") sum += int(inn) print("summen av tallene er:", sum) Tips: Du kan bruke.isdigit() eller for å sjekke at strengen faktisk kan konverteres ( NB. kun for positive tall ). Lese fra fil Det finnes flere måter å gjøre det på, men vi bruker open( filename, r ) minfil = open("igamledager.txt", "r") linje = minfil.readline() while linje!= "": print(linje, end="") # end="" for å unngå linjeskift linje = minfil.readline() minfil.close() Tips: strip() for å fjerne linjeskiftet fra hver linje Skrive til fil Enkelt eksempel: minfil = open("nyfil.txt", "w") minfil.write("nytt innhold i min fil!") minfil.close() Med løkke: for i in range (10): minfil.write("linje" + str(i) + "\n") Kombinasjoner av IO-funksjonalitet Manipulere programflyt direkte

La bruker velge hvor vi skal hente en fil Redigere og lagre filer Eksempler: Kalkulator, teksteditor, videospill, Game of Life-seed Mengder (lister og ordbøker) Lar oss holde styr på store datamengder Kan inneholde hva som helst Liste: liste = [] navn = ["Ina", "Are", "Josef", "Anne", "Pablo"] tall = [20.5, 30.11, 10.3, 19.9, 11.32] b1 = Bil("EK3232") b2 = Bil("MINBIL") biler = [b1, b2, Bil("AZ1234")] Som regel ryddigst om listen inneholder samme type ting (kun strenger, kun tall ) Listeoperasjoner: # Legge til i liste tall.append(30.2) # Legger til paa slutten av lista navn.insert("ole", 2) # Legger til paa spesifikk indeks # Henter element fra indeks ting = liste[0] print (liste[2]) # Fjerne fra liste navn.remove("pablo") # Fjerner foerste matchende element del tall[0] # Fjerner element paa gitt indeks # Sjekke lengde print(len(navn)) enbil = biler.pop(2) # Fjerner og returnerer element paa gitt indeks # Sjekke om en streng eller et tall finnes i en liste if "Ole" in navn: print("ole ligger i lista.")

Nøstede lister: l1 = ["Anne", "Berit", "Elise"] l2 = [32, 41] l3 = ["blaalys", "solkrem", "tusj", "skrivebord"] noestetliste = [l1, l2, l3] print(noestetliste[2][1]) # Skriver ut "solkrem" Nøstede lister ved hjelp av for-løkker: rutenett = [] for i in range(10): liste = [] for j in range(10): liste.append("*") rutenett.append(liste) Skrive ut nøstede lister: for i in range(len(rutenett)): for j in range (len(rutenett[i])): print(rutenett[i][j], end="") print() Ordbok: ordbok = {} adresse = {"gatenavn": "Bygata", "gatenr": 83, "postnummer": "0120"} Har en nøkkelverdi og en innholdsverdi Alle nøkler er unike, innholdet trenger ikke å være det. Ordbok-operasjoner: # Legge til eller oppdatere verdi adresse["gatenavn"] = "Nygata"

# Finne verdier etgatenummer = adresse["gatenummer"] print(adresse["gatenavn"] + " " + adresse["gatenr"]) # Fjerne verdier del adresse["postnummer"] # Fjerner element paa gitt noekkel adresse.pop("gatenavn") # Fjerner og returnerer element Strenger kan i mange tilfeller behandles som lister: streng = "En gammel mann gikk av sted" print(streng[3]) # Skriver ut "g" # Skriver ut alle bokstavene paa hver sin linje for i in range (len(streng)): print(streng[i]) # Skriver ut "En gammel mann" print(streng[0:14]) # Skriver ut "gammel mann gikk av sted" print(streng[3:]) Et større eksempel # Leser inn en ordbok av utgifter, og lar navn paa utgift vaere noekkel def lesfrafil (filnavn): f = open(filnavn, "r") ordbok = {} linje = f.readline() while linje!= "": delt = linje.split(" ") ordbok[delt[0]] = int(delt[1]) linje = f.readline() f.close() return ordbok def skrivtilfil (liste, filnavn):

f = open(filnavn, "w") for e in liste: f.write(e) f.close() def main(): filnavn = input("hvor skal utgiftene hentes fra? ") utgifter = lesfrafil(filnavn) # Lager en liste oversikt som skal inneholde en formatert beregning # av utgifter oversikt = ["Totale utgifter:\n"] sum = 0 for e in utgifter: oversikt.append("%-15s %d" % (e, utgifter[e]) + "\n") sum += utgifter[e] oversikt.append("================================\n") oversikt.append("%-15s %d" % ("Sum:", sum)) skrivtilfil(oversikt, "beregnedeutgifter.txt") main()