Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyCode Conference :: https://pycode-conference.org/
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Przeszukiwanie w zbiorze tekstu - Python  (Przeczytany 1250 razy)
« : 01:16 08/01/18 »
mormaris Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 1


Witam, potrzebuje pomocy z zadaniem z Pythona, oto polecenie a później udostępnie mój kod.

1) Mam przyszykować dwie funkcje wyszukiwania wszystkich wystąpień danego słowa w zbiorze tekstowym :
  • b)opartą na biernym poszukiwaniu.
2)Ponadto, przygotować trzy funkcje wykonujące następujące operacje na zawartości zbioru tekstowego
  • usuwanie z tekstu wszystkich znaków, które nie są literami małymi lub dużymi lub nie są kropką.
  • obliczanie częstości występowania w procentach małych liter alfabetu w zadanym tekście;
  • wybieranie z tekstu linii, w których ilość wystąpień danej litery jest większa od pewnej liczby.

To co mam to zadanie 1.



def BinarySearch(michal, Min,Max,key):
 if Max <Min :
    return False
 else:
    mid = (Max+Min) //2
    if michal[mid] > key:
        return BinarySearch(michal,Min,mid-1,key)
    elif michal[mid] <key:
        return BinarySearch(michal,mid+1,Max,key)
    else:
        return mid
with open("1.txt") as f1:
    row =f1.read()
    slowo =row.split()
    print(slowo)
posortowana=sorted(slowo)
print(BinarySearch(posortowana, 0,len(posortowana),'dziewczyny.'))


linear search i binary search, aczkolwiek w binary search'u muszę jeszcze zrobić tak by usunąć z tekstu słowo, które wyłapało i szukało dalej aż nie znajdzie wszystkich słów, które chcemy by znalazło.

Co do 2 zadania jeszcze nie tknąłem, z góry dzięki za pomoc!
Zapisane
« Odpowiedz #1 : 12:51 08/01/18 »
Guaz Offline
Advanced Python User

Zobacz profil
**

Reputacja: 38
Płeć: Mężczyzna
Wiadomości: 286


#2
a) Tutaj najprostsze będzie chyba sprawdzanie typu:
Kod
if letter.isalpha() or letter == ".":
b) Od tego też mamy odpowiednią funkcję dla napisów:
Kod
if letter.isupper(): #(...)
if letter.islower():
c)No i tutaj pozostaje instrukcja która po zliczeniu ilości danej litery się wykona.
Kod
if line.count(letter) > required: #(Po tym jakaś funkcja wykonująca zadanie dla tej linii)

To proste warunki które powinny cię na coś naprowadzić, do tego możesz także użyć ragexpów. Albo wykonać odpowiednie przekształcenia, ale ten sposób jest chyba najprostszy Uśmiech.
Zapisane

Python 3.5.2 / Mint
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot