07 / 59

Python Operators

Operatorlar bilan tanishish

Operatorlar — Pythonda arifmetik yoki mantiqiy hisob-kitobni bajaruvchi maxsus belgilar. Operator ta'sir qiladigan qiymat operand deb ataladi. Masalan:

example.py
>>> 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

  • Arithmetic operators (Arifmetik operatorlar)
  • Comparison (Relational) operators (Taqqoslash operatorlari)
  • Logical (Boolean) operators (Mantiqiy operatorlar)
  • Bitwise operators (Bitli operatorlar)
  • Assignment operators (Tenglashtirish operatorlari)
  • Special operators (Maxsus operatorlar)

Arifmetik operatorlar

Arifmetik operatorlar qo'shish, ayirish, ko'paytirish kabi matematik amallarni bajarish uchun ishlatiladi.

Pythonda arifmetik operatorlar

OperatorMa'nosiMisol
+Ikkita operandni qo'shadi yoki unar plyusx + y
-O'ngdagi operandni chapdan ayiradi yoki unar minusx - y
*Ikkita operandni ko'paytiradix * y
/Chap operandni o'ngga bo'ladi (har doim float natija beradi)x / y
%Modulus — chap operandni o'ngga bo'lgandagi qoldiqx % y (x/y ning qoldig'i)
//Floor division — natijasi sonlar chizig'ida chapga qarab moslashtirilgan butun son bo'ladigan bo'lishx // y
**Daraja — chap operandning o'ng operand darajasiga ko'tarilishix**y (x ning y darajasi)

Mana bir misol.

example.py
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

kod
x + y =  19
x - y =  11
x * y =  60
x / y =  3.75
x // y =  3
x ** y =  50625

Taqqoslash operatorlari

Taqqoslash operatorlari qiymatlarni solishtirish uchun ishlatiladi. U shartga qarab True yoki False qaytaradi.

Pythonda taqqoslash operatorlari

OperatorMa'nosiMisol
>Katta — agar chap operand o'ngdan katta bo'lsa Truex > y
<Kichik — agar chap operand o'ngdan kichik bo'lsa Truex < y
==Teng — agar ikkala operand ham teng bo'lsa Truex == y
!=Teng emas — agar operandlar teng bo'lmasa Truex != y
>=Katta yoki teng — agar chap operand o'ngdan katta yoki teng bo'lsa Truex >= y
<=Kichik yoki teng — agar chap operand o'ngdan kichik yoki teng bo'lsa Truex <= y

Mana bir misol.

example.py
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

kod
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

Mantiqiy operatorlar — bu and, or, not operatorlari.

Pythonda mantiqiy operatorlar

OperatorMa'nosiMisol
andIkkala operand ham True bo'lsa Truex and y
orOperandlardan biri True bo'lsa Truex or y
notOperand False bo'lsa True (operandni to'ldiradi)not x

Mana bir misol.

example.py
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

kod
x and y is False
x or y is True
not x is False

Mana shu operatorlar uchun rostlik jadvali (truth table).

Bitli operatorlar

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

OperatorMa'nosiMisol
&Bitwise ANDx & y = 0 (0000 0000)
|Bitwise ORx | y = 14 (0000 1110)
~Bitwise NOT~x = -11 (1111 0101)
^Bitwise XORx ^ y = 14 (0000 1110)
>>Bitwise right shiftx >> 2 = 2 (0000 0010)
<<Bitwise left shiftx << 2 = 40 (0010 1000)

Tenglashtirish operatorlari

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

OperatorMisolUnga teng
=x = 5x = 5
+=x += 5x = x + 5
-=x -= 5x = x - 5
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x % 5
//=x //= 5x = x // 5
**=x **= 5x = x ** 5
&=x &= 5x = x & 5
|=x |= 5x = x | 5
^=x ^= 5x = x ^ 5
>>=x >>= 5x = x >> 5
<<=x <<= 5x = x << 5

Maxsus operatorlar

Python tili identity operator yoki membership operator kabi ba'zi maxsus operator turlarini taklif etadi. Ular quyida misollar bilan tavsiflangan.

Identity operatorlari

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

OperatorMa'nosiMisol
isAgar operandlar bir xil bo'lsa (bir xil obyektga ishora qilsa) Truex is True
is notAgar operandlar bir xil bo'lmasa (bir xil obyektga ishora qilmasa) Truex is not True

Mana bir misol.

example.py
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

kod
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.

Membership operatorlari

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.

OperatorMa'nosiMisol
inAgar qiymat/o'zgaruvchi ketma-ketlikda topilsa True5 in x
not inAgar qiymat/o'zgaruvchi ketma-ketlikda topilmasa True5 not in x

Mana bir misol.

example.py
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

kod
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.

QBilimingizni sinab ko'ring
1 / 3

1. x = 17, y = 5 bo'lsa, x // y ning natijasi nechaga teng?