Skip to content

6-dars: String va Format

Dars

Davomiyligi: 90 daqiqa Maqsad: Python string'ning kuchli funksiyalarini chuqur o'rganish.

1. String yaratish

python
a = "Akmal"
b = 'Karimov'
c = """Bir nechta
qatorli"""
d = '''Apostrof bilan'''

" va ' — bir xil.

2. String — immutable

python
s = "Akmal"
s[0] = "B"   # XATO!

# Yangi string yaratish
s = "B" + s[1:]   # "Bkmal"

C'da char[] o'zgartirilardi. Python — yangi string yaratiladi.

3. Asosiy operatsiyalar

python
s = "Akmal Karimov"

len(s)              # 13
s[0]                # 'A'
s[-1]               # 'v'
s[6:13]             # 'Karimov'
s[::-1]             # 'vomiraK lamkA'

s + " - 22 yosh"    # konkatenatsiya
s * 3               # takrorlash

"Akmal" in s        # True
"Botir" in s        # False

4. String metodlar — keng tarqalgan

python
s = "  Akmal Karimov  "

s.upper()           # '  AKMAL KARIMOV  '
s.lower()           # '  akmal karimov  '
s.title()           # '  Akmal Karimov  '
s.capitalize()      # '  akmal karimov  '
s.swapcase()        # '  aKMAL kARIMOV  '

s.strip()           # 'Akmal Karimov'
s.lstrip()          # 'Akmal Karimov  '
s.rstrip()          # '  Akmal Karimov'

s.replace("Akmal", "Botir")    # '  Botir Karimov  '

s.split()           # ['Akmal', 'Karimov']
s.split("a")        # specific delimiter

"-".join(["a", "b", "c"])    # 'a-b-c'

5. Tekshirish

python
s = "Akmal123"

s.isalpha()         # False (raqamlar bor)
s.isdigit()         # False (harflar bor)
s.isalnum()         # True (alpha + numeric)
"123".isdigit()     # True
"abc".isalpha()     # True

s.isupper()         # False
s.islower()         # False
"AKMAL".isupper()   # True

s.startswith("Akm") # True
s.endswith("123")   # True

"".isspace()        # False (bo'sh)
"   ".isspace()     # True (faqat bo'shliq)

6. Qidirish

python
s = "Hello World, hello Python"

s.find("World")      # 6 (index)
s.find("xyz")         # -1 (yo'q)
s.rfind("hello")      # 13 (oxirgi)
s.index("World")      # 6 (xato — agar yo'q bo'lsa)

s.count("hello")      # 1 (case-sensitive!)
s.lower().count("hello")  # 2

7. f-string (chuqurroq)

python
name = "Akmal"
age = 22
pi = 3.14159

# Asosiy
print(f"{name}, {age}")

# Aniqlik
print(f"{pi:.2f}")           # 3.14
print(f"{pi:.5f}")           # 3.14159
print(f"{pi:e}")             # 3.141590e+00

# Maydon
print(f"{name:10}")          # 'Akmal     '
print(f"{name:<10}")         # 'Akmal     '
print(f"{name:>10}")         # '     Akmal'
print(f"{name:^10}")         # '  Akmal   '
print(f"{name:*^10}")        # '**Akmal***'

# Raqamlar
print(f"{age:5d}")           # '   22'
print(f"{age:05d}")          # '00022'
print(f"{age:+d}")           # '+22'

# Hex, octal
print(f"{255:x}")            # 'ff'
print(f"{255:X}")            # 'FF'
print(f"{255:o}")            # '377'
print(f"{255:b}")            # '11111111' (binary)

# Comma separator
big = 1_000_000
print(f"{big:,}")            # '1,000,000'

# Percentage
print(f"{0.25:.0%}")         # '25%'
print(f"{0.25:.1%}")         # '25.0%'

# Debug
print(f"{age=}")             # 'age=22'

# Expression
print(f"{2 + 3}")            # '5'
print(f"{name.upper()}")     # 'AKMAL'

8. Eski formatlar

% format

python
"%s, %d" % ("Akmal", 22)

C'ga o'xshash. Eski.

.format()

python
"{} {}".format("Akmal", 22)
"{0} {1}".format("Akmal", 22)
"{name} {age}".format(name="Akmal", age=22)

F-string — eng yaxshi.

9. Multiline va escape

python
s = "Birinchi\nIkkinchi\nUchinchi"
print(s)

# Raw (escape ishlamaydi)
path = r"C:\Users\Akmal"
print(path)   # C:\Users\Akmal

# Triple quotes
text = """
Bu juda
uzun matn,
bir nechta qatorda.
"""

10. Encode/Decode

python
s = "Salom dunyo"

# String → bytes
b = s.encode("utf-8")
print(b)     # b'Salom dunyo'

# Bytes → string
s2 = b.decode("utf-8")
print(s2)    # Salom dunyo

UTF-8 — universal kodlash.

11. String manipulyatsiya misollari

Word count

python
text = "Bu matnda besh ta so'z"
words = text.split()
print(len(words))   # 5

Vowel count

python
def count_vowels(s):
    return sum(1 for c in s.lower() if c in "aeiou")

print(count_vowels("Hello World"))  # 3

Reverse

python
s = "Akmal"
print(s[::-1])      # 'lamkA'

Palindrome

python
def is_palindrome(s):
    s = s.lower().replace(" ", "")
    return s == s[::-1]

print(is_palindrome("Madam"))                    # True
print(is_palindrome("Was it a car or a cat I saw"))  # True

Title case

python
def my_title(s):
    return " ".join(w.capitalize() for w in s.split())

print(my_title("akmal karimov"))   # "Akmal Karimov"

12. Caesar cipher (Python)

python
def caesar(text, shift):
    result = ""
    for c in text:
        if c.isupper():
            result += chr((ord(c) - ord('A') + shift) % 26 + ord('A'))
        elif c.islower():
            result += chr((ord(c) - ord('a') + shift) % 26 + ord('a'))
        else:
            result += c
    return result

print(caesar("Hello", 3))    # "Khoor"
print(caesar("Khoor", -3))   # "Hello"

ord() — char → ASCII, chr() — ASCII → char.

13. Regular expressions (qisqacha)

Murakkab string operatsiyalar uchun regex:

python
import re

text = "Email: akmal@example.com, telefon: +998901234567"

# Email topish
emails = re.findall(r"[\w.]+@[\w.]+", text)
print(emails)   # ['akmal@example.com']

# Telefon
phones = re.findall(r"\+\d+", text)
print(phones)   # ['+998901234567']

# Almashtirish
clean = re.sub(r"\s+", " ", "Ko'p   bo'sh   joy")
print(clean)    # "Ko'p bo'sh joy"

Regex — kuchli, lekin qiyin. Asoslar — kelajakda.

14. Real misol: Parol kuchini tekshirish

python
def check_password(password):
    errors = []
    
    if len(password) < 8:
        errors.append("Kamida 8 belgi")
    
    if not any(c.isupper() for c in password):
        errors.append("Katta harf kerak")
    
    if not any(c.islower() for c in password):
        errors.append("Kichik harf kerak")
    
    if not any(c.isdigit() for c in password):
        errors.append("Raqam kerak")
    
    special = "!@#$%^&*()_+-=[]{}|;:,.<>?"
    if not any(c in special for c in password):
        errors.append("Maxsus belgi kerak")
    
    if errors:
        print("Zaif parol:")
        for e in errors:
            print(f"  - {e}")
        return False
    
    print("Kuchli parol!")
    return True

check_password("password")    # Zaif
check_password("Pass123!")     # Kuchli

15. Tezkor string operatsiyalar

python
# Bo'sh string?
if not s:
    print("Bo'sh")

# Necha so'z?
len(s.split())

# Tozalash (bo'shliq, \n, \t)
s.strip()

# Bir nechta bo'shliqni bittasiga
" ".join(s.split())

# Faqat raqamlar
"".join(c for c in s if c.isdigit())

# Faqat harflar
"".join(c for c in s if c.isalpha())

Topshiriqlar

1 — String asoslari

basics.py:

python
s = "Python Dasturlash"

print(s.upper())
print(s.lower())
print(s.title())
print(s.replace("Python", "C"))
print(s.split())
print("Python" in s)
print(len(s))

2 — Formatlash

format.py — Dars matnidagi barcha f-string misollarini sinab ko'ring.

3 — Word counter

word_count.py:

python
text = input("Matn: ")
words = text.split()
print(f"So'zlar: {len(words)}")
print(f"Belgilar: {len(text)}")
print(f"Belgilar (bo'shliqsiz): {len(text.replace(' ', ''))}")
print(f"Qatorlar: {text.count(chr(10)) + 1}")

4 — Palindrome

palindrome.py — Bir nechta variantlarni sinab ko'ring.

5 — Caesar

caesar.py — Encrypt va decrypt.

Bonus: brute force decryption (har 26 ta shift'ni sinash).

6 — Password validator

password.py — Dars matnidagi kuchli versiya.

Bonus: parol generatori.

7 — Email extractor

emails.py:

python
import re

text = """
Akmal: akmal@gmail.com
Aziza - aziza@example.uz
Botir email: botir.k@company.com
"""

emails = re.findall(r"[\w.]+@[\w.]+", text)
print(emails)

8 — String analysis

analyze.py:

python
s = input("Matn: ")

print(f"Uzunlik: {len(s)}")
print(f"So'zlar: {len(s.split())}")
print(f"Unli: {sum(1 for c in s.lower() if c in 'aeiou')}")
print(f"Undosh: {sum(1 for c in s.lower() if c.isalpha() and c not in 'aeiou')}")
print(f"Raqam: {sum(1 for c in s if c.isdigit())}")
print(f"Bo'shliq: {s.count(' ')}")

9 — Reverse words

reverse_words.py:

python
s = "Hello World Python"

# Word'larni teskari
reversed_words = " ".join(s.split()[::-1])
print(reversed_words)   # "Python World Hello"

# Har word ichida teskari
each_reversed = " ".join(w[::-1] for w in s.split())
print(each_reversed)    # "olleH dlroW nohtyP"

10 — GitHub

bash
$ mkdir 6-oy-dars-6
$ git add . && git commit -m "feat: dars 6 - strings" && git push

Lug'at

TerminIzoh
ImmutableO'zgartirib bo'lmaydi
Slicings[1:5]
f-stringf"{var}"
strip / lstrip / rstripBo'shliq olish
split / joinBo'lish / qo'shish
find / indexTopish
ord / chrChar ↔ ASCII
encode / decodeString ↔ bytes
reRegular expressions

Keyingi dars

7-dars: File I/O →

Master IT o'quv markazi — o'qitish rejasi