Logische bewerkingen in python. Python-operators en hun prioriteit

Een Booleaans gegevenstype (of Booleaans) is een primitief type dat een van de twee mogelijke waarden accepteert: True of False. Dit type wordt in veel programmeertalen gebruikt om algoritmen te bouwen en het gedrag van programma's te controleren.

Opmerking: De naam van dit datatype (Boolean) wordt altijd met een hoofdletter geschreven, omdat het vernoemd is naar de wiskundige George Boole, die wiskundige logica studeerde. True en False worden ook met een hoofdletter geschreven - het zijn speciale waarden in Python.

Deze tutorial laat je kennismaken met de basisprincipes van Booleaanse logica in Python: vergelijkingsoperatoren, logische operatoren, waarheidstabellen en meer.

Vergelijkingsoperators

Bij het programmeren worden vergelijkingsoperatoren gebruikt bij het evalueren en vergelijken van waarden om ze vervolgens te reduceren tot een enkele booleaanse waarde (True of False).

Python 3-vergelijkingsoperatoren worden in deze tabel gepresenteerd:

Operator Betekenis
== Controleert gelijkheid tussen componenten; de voorwaarde is waar als de componenten gelijk zijn.
!= Controleert gelijkheid tussen componenten; de voorwaarde is waar als de componenten NIET gelijk zijn.
< Evalueert de waarde van de linker component; de voorwaarde is waar als deze kleiner is dan de juiste.
> Evalueert de waarde van de linker component; de voorwaarde is waar als deze groter is dan de juiste.
<= Evalueert de waarde van de linker component; voorwaarde is waar als deze kleiner is dan of gelijk is aan de juiste component.
>= Evalueert de waarde van de linker component; voorwaarde is waar als deze groter is dan of gelijk is aan de juiste component.

Probeer met deze operators te werken om te begrijpen hoe ze werken. Maak eerst een aantal variabelen:

Vergelijk nu de waarden van de variabelen met behulp van de bovenstaande operatoren.

x = 5
y = 8
afdrukken ("x == y:", x == y)
afdrukken ("x! = y:", x! = y)
afdrukken ("x< y:", x < y)
afdrukken ("x> y:", x> y)
afdrukken ("x<= y:", x <= y)
afdrukken ("x> = y:", x> = y)
x == y: Onwaar
x! = y: Waar
x< y: True
x> y: Onwaar
x<= y: True
x> = y: Onwaar

Volgens wiskundige logica evalueert Python de relaties tussen de waarden van variabelen als volgt:

  • Is 5 gelijk aan 8? Leugen
  • 5 is niet gelijk aan 8? Waar
  • 5 is minder dan 8? Waar
  • 5 is meer dan 8? Leugen
  • Is 5 kleiner dan of gelijk aan 8? Waar
  • Is 5 groter dan of gelijk aan 8? Leugen

Vergelijkingsoperatoren kunnen ook worden toegepast op getallen en tekenreeksen met drijvende komma.

Opmerking: Strings zijn hoofdlettergevoelig; om dit gedrag uit te schakelen, moet u een speciale methode gebruiken.

Probeer twee lijnen te vergelijken:

Hallo = "Hallo"
hallo = "hallo"

Hallo == hallo: Onwaar

De strings Hallo en hallo bevatten dezelfde tekenset, maar ze zijn niet gelijk omdat een van hen hoofdletters bevat. Probeer een andere variabele toe te voegen, die ook hoofdletters zal bevatten, en vergelijk ze dan.

Hallo = "Hallo"
hallo = "hallo"
Hallo_there = "Hallo"
afdrukken ("Hallo == hallo:", Hallo == hallo)
print ("Hallo == Hallo_daar", Hallo == Hallo_daar)
Hallo == hallo: Onwaar
Hallo == Hallo_daar: True

U kunt ook de> en . gebruiken<. Python выполнит лексикографическое сравнение строк на основе значений символов ASCII.

Vergelijkingsoperatoren kunnen worden toegepast op Booleaanse waarden True en False:

t = waar
f = Onwaar
afdrukken ("t! = f:", t! = f)
t! = f: Waar

Let op het verschil tussen de operatoren = en ==.

x = y # Opdrachtoperator. Stelt gelijkheid in tussen x en y (dat wil zeggen, stelt x in op y).
x == y # Vergelijkingsoperator. Test op gelijkheid tussen x en y en evalueert uitdrukking als waar of onwaar. De uitdrukking is waar als x en y gelijk zijn.

Logische operatoren

Er worden drie Booleaanse operatoren gebruikt om waarden te vergelijken, waardoor het resultaat wordt teruggebracht tot de Booleaanse waarde True of False.

Booleaanse operatoren worden vaak gebruikt om twee of meer uitdrukkingen te evalueren. Ze kunnen bijvoorbeeld worden gebruikt in een programma dat controleert:

  • Is de student geslaagd voor het examen?
  • en of het is geregistreerd.

Als beide waarden waar zijn, gaat de cursist door naar de volgende cursus.

Nog een voorbeeld: een programma met logische operatoren kan de activiteit van de gebruiker in een online winkel controleren:

  • of hij een winkellening heeft gebruikt?
  • of of hij in de afgelopen 6 maanden artikelen heeft besteld.

Probeer bijvoorbeeld drie uitdrukkingen te vergelijken:

afdrukken ((9> 7) en (2< 4)) # Beide uitdrukkingen zijn waar
afdrukken ((8 == 8) of (6! = 6)) # Een van de uitdrukkingen is True
afdrukken (niet (3<= 1)) # Expressie is onwaar
Waar
Waar
Waar

In het eerste geval zijn beide expressies waar, dus de operator and retourneert True.

In het tweede geval is alleen de waarde 8 == 8. Aangezien ten minste één van de voorgestelde voorwaarden waar is, retourneert de operator of True. De operator en zou dan False retourneren.

In het derde geval, uitdrukking 3<= 1 ложно. Оператор not изменяет полученное логическое значение на противоположное: not False = True.

Probeer nu getallen met drijvende komma te vergelijken.

afdrukken ((- 0.2> 1.4) en (0.8< 3.1)) # Een van de uitdrukkingen is False
afdrukken ((7,5 == 8,9) of (9,2! = 9,2)) # Beide uitdrukkingen zijn onwaar
afdrukken (niet (-5,7<= 0.3)) # Expressie is waar

  • Omdat in het eerste voorbeeld een van de uitdrukkingen onwaar is en False zal retourneren. De operator and evalueert een expressie alleen als waar als beide componenten waar zijn.
  • Aangezien beide expressies false zijn, retourneert de operator of False.
  • Aangezien de expressie waar is, retourneert de operator not False (niet True = False).

Opmerking: Als je niet begrijpt hoe het werkt, kunnen ze je helpen de waarheidstabellen te achterhalen. We zullen dit onderwerp later in deze handleiding behandelen.

Logische operatoren kunnen worden gecombineerd tot samengestelde uitdrukkingen:

niet ((- 0.2> 1.4) en ((0.8< 3.1) or (0.1 == 0.1)))

Uitdrukking (0,8< 3.1) or (0.1 == 0.1) истинно, поскольку оба математических выражения, из которых оно состоит, истинны. Оператор or вернёт True.

De resulterende True-waarde wordt een onderdeel van de volgende expressie: (-0.2> 1.4) en (True). De operator en retourneert False omdat de uitdrukking -0.2> 1.4 false is. (Fals) en (True) = False.

Waarheidstabellen

Wiskundige logica is een zeer nuttig kennisgebied bij het programmeren. In deze gids zullen we de belangrijkste aspecten ervan bekijken.

Hieronder staan ​​de waarheidstabellen voor de vergelijkingsoperator == en alle logische operatoren. Ze kunnen worden gebruikt bij het schrijven van logische uitdrukkingen. De tabellen geven een overzicht van veelvoorkomende toepassingen van de operator, dus het wordt aanbevolen om ze te onthouden.

Waarheidstabel voor operator ==

Waarheidstabel voor AND-operator

Waarheidstabel operator OF

Waarheidstabel voor de NOT-operator

Waarheidstabellen zijn algemene wiskundige tabellen die in de logica worden gebruikt. Het is handig om ze uit het hoofd te leren en ze vervolgens te gebruiken bij het bouwen van algoritmen en het schrijven van programma's.

Booleaanse operatoren gebruiken om de stroom te regelen

Om het resultaat en de gegevensstromen van het programma te controleren, kunt u voorwaardelijke instructies (voorwaarde) met uitdrukkingen (clausule) gebruiken.

Voorwaardelijke instructies evalueren een waarde als waar of onwaar.

Een expressie is een codeblok dat volgt op een voorwaardelijke instructie en het resultaat van het programma bepaalt.

Hieronder staat een codeblok dat laat zien hoe voorwaardelijke instructies kunnen worden gecombineerd om de stroom van een Python-programma te besturen.

als cijfer> = 65: # voorwaarde
print ("Passing grade") # expression
anders:
afdrukken ("Faalcijfer")

Dit programma evalueert de prestaties van elke student en bepaalt of hij geslaagd is voor het examen of niet. Als een leerling bijvoorbeeld 83 heeft getypt, is de eerste voorwaarde True en geeft het programma de regel weer:

Als de student 59 punten heeft gescoord, is de eerste voorwaarde onwaar, omdat het programma wordt uitgegeven.

Operators zijn constructies die de waarde van operanden kunnen manipuleren. Beschouw de uitdrukking 4 + 5 = 9. Hier worden 4 en 5 operanden genoemd en wordt + een operator genoemd.

Operatortypes

Python-taal ondersteunt de volgende typen operators:

  • rekenkundige operatoren
  • Vergelijking (relationele) operatoren
  • Toewijzingsoperators
  • Logische operatoren
  • Bitsgewijze operators
  • Lidmaatschapsoperators
  • Identificatie-operators

Laten we alle operators een voor een bekijken.

Rekenkundige operatoren in Python

maar de waarde is 10, en de variabele B bevat de waarde 21, dan:

operatorBeschrijvingvoorbeeld
+ ToevoegingWaarden aan weerszijden van de operator toevoegen.a + b = 31
- AftrekkenAftrekken van de rechter operand van de linker operand.a - b = -11
* VermenigvuldigingDe vermenigvuldiging van een waarde aan weerszijden van de operatoreen * b = 210
/ DivisieDeelt de linker operand door de rechter operandb / a = 2,1
% moduleDeelt de linker operand door de rechter operand en geeft de rest terugb% a = 1
** ExposantVoert exponentiële berekeningen uit op operatorsa ** b = 10 tot de macht 20
// deling met afrondingGeslachtsdeling - De verdeling van operanden, waarbij het resultaat een factor is waarin de komma wordt verwijderd. Maar als een van de operanden negatief is, wordt het resultaat afgerond, d.w.z. rondt af van nul (in de richting van negatief oneindig):9 // 2 = 4 en 9,0 // 2,0 = 4,0, -11 // 3 = -4, -11,0 // 3 = -4,0

Vergelijkingsoperatoren in Python

Operators vergelijken waarden aan weerszijden ervan en bepalen de relatie ertussen. Ze worden ook relationele operatoren genoemd.

Stel dat de variabele maar bevat de waarde 10 en de variabele B heeft een waarde van 20, dan:

operatorBeschrijvingvoorbeeld
== Als de waarden van de twee operanden gelijk zijn, wordt de voorwaarde waar.(a == b) is niet waar.
!= Als de waarden van de twee operanden niet gelijk zijn, wordt de voorwaarde waar.(a! = b) is waar.
> Als de waarde van de linker operand groter is dan de waarde van de rechter operand, wordt de voorwaarde waar.(a>b) niet waar.
< Als de waarde van de linker operand kleiner is dan de waarde van de rechter operand, wordt de voorwaarde waar.(maar< б) истинно.
> = Als de waarde van de linker operand groter is dan of gelijk is aan de waarde van de rechter operand, wordt de voorwaarde waar.(a> = b) is niet waar.
<= Als de waarde van de linker operand kleiner is dan of gelijk is aan de waarde van de rechter operand, wordt de voorwaarde waar.(maar<= б) истинно.

Python-toewijzingsoperators

Stel dat de variabele bevat maar de waarde is 10, en de variabele B heeft een waarde van 20, dan:

operatorBeschrijvingvoorbeeld
= Wijst waarden toe met de rechterkant van de operanden aan de linkerkant van de operandc = a + b kent de waarde van a + b toe aan c
+ = Toevoegen enVoegt de rechter operand toe aan de linker operand en wijst het resultaat toe aan de linker operandc + = a is gelijk aan c = c + a
- = aftrekken enTrekt de rechter operand af van de linker operand en wijst het resultaat toe aan de linker operandc - = a is gelijk aan c = c - a
* = vermenigvuldigen enVermenigvuldigt de rechter operand met de linker operand en wijst het resultaat toe aan de linker operandc * = a is gelijk aan c = c * a
/ = splitsen enDeelt de linker operand door de rechter operand en wijst het resultaat toe aan de linker operandc / = a is gelijk aan c = c / ac / = a is gelijk aan c = c / a
% = Module enAccepteert een module met twee operanden en wijst het resultaat toe aan de linker operandc% = a is gelijk aan c = c% a
** = exposant enBerekent de exponent van operatoren en wijst de waarde van de linker operand toec ** = a is gelijk aan c = c ** a
// = Verdieping VerdelingVoert deling uit op operatoren met afronding en wijst de waarde van de linker operand toec // = a is gelijk aan c = c // a

Bitsgewijze operators in Python

Bitsgewijze operators werken aan bits en voeren bewerkingen beetje bij beetje uit. Laten we zeggen als a = 60; en b = 13; Momenteel zien ze er in binair als volgt uit:

—————–

a & b = 0000 1100

a | b = 0011 1101

een ^ b = 0011 0001

De ingebouwde bin ()-functie van Python kan worden gebruikt om de binaire representatie van een geheel getal te krijgen.

De volgende Bitwise-operators worden ondersteund door de Python-taal:

OperatorBeschrijvingVoorbeeld
& binair ANDkopieën van de bit-operator, als resultaat, als ze in beide operanden bestaan(a & b) (0000 betekent 1100)
| binaire ORkopieert een bit als het in een van de operanden bestaat.(a | b) = 61 (betekent 0011 1101)
^ binair Exclusief ofkopieert een bit als het in één operand is ingesteld, maar niet in beide.(a ^ b) = 49 (betekent 0011 0001)
~ Binair complementHet is unair en heeft een flipping bit-effect.(~ a) = -61 (in vorm betekent dubbel complement 1100 0011 vanwege ondertekend binair getal.
<< Двоичный сдвиг влево De waarde van de linker operand wordt naar links verplaatst met het aantal bits gespecificeerd door de rechter operand.maar<< = 240 (1111 означает 0000)
>> Binaire verschuiving naar rechtsDe waarde van de linker operand wordt naar rechts verplaatst met het aantal bits gespecificeerd door de rechter operand.a >> = 15 (0000 betekent 1111)

Booleaanse operatoren in Python

De volgende logische operators worden ondersteund door de Python-taal. Stel dat de variabele eerlijk is en de variabele B is onwaar, dan:

Lid-operators in Python

De status van operators die testen op lidmaatschap van een reeks, zoals tekenreeksen, lijsten of tupels. Er zijn twee lidmaatschapsoperatoren, zoals hieronder wordt uitgelegd:

Identiteitsoperators in Python

Identiteitsoperators vergelijken de geheugenlocaties van twee objecten. Er zijn twee identificatieverklaringen zoals hieronder uitgelegd:

Voorrangsoperatoren voor Python

De volgende tabel geeft een overzicht van alle operators van de hoogste naar de laagste prioriteit.

SerienummerOperator & Beschrijving
1 **

Machtsverheffing (vermogenstoename)

2 ~ + –

Complement, unair plus en min (de methodenamen voor de laatste twee zijn + @ en - @)

3 * / % //

Vermenigvuldiging, modulo deling en modulo rest

4 + –

Optellen en aftrekken

5 >> <<

Bitsgewijze verschuiving naar rechts en links

6 &

Bitsgewijze "EN"

7 ^ |

Bitwise exclusieve "OF en gewone OF"

8 <= <>> =

vergelijkingsoperatoren

9 <> ==! =

gelijkheidsoperatoren

10 = %= /= //= -= += *= **=

opdracht operators

11 is niet

identificatie-operators

12 in niet in

lidmaatschapsoperators

13 niet of en

Logische operatoren

OperatorBeschrijvingVoorbeelden van
+ Toevoeging - Voegt waarden toe aan de linker- en rechterkant van de operator

15 + 5 resulteert in 20
20 + -3 het resultaat is 17
13,4 + 7 het resultaat is 20,4

- Aftrekken - Trekt de rechter operand van de linker af 15 - 5 resulteert in 10
20 - -3 resulterend in 23
13,4 - 7 resulterend in 6,4
* Vermenigvuldiging - Vermenigvuldigt de operanden 5 * 5 resulteert in 25
7 * 3,2 het resultaat is 22,4
-3 * 12 zal resulteren in -36
/ Delen - Verdeelt de linker operand door de rechter 15/5 resultaten in 3
5/2 resulteert in 2 (in Python 2.x-versie, wanneer twee gehele getallen worden gedeeld, is het resultaat een geheel getal)
5.0 / 2 het resultaat is 2.5 (om het "juiste" resultaat te krijgen, moet ten minste één operand een float zijn)
% Modulo Division - Deelt de linker operand door de rechter operand en retourneert de rest. 6% 2 resulteert in 0
7% 2 zal resulteren in 1
13,2% 5 als gevolg van 3,2
** Machtsverheffen - Verhoogt de linker operand tot de macht van de rechter 5 ** 2 resulteert in 25
2 ** 3 resultaten in 8
-3 ** 2 resulteert in -9
// Gehele deling - Deling waarin alleen het gehele deel van het resultaat wordt geretourneerd. Het gedeelte na de komma wordt weggegooid. 12 // 5 resulteert in 2
4 // 3 resulteert in 1
25 // 6 resulteert in 4

Vergelijkingsoperatoren in Python:

OperatorBeschrijvingVoorbeelden van
== Controleert of beide operanden gelijk zijn. Zo ja, dan wordt de voorwaarde waar. 5 == 5 resulteert in True
True == False resulteert in False
"hallo" == "hallo" zal resulteren in True
!= 12! = 5 resulteert in True
False! = False resulteert in False
"hi"! = "Hi" resulteert in True
<> Controleert of beide operanden gelijk zijn. Zo niet, dan wordt de voorwaarde waar.

12 <>5 resulteert in True. Lijkt op de! = Operator

> Controleert of de waarde van de linker operand groter is dan de waarde van de rechter. Zo ja, dan wordt de voorwaarde waar. 5> 2 resulteert in True.
True> False resulteert in True.
"A"> "B" zal resulteren in False.
< Controleert of de waarde van de linker operand kleiner is dan de waarde van de rechter. Zo ja, dan wordt de voorwaarde waar. 3 < 5 в результате будет True.
Waar< False в результате будет False.
"EEN"< "B" в результате будет True.
>= Controleert of de waarde van de linker operand groter is dan of gelijk is aan de waarde van de rechter. Zo ja, dan wordt de voorwaarde waar. 1> = 1 resulteert in True.
23> = 3.2 resulteert in True.
"C"> = "D" resulteert in False.
<= Controleert kleiner dan of gelijk aan de waarde van de linker operand dan de waarde van de rechter operand. Zo ja, dan wordt de voorwaarde waar. 4 <= 5 в результате будет True.
0 <= 0.0 в результате будет True.
-0.001 <= -36 в результате будет False.

Toewijzingsoperators in Python:

OperatorBeschrijvingVoorbeelden van
= Wijst de waarde van de rechter operand toe aan de linker. c = 23 zal de variabele toewijzen met de waarde 23
+= Telt de waarde van de rechter operand op bij de linker en wijst deze som toe aan de linker operand.

c = 5
een = 2
c + = a is gelijk aan: c = c + a. c is gelijk aan 7

-= Trekt de waarde van de rechter operand af van de linker en wijst het resultaat toe aan de linker operand.

c = 5
een = 2
c - = a is gelijk aan: c = c - a. c is gelijk aan 3

*= Vermenigvuldigt de rechter operand met de linker operand en wijst het resultaat toe aan de linker operand.

c = 5
een = 2
c * = a is gelijk aan: c = c * a. c wordt 10

/= Deelt de linker operand door de rechter en wijst het resultaat toe aan de linker operand. c = 10
een = 2
c / = a is gelijk aan: c = c / a. c wordt 5
%= Verdeelt de operanden modulo en wijst het resultaat toe aan de linker. c = 5
een = 2
c% = a is gelijk aan: c = c% a. c zal gelijk zijn aan 1
**= Verhoogt de linker operand tot de macht van de rechter en wijst het resultaat toe aan de linker operand. c = 3
een = 2
c ** = a is gelijk aan: c = c ** a. c wordt 9
//= Voert een gehele deling van de linker operand door de rechter uit en wijst het resultaat toe aan de linker operand. c = 11
een = 2
c // = a is gelijk aan: c = c // a. c wordt 5

Bitsgewijze operatoren in Python:

Bitwise-operators zijn ontworpen om te werken met gegevens in bit (binair) formaat. Stel we hebben twee getallen a = 60; en b = 13. In binair zullen ze er als volgt uitzien:

OperatorBeschrijvingVoorbeelden van
& Binaire "AND"-operator, kopieert een bit alleen naar het resultaat als de bit in beide operanden aanwezig is. (a & b) geeft ons 12, wat in binair getal lijkt op 0000 1100
| De binaire "OF"-operator kopieert een bit als deze aanwezig is in ten minste één operand. (a | b) geeft ons 61, in binair getal 0011 1101
^ De binaire operator "Exclusieve OF" kopieert alleen een bit als de bit in een van de operanden aanwezig is, maar niet in beide tegelijk. (a ^ b) geeft ons 49, in binair getal 0011 0001
~ Binaire gratis operator. Het is unair (dat wil zeggen, het heeft maar één operand nodig) keert de bits om, waar er één was, wordt nul en vice versa. (~ a) zal resulteren in -61, in binair ziet het eruit als 1100 0011.
<< Bitsgewijze linker shift. De waarde van de linker operand wordt naar links "verschoven" met het aantal bits gespecificeerd in de rechter operand. een<< 2 в результате даст 240, в двоичном формате 1111 0000
>> Bitgewijs naar rechts verschuiven. De waarde van de linker operand wordt "verschoven" naar rechts door het aantal bits gespecificeerd in de rechter operand. a >> 2 geeft 15, in binair 0000 1111

Logische operatoren in Python:

OperatorBeschrijvingVoorbeelden van
en Logische AND-operator. De voorwaarde is waar als beide operanden waar zijn.

Waar en waar is gelijk aan waar.
Waar en Onwaar is gelijk aan Onwaar.
False en True is gelijk aan False.
False en False is gelijk aan False.

of Logische operator "OF". Als ten minste één van de operanden waar is, is de hele uitdrukking waar. True of True is gelijk aan True.
Waar of niet waar is gelijk aan Waar.
False of True is gelijk aan True.
Onwaar of Onwaar is gelijk aan Onwaar.
niet Logische operator "NIET". Keer de booleaanse waarde van de operand om. niet waar is gelijk aan onwaar.
niet False is gelijk aan True.

Lidmaatschapsoperators in Python:

Naast de genoemde exploitanten, Python er zijn zogenaamde lidmaatschapsoperatoren die zijn ontworpen om te controleren op de aanwezigheid van een element in complexe gegevenstypen zoals strings, lijsten, tupels of woordenboeken:

Identiteitsoperatoren in Python:

Identiteitsoperators vergelijken de plaatsing van twee objecten in het geheugen van een computer.

Operatorprioriteit in Python

De volgende tabel beschrijft de prioriteit van de operators in: Python hoogste (eerst uitgevoerd) naar laagste.

OperatorBeschrijving
** Machtsverheffing
~ + - Gratis operator
* / % // Vermenigvuldigen, delen, modulo delen, integer delen.
+ - Optellen en aftrekken.
>> << Bitsgewijze rechtsverschuiving en bitsgewijze linksverschuiving.
& Binaire "EN".
^ | Binaire "Exclusieve OF" en binaire "OF"
<= < > >= Vergelijkingsoperators
<> == != Gelijkheidsoperatoren
= %= /= //= -= += *= **= Toewijzingsoperators
is is niet Identieke operatoren
in niet in Lidmaatschapsoperators
niet of en Logische operatoren

In het echte leven zijn we het vaak eens met of ontkennen we een stelling. Als u bijvoorbeeld wordt verteld dat de som van de getallen 3 en 5 groter is dan 7, zult u het daarmee eens zijn en zeggen: "Ja, het is waar." Als iemand beweert dat de som van drie en vijf kleiner is dan zeven, dan beschouw je zo'n stelling als onwaar.

Dergelijke zinnen suggereren slechts twee mogelijke antwoorden - ofwel "ja" wanneer de uitdrukking als waar of waar wordt beoordeeld, of "nee" wanneer de verklaring als foutief of onwaar wordt beoordeeld. In programmering en wiskunde, als het resultaat van het evalueren van een uitdrukking alleen waar of onwaar kan zijn, wordt zo'n uitdrukking logisch genoemd.

De uitdrukking 4> 5 is bijvoorbeeld Booleaans omdat deze resulteert in waar of onwaar. De uitdrukking 4 + 5 is niet logisch, omdat het resultaat van de uitvoering een getal is.

In de voorlaatste les maakten we kennis met drie soorten gegevens: gehele getallen en reële getallen, evenals strings. Vandaag introduceren we de vierde - booleaans gegevenstype(typ bool). Het wordt ook wel booleaans genoemd. Dit type heeft slechts twee mogelijke waarden: Waar(waar) en niet waar(Fout).

>>> a = Waar >>> typ (a) >>> b = Onwaar >>> typ (b)

Hier kreeg de variabele a de waarde True toegewezen en vervolgens werd het type gecontroleerd met behulp van de ingebouwde functie type () van Python. De interpreter meldde dat dit een bool class-variabele is. De concepten "klasse" en "gegevenstype" zijn in dit geval hetzelfde. De variabele b is ook gekoppeld aan een booleaanse waarde.

Bij het programmeren wordt False meestal gelijkgesteld aan nul en True aan één. Om dit te verifiëren, kunt u een booleaanse waarde converteren naar een geheel getal:

>>> int (waar) 1 >>> int (onwaar) 0

Het tegenovergestelde is ook mogelijk. U kunt elke waarde naar een booleaans type converteren:

>>> bool (3.4) Waar >>> bool (-150) Waar >>> bool (0) niet waar >>> bool ("") Waar >>> bool ("") niet waar

En hier werkt de regel: alles wat niet 0 is en niet leegte is waar.

Logische operatoren

Sprekend in een natuurlijke taal (bijvoorbeeld Russisch), duiden we vergelijkingen aan met de woorden "gelijk", "meer", "minder". Programmeertalen gebruiken speciale tekens die vergelijkbaar zijn met die in de wiskunde worden gebruikt:> (meer),< (меньше), >= (groter dan of gelijk aan),<= (меньше или равно), == (равно), != (не равно).

Verwar de bewerking van het toewijzen van een waarde aan een variabele, in Python aangeduid met het enkele gelijkteken, en de vergelijkingsbewerking (twee gelijktekens) niet. Toewijzing en vergelijking zijn verschillende bewerkingen.

>>> een = 10 >>> b = 5 >>> a + b> 14 Waar >>> een< 14 - b niet waar >>> een<= b + 5 Waar >>> a! = b Waar >>> een == b niet waar >>> c = a == b >>> a, b, c(10, 5, niet waar)

In dit voorbeeld is de uitdrukking c = een == b bestaat uit twee subexpressies. Eerst is er een vergelijking (==) van de variabelen a en b. Daarna wordt het resultaat van de logische bewerking toegewezen aan de variabele c. uitdrukking a , b, c print gewoon de waarden van de variabelen naar het scherm.

Complexe logische uitdrukkingen

Booleaanse uitdrukkingen zoals kByte> = 1023 zijn eenvoudig omdat ze slechts één Booleaanse bewerking uitvoeren. In de praktijk is er echter vaak behoefte aan complexere uitingen. Afhankelijk van de uitkomst van twee eenvoudige uitdrukkingen moet u mogelijk een "Ja" of "Nee" antwoord krijgen. Bijvoorbeeld: "het sneeuwt of regent buiten", "de nieuwsvariabele is groter dan 12 en kleiner dan 20".

In dergelijke gevallen worden speciale operators gebruikt die twee of meer eenvoudige logische uitdrukkingen combineren. Twee operatoren worden veel gebruikt - de zogenaamde logische AND ( en) en OF ( of).

en, is het vereist dat de resultaten van beide eenvoudige uitdrukkingen die deze operator bindt waar zijn. Als in ten minste één geval het resultaat False is, is de gehele complexe expressie false.

True krijgen bij gebruik van de operator of, is het noodzakelijk dat het resultaat van ten minste één eenvoudige uitdrukking in een complexe waar is. In het geval van de exploitant of een complexe uitdrukking wordt pas onwaar als beide eenvoudige uitdrukkingen onwaar zijn.

Stel dat variabele x de waarde 8 krijgt (x = 8), variabele y krijgt 13 (y = 13). Booleaanse uitdrukking y< 15 and x >8 wordt als volgt uitgevoerd. De uitdrukking y wordt als eerste uitgevoerd< 15 . Его результатом будет True. Затем выполнится выражение x >acht . Het resultaat zal False zijn. Verder wordt de uitdrukking gereduceerd tot True en False, wat False retourneert.

>>> x = 8 >>> y = 13 >>> ja< 15 and x > 8 niet waar

Als we de uitdrukking als volgt zouden schrijven: x> 8 en y< 15 , то оно также вернуло бы False. Однако сравнение y < 15 не выполнялось бы интерпретатором, так как его незачем выполнять. Ведь первое простое логическое выражение (x >8) heeft al false geretourneerd, wat, in het geval van de operator en, de hele expressie false maakt.

In het geval van de operator of wordt de tweede eenvoudige expressie gecontroleerd als de eerste false retourneert, en niet gecontroleerd als de eerste al true heeft geretourneerd. Aangezien een enkele True voldoende is om de hele uitdrukking waar te laten zijn, maakt het niet uit aan welke kant of aan welke kant deze staat.

>>> ja< 15 or x > 8 Waar

Python heeft ook een unaire logische operator niet, d.w.z. negatie. Hij verandert de waarheid in een leugen en een leugen in de waarheid. Het is unair omdat het van toepassing is op een enkele uitdrukking erna, en niet rechts en links ervan, zoals in het geval van binair en en of.

Operator

Beschrijving

Voorbeelden van

Logische AND-operator. De voorwaarde is waar als beide operanden waar zijn.

Waar en waar is gelijk aan waar. Waar en Onwaar is gelijk aan Onwaar. False en True is gelijk aan False. False en False is gelijk aan False.

Logische operator "OF". Als ten minste één van de operanden waar is, is de hele uitdrukking waar.

True of True is gelijk aan True. Waar of niet waar is gelijk aan Waar. False of True is gelijk aan True. Onwaar of Onwaar is gelijk aan Onwaar.

Logische operator "NIET". Keer de booleaanse waarde van de operand om.

niet waar is gelijk aan onwaar. niet False is gelijk aan True.

    Python. Vertakkende operators. Voorwaardelijke exploitant. Meerkeuze-operator. Organisatiestructuren van de cyclus.

Filiaaloperator (voorwaardelijke verklaring, voorwaardelijke verklaring)- een operator, een programmeertaalontwerp dat de uitvoering van een bepaald commando (set van commando's) alleen verzekert als een logische uitdrukking waar is, of de uitvoering van een van meerdere commando's (sets van commando's), afhankelijk van de waarde van een bepaalde uitdrukking.

Vertakkingsoperator als .... else

De voorwaardelijke operator implementeert de uitvoering van bepaalde commando's, op voorwaarde dat een logische uitdrukking (voorwaarde) de waarde "true" true aanneemt. In de meeste programmeertalen begint een voorwaardelijke instructie met het if-sleutelwoord

Meerkeuze-operator

De meerkeuze-instructie stelt je in staat om verschillende delen van het programma uit te voeren, afhankelijk van de waarde die een integere variabele elif zal hebben.

While en for-loops

Het while-statement biedt een manier om universele lussen te organiseren;

De for-instructie is ontworpen om elementen in reeksen te doorlopen en uit te voeren

blok programmacode voor elk van hen.

14. Python. Tupels, woordenboeken, lijsten. plakjes

Een tuple is in wezen een onveranderlijke lijst.

Waarom zijn tuples nodig als er lijsten zijn?

Onfeilbaar. Dat wil zeggen, de tuple is beschermd tegen veranderingen, zowel opzettelijk (wat slecht is) als toevallig (wat goed is).

Welnu, je kunt een tuple maken van een itereerbaar object met dezelfde beruchte tuple ()-functie

>>> a = tuple ("hallo wereld!")

("Hallo Wereld", "! ")

Woordenboeken in Python- ongeordende verzamelingen van willekeurige objecten met sleuteltoegang. Ze worden soms ook associatieve arrays of hashtabellen genoemd.

Woordenboekmethoden

dict.clear() - wist het woordenboek.

dict.kopie() - retourneert een kopie van het woordenboek.

klasmethode dict.fromkeys(seq [, value]) - maakt een woordenboek met sleutels van seq en value (standaard is Geen).

dict.get(sleutel [, standaard]) - retourneert de waarde van de sleutel, maar als deze niet bestaat, genereert deze geen uitzondering, maar retourneert standaard (standaard Geen).

dict.items() - retourneert paren (sleutel, waarde).

dict.keys() - geeft de sleutels in het woordenboek terug.

dict.pop(sleutel [, standaard]) - verwijdert de sleutel en retourneert de waarde. Als de sleutel niet aanwezig is, wordt de standaard geretourneerd (er wordt standaard een uitzondering gemaakt).

dict.popitem() - verwijdert en retourneert een (sleutel, waarde) paar. Als het woordenboek leeg is, wordt een KeyError-uitzondering gegenereerd. Onthoud dat woordenboeken ongeordend zijn.

dict.setdefault(sleutel [, standaard]) - retourneert de waarde van de sleutel, maar als deze niet bestaat, wordt er geen uitzondering gegenereerd, maar wordt een sleutel gemaakt met de standaardwaarde (standaard Geen).

dict.update() - werkt het woordenboek bij door (sleutel, waarde) paren van andere toe te voegen. Bestaande sleutels worden overschreven. Retourneert Geen (geen nieuw woordenboek!).

dict.waarden() - Retourneert de waarden in het woordenboek.

Wat zijn lijsten?

Lijsten in Python zijn geordende, veranderlijke verzamelingen van objecten van willekeurige typen (bijna als een array, maar de typen kunnen verschillen).

Om lijsten te gebruiken, moet u ze maken. Er zijn verschillende manieren om een ​​lijst te maken. U kunt bijvoorbeeld elk willekeurig object (zoals een tekenreeks) verwerken met de lijst: ingebouwde functie.

Lijst met methoden:

Methode Wat doet?

list.append (x) Voegt een item toe aan het einde van de lijst

list.extend (L) Breidt de lijst uit door alle elementen van L aan het einde toe te voegen

list.insert (i, x) Voegt de waarde x in op het i-de element

list.remove (x) Verwijdert het eerste element in de lijst met de waarde x

list.pop ([i]) Verwijdert het i-de element en geeft het terug. Als er geen index is opgegeven, wordt het laatste element verwijderd

list.index (x,]) Geeft de positie van het eerste element van begin tot eind terug met de waarde x

list.count (x) Geeft het aantal items met de waarde x

list.sort () Sorteert de lijst op basis van een functie

list.reverse () Breidt de lijst uit

list.copy () Een ondiepe kopie van een lijst (nieuw in python 3.3)

list.clear () Wist de lijst (nieuw in python 3.3)

plakjes

In Python zijn er naast indexen ook slices.

item - neemt een plak van het START-nummer naar STOP (niet inbegrepen), met een STEP-stap. Standaard is START = 0, STOP = objectlengte, STEP = 1. Daardoor kunnen sommige (en mogelijk alle) parameters worden weggelaten.

>>> een =

Al deze parameters kunnen ook negatief zijn:

>>> een =

>>> een [:: - 1]

>>> een [-2 :: - 1]

>>> een

In het laatste voorbeeld wordt een lege lijst verkregen, aangezien START< STOP, а STEP отрицательный. То же самое произойдёт, если диапазон значений окажется за пределами объекта:

>>> een =

>>> een

Met slices kunt u niet alleen elementen extraheren, maar ook elementen toevoegen en verwijderen (uiteraard alleen voor veranderlijke reeksen).

>>> een =

>>> een =