Operatorlar bilan tanishish
Operatorlar — Pythonda arifmetik yoki mantiqiy hisob-kitobni bajaruvchi maxsus belgilar. Operator ta'sir qiladigan qiymat operand deb ataladi. Masalan:
>>> 2+3
5
Bu yerda + — qo'shishni bajaruvchi operator. 2 va 3 — operandlar, 5 esa amaliyot natijasi. Python bir qancha operatorlarga ega bo'lib, ular quyida tasniflangan.
Pythonda operator turlari
Arifmetik operatorlar qo'shish, ayirish, ko'paytirish kabi matematik amallarni bajarish uchun ishlatiladi.
Pythonda arifmetik operatorlar
| Operator | Ma'nosi | Misol |
|---|---|---|
+ | Ikkita operandni qo'shadi yoki unar plyus | x + y |
- | O'ngdagi operandni chapdan ayiradi yoki unar minus | x - y |
* | Ikkita operandni ko'paytiradi | x * y |
/ | Chap operandni o'ngga bo'ladi (har doim float natija beradi) | x / y |
% | Modulus — chap operandni o'ngga bo'lgandagi qoldiq | x % y (x/y ning qoldig'i) |
// | Floor division — natijasi sonlar chizig'ida chapga qarab moslashtirilgan butun son bo'ladigan bo'lish | x // y |
** | Daraja — chap operandning o'ng operand darajasiga ko'tarilishi | x**y (x ning y darajasi) |
Mana bir misol.
x = 15
y = 4
print('x + y = ',x+y)
print('x - y = ',x-y)
print('x * y = ',x*y)
print('x / y = ',x/y)
print('x // y = ',x//y)
print('x ** y = ',x**y)
Natija
x + y = 19
x - y = 11
x * y = 60
x / y = 3.75
x // y = 3
x ** y = 50625
Taqqoslash operatorlari qiymatlarni solishtirish uchun ishlatiladi. U shartga qarab True yoki False qaytaradi.
Pythonda taqqoslash operatorlari
| Operator | Ma'nosi | Misol |
|---|---|---|
> | Katta — agar chap operand o'ngdan katta bo'lsa True | x > y |
< | Kichik — agar chap operand o'ngdan kichik bo'lsa True | x < y |
== | Teng — agar ikkala operand ham teng bo'lsa True | x == y |
!= | Teng emas — agar operandlar teng bo'lmasa True | x != y |
>= | Katta yoki teng — agar chap operand o'ngdan katta yoki teng bo'lsa True | x >= y |
<= | Kichik yoki teng — agar chap operand o'ngdan kichik yoki teng bo'lsa True | x <= y |
Mana bir misol.
x = 10
y = 12
print('x > y is',x>y)
print('x < y is',x<y)
print('x == y is',x==y)
print('x != y is',x!=y)
print('x >= y is',x>=y)
print('x <= y is',x<=y)
Natija
x > y is False
x < y is True
x == y is False
x != y is True
x >= y is False
x <= y is True
Mantiqiy operatorlar — bu and, or, not operatorlari.
Pythonda mantiqiy operatorlar
| Operator | Ma'nosi | Misol |
|---|---|---|
and | Ikkala operand ham True bo'lsa True | x and y |
or | Operandlardan biri True bo'lsa True | x or y |
not | Operand False bo'lsa True (operandni to'ldiradi) | not x |
Mana bir misol.
x = True
y = False
print('x and y is',x and y)
print('x or y is',x or y)
print('not x is',not x)
Natija
x and y is False
x or y is True
not x is False
Mana shu operatorlar uchun rostlik jadvali (truth table).
Bitli operatorlar operandlarga ular ikkilik raqamlar qatori (string of binary digits) bo'lgandek ta'sir qiladi. U bit-bit ishlaydi, shuning uchun shunday nomlangan. Masalan, 2 ikkilik sanoqda 10, 7 esa 111.
x = 10 (0000 1010 ikkilik sanoqda) va y = 4 (0000 0100 ikkilik sanoqda) bo'lsin
Pythonda bitli operatorlar
| Operator | Ma'nosi | Misol |
|---|---|---|
& | Bitwise AND | x & y = 0 (0000 0000) |
| | Bitwise OR | x | y = 14 (0000 1110) |
~ | Bitwise NOT | ~x = -11 (1111 0101) |
^ | Bitwise XOR | x ^ y = 14 (0000 1110) |
>> | Bitwise right shift | x >> 2 = 2 (0000 0010) |
<< | Bitwise left shift | x << 2 = 40 (0010 1000) |
Tenglashtirish operatorlari Pythonda o'zgaruvchilarga qiymat berish uchun ishlatiladi. a = 5 — o'ngdagi 5 qiymatini chapdagi a o'zgaruvchisiga beradigan oddiy tenglashtirish operatori. Pythonda a += 5 kabi turli xil murakkab operatorlar ham mavjud, ular o'zgaruvchiga qo'shadi va keyin xuddi shuni qaytadan beradi. Bu a = a + 5 bilan barobardir.
Pythonda tenglashtirish operatorlari
| Operator | Misol | Unga teng |
|---|---|---|
= | x = 5 | x = 5 |
+= | x += 5 | x = x + 5 |
-= | x -= 5 | x = x - 5 |
*= | x *= 5 | x = x * 5 |
/= | x /= 5 | x = x / 5 |
%= | x %= 5 | x = x % 5 |
//= | x //= 5 | x = x // 5 |
**= | x **= 5 | x = x ** 5 |
&= | x &= 5 | x = x & 5 |
|= | x |= 5 | x = x | 5 |
^= | x ^= 5 | x = x ^ 5 |
>>= | x >>= 5 | x = x >> 5 |
<<= | x <<= 5 | x = x << 5 |
Python tili identity operator yoki membership operator kabi ba'zi maxsus operator turlarini taklif etadi. Ular quyida misollar bilan tavsiflangan.
is va is not — Pythondagi identity operatorlari. Ular ikkita qiymat (yoki o'zgaruvchi) xotiraning bir xil qismida joylashganligini tekshirish uchun ishlatiladi. Ikkita o'zgaruvchining teng bo'lishi ular bir xil (identical) ekanligini anglatmaydi.
Pythonda identity operatorlari
| Operator | Ma'nosi | Misol |
|---|---|---|
is | Agar operandlar bir xil bo'lsa (bir xil obyektga ishora qilsa) True | x is True |
is not | Agar operandlar bir xil bo'lmasa (bir xil obyektga ishora qilmasa) True | x is not True |
Mana bir misol.
x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]
print(x1 is not y1)
print(x2 is y2)
print(x3 is y3)
Natija
False
True
False
Bu yerda x1 va y1 bir xil qiymatga ega integerlar, shuning uchun ular ham teng, ham bir xil (identical). Xuddi shunday holat x2 va y2 (satrlar) bilan ham. Lekin x3 va y3 — ro'yxatlar (list). Ular teng, lekin bir xil emas. Ro'yxatlar o'zgaruvchan (mutable) bo'lgani uchun, interpretator ularni teng bo'lishiga qaramay xotirada alohida joylashtiradi.
in va not in — Pythondagi membership operatorlari. Ular biror qiymat yoki o'zgaruvchi ketma-ketlikda (satr, ro'yxat, kortej, to'plam va lug'at) mavjudligini tekshirish uchun ishlatiladi. Lug'atda faqat kalitning (key) mavjudligini tekshirishimiz mumkin, qiymatning emas.
| Operator | Ma'nosi | Misol |
|---|---|---|
in | Agar qiymat/o'zgaruvchi ketma-ketlikda topilsa True | 5 in x |
not in | Agar qiymat/o'zgaruvchi ketma-ketlikda topilmasa True | 5 not in x |
Mana bir misol.
x = 'Hello world'
y = {1:'a',2:'b'}
print('H' in x)
print('hello' not in x)
print(1 in y)
print('a' in y)
Natija
True
True
True
False
Bu yerda 'H' x ichida bor, lekin 'hello' x ichida yo'q (yodda tuting, Python katta-kichik harflarga sezgir). Xuddi shunday, y lug'atida 1 — kalit, 'a' esa qiymat. Shuning uchun 'a' in y False qaytaradi.