Siirry sisältöön

Python 3/Operaattorit

Wikikirjastosta
Operaattori Kuvaus
= 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))
Operaattori Kuvaus
+ 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
Operaattori Kuvaus
== yhtäläisyys
> suurempi kuin
< pienempi kuin
>= suurempi tai yhtä suuri kuin
<= pienempi tai yhtä suuri kuin
!= erisuuruus
Operaattori Kuvaus
and Looginen ja
or Looginen tai
not negaatio
>>> x = True
>>> y = True
>>> x and y
True
>>> z = False
>>> x and z
False
>>> x or z
True
>>> x and not z
True

Bittioperaatiot

[muokkaa | muokkaa wikitekstiä]
Operaattori Kuvaus
<< siirto vasemmalle
>> siirto oikealle
& AND
| OR
^ XOR
~ negaatio

Muuttamisoperaatiot

[muokkaa | muokkaa wikitekstiä]

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

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

Operaattorien suoritusjärjestys

[muokkaa | muokkaa wikitekstiä]
Operaattori Kuvaus
"a" merkkijono
{a:b} dictionary
[a] lista
(a) monikko
f() funktiokutsu
x[a:b] viipalointi (slicing)
x[a] jäsenyyden hakeminen
x.a attribuuttiviittaus
x** potenssi
~x bittien negaatio
+x, -a positiivisuus, 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
not negaatio
and AND
or OR
lambda lambda-funktio

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]