eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingelementarne pytania z pythona › Re: elementarne pytania z pythona
  • Data: 2020-04-11 11:55:43
    Temat: Re: elementarne pytania z pythona
    Od: fir <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu sobota, 11 kwietnia 2020 11:33:54 UTC+2 użytkownik Piotr Chamera napisał:
    > W dniu 2020-04-11 o 11:16, fir pisze:
    > > W dniu piątek, 10 kwietnia 2020 20:35:21 UTC+2 użytkownik fir napisał:
    > >> W dniu piątek, 10 kwietnia 2020 19:33:33 UTC+2 użytkownik Piotr Chamera napisał:
    > >>> W dniu 2020-04-10 o 12:59, fir pisze:
    > >>>> ostatnio troche odpoczalem i mysle sobie by cos postudiowac moze rootkity moze
    opencl..ale stanelo jadnak na podstawah pythona ;C
    > >>>>
    > >>>> morugam bo jest to troche lamerskie ale z drugiej strony potrzebowalem napisac
    bota na nasz ircowy kanal
    > >>>>
    > >>>> nie znam jednak zupelnych podstaw na dwutygodniowe lektury podrecznikow troche
    szkoda mi czasu i moze tu bedzie szybciej
    > >>>>
    > >>>> mam test typu
    > >>>>
    > >>>> msg = "cytuj pnnn 1232"
    > >>>>
    > >>>> i potrzebuje dobrac sie do tej trzeciej liczby i pobrac jej wartosc, pod
    warunkiem ze pocztek stringa bedzie wlasnie "cytuj pnnn" z kolei jesli tam bedzie nic
    albo nie liczna tez chcialbym miec to zdetektowane
    > >>>>
    > >>>> jaki to kod? tnx
    > >>>
    > >>> Można użyć wyrażeń, regularnych (pisałem w pythonie 2.7, w 3.x powinno
    > >>> być podobnie)
    > >>>
    > >>> import re
    > >>> m = re.match(u"(cytuj pnnn )(\d+)", msg)
    > >>>
    > >>> jeśli nie dopasuje do wzorca m będzie None
    > >>> jeśli dopasuje, to za pomocą group() można pobrać poszczególne części
    > >>> dopasowania
    > >>>
    > >>> >>> m.group(0)
    > >>> u'cytuj pnnn 1234'
    > >>>
    > >>> >>> m.group(1)
    > >>> u'cytuj pnnn '
    > >>>
    > >>> >>> m.group(2)
    > >>> u'1234'
    > >>>
    > >>> >>> int(m.group(2))
    > >>> 1234
    > >>
    > >> ok tnx zobacze troche pozniej, tez python 2.7
    > >
    > > nie dziala ale poprawdzie to troche uproscilem konkretny string jest taki
    > >
    > > :fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion ogniem 222
    > >
    > >
    > > chodzi o to by ignorowal poczatek wymagal ":minion ogniem" i bral liczbe po tym
    > >
    > > ta liczba pozniej jest numerem lini z pliku tekstaowego ksiazki np "ogniem i
    mieczem" ktor moj bot minion zacytuje na kanal
    > >
    > > wie moze kolega?
    > >
    > > (wiem ze moglbym sie wczytac ale narazi enie mam sily i poszukuje prostej drogi
    poki nie skumuluje energii)
    > >
    >
    > Warto przejrzeć przynajmniej dokumentację modułu wyrażeń regularnach.
    > przy dopasowaniu wzorców tekstowych to bardzo dobre narządzie.
    >
    > >>> import re
    > >>> msg = u":fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion
    > ogniem 222"
    > >>> m = re.match(u".*?(:minion ogniem )(\d+)", msg)
    > >>> int(m.group(2))
    > 222

    ale jak odrzucic kod z tym none
    ten kod chyba dziala ale czy m moze byc none? i czy skipnie to say gdy nie znajdzie
    wyrazenia? (doucze sie z tego z czasem ale narzie nie che sie w to zbyt wczytywac,
    cala amsa innych rzeczy nie robi tymczasem problemu )

    mm = re.match(u".*?(:minion ogniem )(\d+)", ircmsg)

    m = int(mm.group(2))

    if m :
    say( ogniem_i_mieczem_text[m])
    say( ogniem_i_mieczem_text[m+1])

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: