Tartalom: String II. (replace, find, count, lower, stb), feltételek (if, elif, else), boolean logika
Eddig nem esett róla szó, de a Python változóknak, konstansokak stb. is vannak elnevezési irányelvei. Errol részletesen a PEP 8 - Style Guide for Python Code
-ban lehet olvasni. A fontosabbak a következok:
Típus | Jelölés |
---|---|
konstansok | IN_ALL_CAPS |
változók | snake_case |
metódusok | snake_case |
függvények | inkább snake_case , de ritkávbaan használt és megengedett a mixedCase is |
osztályok | StudlyCaps (CamelCaps ) |
palindrom = "Indul a görög aludni"
mondat = "Ez egy példa mondat, python funkciók szemléltetésére"
abece = "A,Á,B,C,Cs,D,Dz,Dzs,E,É,F,G,Gy,H,I,Í,J,K,L,Ly,M,N,Ny,O,Ó,Ö,O,P,R,S,Sz,T,Ty,U,Ú,Ü,U,V,Z,Zs"
csak_egyes_betuk = "A,Á,B,C,D,E,É,F,G,H,I,Í,J,K,L,M,N,O,Ó,Ö,O,P,R,S,T,U,Ú,Ü,U,V,Z"
print(mondat)
mondat[0] # Karakterlánc elso eleme
mondat[-1] # Karakterlánc utolsó eleme
mondat[0] = 'h' # Karakterlánc így nem módosítható :(
Erre válaszként a
TypeError: 'str' object does not support item assignment
üzenetet kapnánk. Ehelyett rendelkezésünkre állnak a string "szeletelo jelölések" (célszerubb az angol terminológia: slice notation
), a stringek összefuzése (pl. +=
, +
), a csere (replace
), stb. muveletek.
Nézzünk példákat slice notation
-ra.
mondat[:12] # Elso 12 karakter
mondat[7:] # Karakterlánc vége, 7. eletol
mondat[-15:] # az utolsó 15 elem
mondat[7:36]
len(mondat) # Karakterlánc hossza
mondat[:-15] + ' kipróbálására'
print(mondat.lower())
print(mondat.upper())
palindrom[::-1]
mondat[::-1]
csak_egyes_betuk # emlékeztetoül
csak_egyes_betuk[::2]
abece # emlékeztetoül
abece.replace(",", " ")
mondat.replace("példa", "teszt")
mondat.replace("e", "_X_")
mondat.replace("e", "_X_", 2) # csak az elso 2-t cseréli
Összefoglalva a Python slice notation
(magyarul talán ~szelet):
x[start:end] # az elemek starttól end-1-ig
x[start:] # az elemek starttól végig
x[:end] # az elemek az elejétol end-1-ig
x[:] # az összes elem
Mindegyiket ki lehet egészíteni step
értékkel, így minden step
-edik elemet érhetjük el:
x[start:end:step]
A legfontosabb észben tartani, hogy az :end
érték az elso olyan értéket képviseli, amely nincs a kiválasztott szeletben. Tehát a különbség a end
és a start
között a kiválasztott elemek számát jelenti (ha 1 lépés az alapértelmezett).
A másik lehetoség az, hogy a kezdet vagy a vég negatív szám lehet, ami azt jelenti, hogy az elejétol kezdve a tömb végéig számít. Így:
x[-1] # az utolsó elem
x[-2:] # az utolsó 2 elem
x[:-2] # minden kivéve az utolsó 2 elem
Így már érheto, hogy a negatív érték lépésként is muködik:
x[::-1] # minden elem, de megfordítva
x[1::-1] # az elso 2 elem megfordítva
x[:-3:-1] # utolsó 2 elem megfordítva
x[-3::-1] # utolsó 2 elemen kívül minden, megfordítva
Fontos megjegyzés: ez nem csak stringeknél, hanem általánosságban tömböknél is muködik
mondat.find("python") # a string helyét adja vissza
mondat.find("-----") # illetve -1-et, ha nem találja
mondat.count("él") # megszámoljuk az elofordulást (itt a "példa" és "szemléltetésére" szavakban találhatunk ilyet)
Összefuzésre használhatjuk a +
vagy a +=
operátort:
str1 = "Hello "
str2 = "világ"
str3 = str1 + str2
print(str3)
str1 += str2
print(str1)
Stringek darabolására alkalmas a split
, pl:
print(abece.split(","))
print(str1.split(" "))
Megjegyzés: a split
listát készít, amirol még nem beszéltünk, de késobb fogunk. A visszatérési érték típusát akár ellenorizhetjük is:
print(type(abece.split(",")))
Pythonban ez szerencsére szintén egyszerubb, mint a legtöbb nyelven.
szoveg = input("Adjon meg tetszoleges szöveget: ")
print("A beolvasott szöveg ", szoveg, " volt.", sep = "*")
Pythonban a legtöbb nyelvhez hasonló logikai muveleteink vannak.
b |
Not b |
---|---|
True |
False |
False |
True |
And |
False |
True |
---|---|---|
False |
False |
False |
True |
False |
True |
Or |
False |
True |
---|---|---|
False |
False |
True |
True |
True |
True |
b1 = True
b2 = False
print(b1 is True)
b1 and b2
b1 or b2
not b1
not b2
Az if
, elif
, else
vezérlési szerkezetek hasonlóan muködnek más népszeru programozási nyelvek hasnoló szerkezeteihez. A vezérlési szerkezetek lényege, hogy bizonyos programrészlet végrehajtását feltételhez köthetjük.Ez egy logikai kifejezés, amelynek igaz (True
) / hamis (False
) voltától függ, hogy végrehajtódik-e az adott programrészlet.
Igaz ág, if
Igaz ág, ha ez elozo feltétel nem volt igaz, elif
Hamis ág, else
ág
szam = -10
if szam > 0:
print("Pozitív");
else:
print("Nem pozitív");
for n in range(1, 10) :
if n == 6:
print("Az n érteke pontosan hat")
elif n == 8:
print("Az n érteke pontosan nyolc")
else:
print("n =", n)
st = "hello"
print("Itt a ch egy konkrét karakter nem pedig integer:")
for ch in st:
print(ch, end = " ")
print("\n\nWhile ciklus és i (int) változó:")
i = 0
while i < len(st):
print(st[i], end = " ")
i += 1
print("\n\nFor ciklus és i (int) változó:")
i = 0
for _ in st:
print(st[i], end = " ")
i += 1