![]() |
Python: een vraagje
Ik ben dus bezig met leren in Python te programmeren, en hiervoor ben ik bezig met een opdracht waar ik maar niet uitkom. De opdracht is dat ik de gebruiker een DNA sequentie op laat geven en vervolgens een motief (een stukje sequentie), en dat het progamma dat in de DNA sequentie gaat zoeken en vervolgens zegt of het motief erin voorkomt.
Voor degenen die niks met Biologie hebben; een data sequentie is gewoon een reeks letters, dus ahdbdbfjfj (even voor het gemak, ik hoef nog niet rekening te houden met welke letters wel en niet mogen, dus ik laat alle letters toe), en een motief is dus een stukje daarvan, zoals aanccy (dit motief komt niet in de DNA sequentie voor) of ahd (dit motief komt wel in de DNA sequentie voor. Ik heb tot nu toe dit: lijst=[] seq1=str(input("Geef een DNA - of eiwitsequentie: ")) motief=str(input("Geef een motief: ")) lijst.append(motief) lijst.index(seq1) if motief in seq1: print ("Dit motief zit in de opgegeven sequentie.") else: print("Dit motief zit niet in de opgegeven sequentie.") Maar hij heeft deze error: Traceback (most recent call last): File "C:\Progamma's\melanie\test.py", line 37, in <module> lijst.index(seq1) ValueError: list.index(x): x not in list Ik heb al vanalles geprobeert, maar niks helpt. :/ Ik ben een nub programmeur, dus ik hoop dat jullie na 1 oogopslag de fout zien (zoals mijn leraar). Kunnen jullie helpen? :] Alvast bedankt. Edit: Ohh de spaties vallen weg als ik het bericht verstuur, nou ja het gaat meer om de code zelf. |
Ik kan niet echt Python, maar volgens mij draai je 't om? >_>
lijst.append(motief) stopt je motief in je lijst, hetgene waarnaar je wilt zoeken. Met lijst.index(seq1) probeer je de index op te vragen waar de substring begint die jouw sequence bevat. Je zoekt dan dus in lijst (die gelijk is aan motief) naar je sequence. Als je motief kleiner is dan je sequence, ga je 'm nooit vinden, wat resulteert in de foutmelding. Moet het niet zoiets als dit zijn? PHP-code:
Jouw manier kan ook. Dan krijg je zoiets als dit: PHP-code:
|
Citaat:
en dat is met try: except(): Meerdere dingne in python werken op die manier. en de filisofie van python is eerst proberen faalt het dan afhandelen dus een functie div (om te delen) schrijf je in python gewoon als return a/b en niet if (b != 0) : else etc etc Eerst proberen en de errors afvangen is de python manier om het te doen. (het kan natuurlijk anders maar dat is niet hoe het "bedoelt" is) |
Citaat:
Het is maar voorkeur, maar ik ben wel benieuwd waar je die filosofie vandaan haalt. Heb je een URL? |
in docs.python.org [proef ik dezelfde filisofie maar ik had een betere url zal ik nog eens een keer zoeken,
en je hebt bijvoorbeeld een zerodivisionexception, en die zouden ze er niet in stoppen als hun idee was, kijk maar lekker zelf of je deelt door 0. En de python hass 1 way to do things perl has 20 die kan je gewoon lezen op de site van python (of ook op docs.python.org) maar wat betreft die ene call vd stack, als je je daar zorgen om maakt, om die ene pointer extra, dan moet je sowieso niet in python bezig zijn maar in assembler (of misschien c) |
Citaat:
Bedoel je deze quote? Citaat:
Ik ben en blijf een Python n00b. ;) |
Alle tijden zijn GMT +1. Het is nu 20:40. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.