Python 3/Operaattorit

Sijoitus

OperaattoriKuvaus
=sijoitus
:=sijoitus lausekkeen sisällä (versiosta 3.8)

Sijoitusoperaattorilla asetetaan muuttujan arvo.

>>> x = 3
>>> y = "marsu"

Jos sijoitusoperaattorin toisella tai mollemilla puolilla on pilkku, tulkitaan se monikoksi (tuple). Jos oikealla puolella on pilkku, mutta vasemmalla ei, sijoitetaan monikko vasemman puoleiseen muuttujaan kokonaisena.

>>> z = 3, 5
>>> z
(3, 5)

Jos molemmilla puolilla on pilkku tai pilkkuja, sijoitetaan pilkulla erotetut arvot niitä vastaaviin muuttujiin. Muuttujia ja arvoja pitää silloin olla yhtä monta.

>>> x, y = 3, 5
>>> x
3
>>> y
5

Muuttujien sisällön voi siten vaihtaa keskenään näin.

>>> x, y = y, x
>>> x
5
>>> y
3

Myös listoja voi hajottaa muuttujiksi vastaavalla tavalla.

>>> eka, toka = [1, 2]
>>> eka
1
>>> toka
2

Operaattori := on myös sijoitusoperaattori, mutta sitä voi käyttää eräissä paikoissa, joissa = ei ole sallittu, kuten ehtolauseiden ja silmukoiden ehto-osassa.

teksti = "Koodi #FE038A"

if m := re.search("#[0-9A-F]+", teksti):
    print("Löyty väri", m.group(0))
luvut = []

while syote := input("Anna luku: ") != "":
    luvut.append(int(syote))

Matematiikka

OperaattoriKuvaus
+summaus
-vähennys
*tulo
**potenssi
/jako
//tasajako eli osamäärä
%jakojäännös (modulo)
>>> 1 + 2
3
>>> 1 + 2 * 3 / 4 ** 2
1.375

Operaattorien suoritusjärjestys vastaa tavallista laskujärjestystä (ks. alla). Tarvittaessa sitä voi muuttaa suluilla.

>>> ((1 + 2) * (3 / 4)) ** 2
5.0625

Operaattori / laskee jakolaskun liukulukuna. Toisin kuin Python 2:ssa ei jakolaskun operandeja tarvitse muuttaa liukuluvuiksi.

>>> 6 / 2
3.0
>>> 7 / 2
3.5

Operaattori // kertoo kuinka monta kertaa jälkimäinen luku mahtuu ensimmäiseen. Se ja jakojäännösoperaattori % muodostavat siis parin.

>>> 7 // 2
3
>>> 7 % 2
1
>>> 3 * 2 + 1
7

Vertailu

OperaattoriKuvaus
==yhtäläisyys
>suurempi kuin
<pienempi kuin
>=suurempi tai yhtä suuri kuin
<=pienempi tai yhtä suuri kuin
!=erisuuruus

Logiikka

OperaattoriKuvaus
andLooginen ja
orLooginen tai
notnegaatio
>>> x = True
>>> y = True
>>> x and y
True
>>> z = False
>>> x and z
False
>>> x or z
True
>>> x and not z
True

Bittioperaatiot

OperaattoriKuvaus
<<siirto vasemmalle
>>siirto oikealle
&AND
|OR
^XOR
~negaatio

Muuttamisoperaatiot

Useimmista operaattoreista on olemassa versio, joka tallentaa operaation tuloksen ensimmäiseen operandiin.

Pitkä muotoLyhyt muotoKuvaus
x = x + 2x += 2Korottaa muuttujan arvoa kahdella
x = x - 2x -= 2Pienentää muuttujan arvoa kahdella
x = x * 2x *= 2Kertoo muuttujan arvon kahdella
x = x / 2x /= 2Jakaa muuttujan arvon kahdella
x = x // 2x //= 2
x = x % 2x %= 2Laskee muuttujan ja luvun 2 jakojäännöksen
x = x ** 2x **= 2
x = x & 2x &= 2
x = x | 2x |= 2
x = x ^ 2x ^= 2
x = x << 2x <<= 2
x = x >> 2x >>= 2

Operaattorien suoritusjärjestys

OperaattoriKuvaus
"a"merkkijono
{a:b}dictionary
[a]lista
(a)monikko
f()funktiokutsu
x[a:b]viipalointi (slicing)
x[a]jäsenyyden hakeminen
x.aattribuuttiviittaus
x**potenssi
~xbittien negaatio
+x, -apositiivisuus, negatiivisuus
*, /, %kertominen, jakaminen, jakojäännös (modulo)
+, -summaus, vähennys
<<, >>bittien siirrot
&bittien AND
^bittien XOR
|bittien OR
<, <=, >, >=, !=, <>, ==vertailut
is, is not
in, not in
notnegaatio
andAND
orOR
lambdalambda-funktio

Aiheesta muualla

Luokka:Python 3#Operaattorit
Luokka:Python 3