Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python funktion palauttama lista

p99o [24.02.2015 17:01:52]

#

Tarkoituksena on hakea tekstitiedostosta (words.txt) kaikki tietyn ehdon täyttävät sanat (muuttuja regex).

Kielenä python, jota en hirveästi ole koodaillut. Homma toimi hyvin siihen asti kunnes tein siitä oman funktion ( getPossibleWords(regex) )

koodi menee jumiin tai/ja ei palauta mitään ( "[]" ). kiitos

regex = str(input("regex: "))
print(regex)
foundWords = getPossibleWords(regex)
# eri tapoja tulostaa taulukko, jos vika olisikin siinä ... print(str(foundWords))
def getPossibleWords(regex):

        file = open(sourceFile, 'r', encoding='utf-8')
        fileContent = file.read()
        file.close()

        matches = re.findall(regex, fileContent)
        return matches

Metabolix [24.02.2015 17:46:38]

#

Olisi vähintäänkin järkevää näyttää myös se aiempi koodi, joka toimi.

Ainakaan vika ei ole funktiossasi:

import re
def getPossibleWords(regex):
	file = open(sourceFile, 'r', encoding='utf-8')
	fileContent = file.read()
	file.close()
	matches = re.findall(regex, fileContent)
	return matches
sourceFile = input("file: ")
regex = input("regex: ")
print(getPossibleWords(regex))
file: kotus_sanat.txt
regex: \baa..o\b
['aalto', 'aatto']

Lisähuomio: str on koodissasi turha.

p99o [24.02.2015 18:08:21]

#

aiempi koodi on jo tuossa. Erona vain se että regex tulee funktiolle parametrinä.

regex = input("regex: ")

file = open(sourceFile, 'r', encoding='utf-8')
fileContent = file.read()
file.close()
matches = re.findall(regex, fileContent)
print(str(matches)) # tämä lisäyksenä tosin

hakee esim.

Regex >> \bohjel.{1,3}
['ohjelma', 'ohjelma', 'ohjelma', 'ohjelmai', 'ohjelmaj', 'ohjelmak', 'ohjelmak', 'ohjelmal', 'ohjelmal', 'ohjelmal', 'ohjelmal', 'ohjelmam', 'ohjelman', 'ohjelman', 'ohjelman', 'ohjelman', 'ohjelman', 'ohjelman', 'ohjelman', 'ohjelmap', 'ohjelmas', 'ohjelmat', 'ohjelmat', 'ohjelmat', 'ohjelmav', 'ohjelmis', 'ohjelmoi', 'ohjelmoi', 'ohjelmoi', 'ohjelmoi', 'ohjelma', 'ohjelma', 'ohjelma', 'ohjelma', 'ohjelma', 'ohjelma']

Metabolix [25.02.2015 16:08:06]

#

p99o kirjoitti:

Erona vain se että regex tulee funktiolle parametrinä.

Ihan varmasti koodissa on muutakin eroa, jos se muka ei toimi. Kuten yllä näytin, antamasi koodi toimii, joten etsi vikaa muualta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta