String - bu Unicode belgilar ketma-ketligi. Python'da string'larni bir tirnoq, qo'sh tirnoq yoki uch tirnoq (triple quotes) bilan yozish mumkin.
print("Hello World")
Yonma-yon yozilgan string literal'lar
Python yonma-yon yozilgan string literallarni avtomatik birlashtiradi (concatenate qiladi):
text = "Py" "thon"
print(text) # Python
Bu uzun string'larni bir nechta qatorga bo'lib yozishda qulay:
message = (
"This is a long message "
"split across multiple lines."
)
print(message)
Bu faqat literal'lar uchun ishlaydi. O'zgaruvchilar uchun + yoki f-string ishlating.
String ichidan qiymat olish
Indexing va slicing'dan foydalaning:
name = "John Doe"
message = "John Doe learns Python"
print("name[0]:", name[0])
print("message[1:4]:", message[1:4])
String'lar manfiy index'larni (oxiridan sanash) va len() ni ham qo'llab-quvvatlaydi:
word = "Python"
print(word[-1]) # n
print(word[-3:]) # hon
print(len(word)) # 6
String'larni yangilash
String'lar immutable. String'ni "o'zgartirish" uchun yangisini yaratasiz:
message = "Hello World"
print(message[:6] + "Python") # Hello Python
Keng tarqalgan escape belgilar
| Escape | Ma'nosi |
|---|---|
\n |
Yangi qator |
\t |
Gorizontal tab |
\r |
Carriage return |
\" |
Qo'sh tirnoq |
\' |
Bir tirnoq |
\\ |
Backslash |
\b |
Backspace |
\f |
Form feed |
\v |
Vertical tab |
\a |
Bell / alert |
\0 |
Null belgi |
\xhh |
Hex qiymat bo'yicha belgi (masalan \x41 bu A) |
\uXXXX |
Unicode belgi (16-bit, masalan \u00E9 bu e) |
\UXXXXXXXX |
Unicode belgi (32-bit) |
\ooo |
Octal qiymat bo'yicha belgi (masalan \101 bu A) |
print() va string ifodasi
print() matnni ko'rsatadi, repr() esa string ifodasini (escape sequence'lar bilan) qaytaradi:
text = "First line.\nSecond line."
print(text)
print(repr(text))
String operatorlari
Agar a = "Hello" va b = "Python" bo'lsa:
| Operator | Misol | Natija |
|---|---|---|
+ |
a + b |
HelloPython |
* |
a * 2 |
HelloHello |
[] |
a[1] |
e |
[:] |
a[1:4] |
ell |
in |
"H" in a |
True |
not in |
"Z" not in a |
True |
Raw string'lar regex va Windows path'lari uchun foydali:
path = r"C:\new_folder\test"
print(path)
Eslatma: Raw string literal bitta backslash bilan tugay olmaydi (masalan
r"C:\new_folder\"noto'g'ri). Agar oxirida backslash kerak bo'lsa, oddiy string ishlating:"C:\\new_folder\\".
String formatlash
Python bir nechta formatlash usullarini qo'llab-quvvatlaydi:
name = "Zara"
weight = 21
# f-string (tavsiya etiladi)
print(f"My name is {name} and weight is {weight} kg")
# str.format
print("My name is {} and weight is {} kg".format(name, weight))
# %-formatting (legacy, lekin ishlaydi)
print("My name is %s and weight is %d kg" % (name, weight))
% formatlash bo'yicha tezkor jadval
| Specifier | Ma'nosi | Misol |
|---|---|---|
%s |
String | "%s" % "Python" |
%d |
Signed integer | "%d" % 42 |
%i |
Signed integer (%d bilan bir xil) |
"%i" % 42 |
%f |
Float | "%f" % 3.14 |
%.2f |
Aniqlik bilan float | "%.2f" % 3.14159 |
%e |
Eksponensial (kichik harf) | "%e" % 0.001 |
%E |
Eksponensial (katta harf) | "%E" % 0.001 |
%g |
%f va %e dan qisqaroq ko'rinish |
"%g" % 0.001 |
%c |
Bitta belgi | "%c" % 65 |
%x |
Hex (kichik harf) | "%x" % 255 |
%X |
Hex (katta harf) | "%X" % 255 |
%o |
Octal | "%o" % 8 |
Triple quotes
Uch tirnoq multiline matn uchun qulay:
text = """This is a long string
that spans multiple lines.
It can contain \t and \n characters too."""
print(text)
Python 3 da Unicode string'lar
Python 3 string'lari standart holatda Unicode (UTF-8). Python 2 da Unicode string uchun u prefiksi kerak edi, Python 3 da bunga hojat yo'q.
greeting = "Hello"
city = "London"
emoji = "\U0001F600"
print(greeting, city, emoji)
Unicode escape'laridan foydalanish yoki belgini bevosita yozish mumkin:
print("\u00E9") # e (Unicode escape belgisi)
print("cafe\u0301") # urg'uli cafe
Built-in string metodlar
| Metod | Izoh |
|---|---|
capitalize() |
Birinchi harfni katta, qolganini kichik qiladi |
center(width, fillchar) |
width ichida markazga tekislaydi, fillchar bilan to'ldiradi |
count(sub, start, end) |
sub nechta uchrashini sanaydi |
endswith(suffix, start, end) |
String suffix bilan tugasa True |
find(sub, start, end) |
sub ning eng kichik indeksini qaytaradi, topilmasa -1 |
index(sub, start, end) |
find() kabi, lekin topilmasa ValueError beradi |
isalnum() |
Hammasi harf/raqam bo'lsa True |
isalpha() |
Hammasi harf bo'lsa True |
isdigit() |
Hammasi raqam bo'lsa True |
isdecimal() |
Hammasi decimal bo'lsa True |
islower() |
Harfli belgilar kichik bo'lsa True |
isnumeric() |
Hammasi numeric bo'lsa True |
isspace() |
Hammasi bo'sh joy bo'lsa True |
istitle() |
Title-case bo'lsa True |
isupper() |
Harfli belgilar katta bo'lsa True |
join(iterable) |
Iterable'ni ajratuvchi sifatida string bilan birlashtiradi |
ljust(width, fillchar) |
Chapga tekislaydi |
lower() |
Hammasini kichik harfga o'giradi |
lstrip(chars) |
Boshidagi belgilarni olib tashlaydi (default: whitespace) |
replace(old, new, count) |
old ni new ga almashtiradi |
rfind(sub, start, end) |
O'ngdan qidirib find() kabi ishlaydi |
rindex(sub, start, end) |
O'ngdan qidirib index() kabi ishlaydi |
rjust(width, fillchar) |
O'ngga tekislaydi |
rstrip(chars) |
Oxiridagi belgilarni olib tashlaydi (default: whitespace) |
split(sep, maxsplit) |
Ajratuvchi bo'yicha listga bo'ladi |
splitlines() |
Qator chegaralari bo'yicha bo'ladi |
startswith(prefix, start, end) |
String prefix bilan boshlansa True |
strip(chars) |
Bosh va oxirini tozalaydi |
swapcase() |
Kichikni kattaga, kattani kichikka o'zgartiradi |
title() |
Har bir so'zning birinchi harfini kattalashtiradi |
upper() |
Hammasini katta harfga o'giradi |
zfill(width) |
Chap tomondan nol bilan to'ldiradi |
text = " learn python "
print(text.strip().title()) # Learn Python (natija)