""" Denne oppgaven har mange ulike løsninger. Utfordringen er å komme til riktig linje i filen og printe bokstaven på riktig posisjon der. """ # Løsning 1: Gå gjennom filen til vi kommer til kromosom 2, legg deretter hele sekvensen # for kromosom 2 inn i en streng, og hent ut bokstaven på posisjonen i denne strengen # denne løsningen leser ikke alle kromosomene inn i minnet, men bare ett kromosom. f = open("dna.txt") posisjon = 135851076 - 1 # trekker fra 1 fordi posisjonen antar at første bokstav er 1, neste 2 osv (mens i python er første 0) i = 0 legg_til = False # hvorvidt vi har kommet til kromosom 2 og skal begynne å legge til sekvense til dna-strengen dna = "" for line in f: if line.startswith(">"): if line.startswith(">2"): legg_til = True else: # ikke legg til noe etter kromosom 2 legg_til = False elif legg_til: dna += line.strip() print(dna[posisjon]) # Løsning 2: # Her leser vi inn alle linjene med readlines() først, så denne løsningen er litt tregere og krever mer minne # løsningen går deretter gjennom linjene til kromosom 2 # merk at denne løsningen ikke fungerer hvis det ikke er et kromosom nr. 3 som kommer etterpå fil = open("dna.txt") linjer = fil.readlines() indeks_start = linjer.index(">2\n") indeks_end = linjer.index(">3\n") kromosom = "" for i in range(indeks_start+1, indeks_end): kromosom += linjer[i].strip() print(kromosom[posisjon])