0%

🔤 Virknes (Strings)

Python virknes ir nemainīgas (immutable) rakstzīmju secības. Python piedāvā ļoti bagātīgu virkņu apstrādes rīku kopu, ieskaitot spēcīgos f-strings.

python

Virkņu izveide

Teksts
# Dažādi veidi, kā izveidot virknes
vienkarsas    = "Sveiki"
vienkarsi     = 'Pasaule'        # Abi ir vienādi
triju_dubultu = """Šī virkne
var aptvert
vairākas rindas"""
triju_vienkarsu = '''Arī šī
ir daudzrindu
virkne'''

# Rakstzīmes un garums
virkne = "Python"
print(len(virkne))       # 6
print(virkne[0])         # P  (pirmā rakstzīme)
print(virkne[-1])        # n  (pēdējā)
print(virkne[1:4])       # yth (slice – no 1 līdz 3)
print(virkne[:3])        # Pyt (no sākuma)
print(virkne[3:])        # hon (līdz beigām)
print(virkne[::2])       # Pto (katrs otrais)
print(virkne[::-1])      # nohtyP (apgriezta)

# Virknes ir nemainīgas!
# virkne[0] = "p"  # <- TypeError!

Virkņu metodes

Teksts
teksts = "  Sveika, Pasaule!  "

# Lielie/mazie burti
print(teksts.upper())          # "  SVEIKA, PASAULE!  "
print(teksts.lower())          # "  sveika, pasaule!  "
print(teksts.title())          # "  Sveika, Pasaule!  "
print(teksts.capitalize())     # "  sveika, pasaule!  " (tikai pirmā liela)
print(teksts.swapcase())       # "  sVEIKA, pASAULE!  "

# Atstarpju noņemšana
print(teksts.strip())          # "Sveika, Pasaule!"
print(teksts.lstrip())         # "Sveika, Pasaule!  "
print(teksts.rstrip())         # "  Sveika, Pasaule!"

# Meklēšana
s = "programmēšana ir jautra"
print(s.find("ir"))            # 16 (vai -1, ja nav)
print(s.index("ir"))           # 16 (vai ValueError, ja nav)
print(s.count("a"))            # 3
print(s.startswith("prog"))    # True
print(s.endswith("utra"))      # True
print("ir" in s)               # True

# Aizstāšana un sadalīšana
print(s.replace("jautra", "interesanta"))  # "programmēšana ir interesanta"
vārdi = s.split(" ")           # ["programmēšana", "ir", "jautra"]
print(vārdi)
print(" | ".join(vārdi))       # "programmēšana | ir | jautra"

# Pārbaudes
print("12345".isdigit())       # True
print("abcABC".isalpha())      # True
print("abc123".isalnum())      # True
print("   ".isspace())         # True
print("Pirmais".istitle())     # True

Virkņu formatēšana

Teksts
vards = "Anna"
vecums = 28
cena = 19.99

# 1. f-strings (Python 3.6+) – IETEICAMS
print(f"Sveika, {vards}! Tev ir {vecums} gadu.")
print(f"Cena: {cena:.2f} €")             # 2 decimāļi
print(f"Skaitlis: {1000000:,}")          # 1,000,000
print(f"Vārds lielos: {vards!u}")        # ANNA
print(f"2^10 = {2**10}")                 # 2^10 = 1024
print(f"{vards:>10}")                    # "      Anna" (labā izlīdzināšana)
print(f"{vards:<10}|")                   # "Anna      |" (kreisā)
print(f"{vecums:05d}")                   # 00028 (ar nullēm)

# 2. .format() metode
print("Sveika, {}! Tev ir {} gadu.".format(vards, vecums))
print("Cena: {cena:.2f} €".format(cena=cena))
print("{0} un {0}".format("atkārtots"))  # atkārtots un atkārtots

# 3. % formatēšana (vecais veids)
print("Sveika, %s! Tev ir %d gadu." % (vards, vecums))
print("Cena: %.2f €" % cena)

# Izpildāmas izteiksmes f-strings iekšā
a, b = 7, 3
print(f"{a} ÷ {b} = {a/b:.4f}")         # 7 ÷ 3 = 2.3333
print(f"Max: {max(a, b)}, Min: {min(a, b)}")

Escape rakstzīmes un raw strings

🎓 Ko mācīties tālāk?

Nākamajā sadaļā aplūkosim Python nosacījumu konstrukcijas – if, elif, else un match/case.

Teksts
# Escape rakstzīmes
print("Pirmā rinda\nOtrā rinda")    # \n – jaunā rinda
print("Kolonna1\tKolonna2")         # \t – tabulators
print("Pēdiņas: \"teksts\"")        # \" – pēdiņa virknē
print("Backslash: \")              # \ – paša backslash

# Raw strings – ignorē escape sekvences
ceļš = r"C:\Users\Anna\Documents"   # r"..." – raw
print(ceļš)                         # C:\Users\Anna\Documents

# Regulārās izteiksmes parasti izmanto raw strings
import re
teksts = "Telefons: +371 12345678"
sakritiba = re.search(r"\+371 \d{8}", teksts)
if sakritiba:
    print("Atrasts:", sakritiba.group())   # +371 12345678

# Virknes dublēšana
print("Ha" * 3)          # HaHaHa
print("-" * 40)          # ----------------------------------------

# Virknes pievienošana (lēns veids!)
# Labāk: " ".join(saraksts)
rezultāts = ""
for i in range(5):
    rezultāts += str(i)  # "01234"
print(rezultāts)

# Ātrs veids:
print("".join(str(i) for i in range(5)))  # "01234"