|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Ned Nov 20, 2016 1:03 pm Naslov sporočila: python in obdelava nizov (stringov) |
|
|
Pozdravljeni,
RPI sem šele nabavil in se počasi spoznavam.
Tudi "Hej, ljudje!" sem že uspel programirat v Pythonu.
Za obdelavo nizov (stringov) je gotovo na razpolago obsežna biblioteka. Malo sem iskal po iskalniku Google in tistega kar iščem, še nisem našel, kar ne pomeni, da ne obstaja.
Rad bi našel nekaj kot je v Bascomu Gettoken funkcija. Le ta iz velikega niza, kjer je v njem več besed, podnizov različnih dolžin, potegne ven tistega, katerega zaporedno številko sem podal v klicu.
Recimo
Citiram: |
b = gettoken(a,5," ") |
mi bo dal rezultat, če je v nizu
Citiram: |
a = "Dober dan, ljudje dobre volje, spet je nedelja!" |
v
ker sem pač zahteval peti podniz, in nizi so med seboj ločeni z znakom " " - blank, tretji argument v klicu.
Če take funkcije ni, jo bom moral naštrikati sam, ampak sem len in nerad izumljam kolo. _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Nov 20, 2016 1:53 pm Naslov sporočila: |
|
|
Zdravo,
uporabi string.split().
Koda: |
myString =" Zdravo, kako si?"
myWords =myString.split()
myWord =myWords[2]
myWord
'si?'
|
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Ned Nov 20, 2016 2:01 pm Naslov sporočila: |
|
|
Hvala, bom probal.
Fino bi bilo, da bi lahko string razbil tudi na osnovi kakega drugega ločilnega znaka, recimo vejice. Če morda veš, kako izgledajo NMEA telegrami ki jih daje običajni GPS modul, tam so koordinate in drugi podatki med seboj ločeni z vejicami. S to funkcijo si lahko pomagam šele potem, ko vse vejice zamenjam z blanki.
Hja, to je vedno, kadar presedlaš na drugo živinče. (Menjaš programsko okolje) Se lahko zgodi, da iz konja presedlaš na osla ali psa. Seveda oa obstaja neka verjetnost, da presedlaš tudi na boljše.
Vsekakor, kjer je volja, je tudi pot.
Hvala _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Nov 20, 2016 2:13 pm Naslov sporočila: |
|
|
Vilko,
uporabiš isto metodo, samo delimiter definiraš:
Koda: |
>>> myString = "ena,dva,tri,štiri,pet"
>>> myWords = myString.split(",")
>>> myWord = myWords[2]
>>> myWord
'tri'
>>>
|
v zgornjem primeru je delimiter ","
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Ned Nov 20, 2016 3:04 pm Naslov sporočila: |
|
|
Krasno! Hvala!
Hej, kako so pa naredil, da ti 'požre' šumnike?
Meni pri vsaki vrstici, ki vsebuje kakršen koli šumnik ali celo klicaj, daje napako:
yntaxError: Non-ASCII character '\x9a' in file strings.py on line 66, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details _________________ Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati. |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Nov 20, 2016 5:01 pm Naslov sporočila: |
|
|
Ne vem. To v linuxu dela samo od sebe...
LP G
Pardon, vidim da uporabljaš RPI. Bom pogledal, kako deluje na moji malini.
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Nov 20, 2016 6:25 pm Naslov sporočila: |
|
|
Sem preizkusil na malini, pri vnašanju stringov ni bilo težav, pri izpisovanju je pa vrglo ven tole:
Koda: |
pi@raspberrypi:~ $ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> myString = "ena,dva,tri,štiri,pet,šest"
>>> myWords = myString.split(",")
>>> myWord = myWords[3]
>>> myWord
'\xc5\xa1tiri'
>>>
KeyboardInterrupt
>>>
pi@raspberrypi:~ $
|
bom malce raziskal.
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
vpeter Član
Pridružen-a: Pon 11 Jun 2012 16:05 Prispevkov: 337 Aktiv.: 2.33 Kraj: Maribor okolica
|
Objavljeno: Ned Nov 20, 2016 6:26 pm Naslov sporočila: |
|
|
vilko je napisal/a: |
kako so pa naredil, da ti 'požre' šumnike?
Meni pri vsaki vrstici, ki vsebuje kakršen koli šumnik ali celo klicaj, daje napako:
yntaxError: Non-ASCII character '\x9a' in file strings.py on line 66, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details |
Nastavi coding:
Koda: |
#!/usr/bin/python
#-*- coding: cp1250 -*-
tvoja koda |
ali pa na utf-8 in shrani datoteko v utf-8 format.
Nazadnje urejal/a vpeter Ned Nov 20, 2016 6:38 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
|
Nazaj na vrh |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Ned Nov 20, 2016 8:10 pm Naslov sporočila: |
|
|
Evo, tole zdaj deluje:
Koda: |
# -*- coding: utf-8 -*-
myString = "škoda, šokantno, škuorja, škržat, ščurek"
myWords = myString.split(",")
for x in range (0,len(myWords)):
myWord = myWords[x]
print myWord
|
pi@raspberrypi:~ $ python test.py
škoda
šokantno
škuorja
škržat
pi@raspberrypi:~ $
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
MitjaN Član
Pridružen-a: Sre 17 Avg 2011 15:40 Prispevkov: 91 Aktiv.: 0.59 Kraj: Ljubljana
|
Objavljeno: Ned Nov 20, 2016 10:04 pm Naslov sporočila: |
|
|
Pazi, ko bereš napotke in kodo iz interneta. Med Pythonom 2 in 3 je velika razlika kako se obravnavajo stringi.
Tako, da če poganjaš Python 3 in testiraš kodo ki je pisana za python 2 si lahko več dni razbijaš glavo, zakaj ne deluje tako kot bi moralo. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 75 dni
Powered by phpBB © 2001, 2005 phpBB Group
|