There is new syntax := that assigns values to variables as part of a larger expression. It is affectionately known as “the walrus operator” due to its resemblance to the eyes and tusks of a walrus.
xxxxxxxxxx
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
xxxxxxxxxx
#PYTHON RELATIONAL OPERATORS
OPERATOR DESCRIPTION SYNTAX FUNCTION IN-PLACE METHOD
> Greater than a > b gt(a, b) __gt__(self, other)
>= Greater or equal to a >= b ge(a, b) __ge__(self, other)
< Less than a < b lt(a, b) __lt__(self, other)
<= Less or equal to a <= b le(a, b) __le__(self, other)
== Equal to a == b eq(a, b) __eq__(self, other)
!= Not equal to a != b ne(a, b) __ne__(self, other)
#PYTHON MATHEMATICAL OPERATORS
OPERATOR DESCRIPTION SYNTAX FUNCTION IN-PLACE METHOD
+ Addition a + b add(a, b) __add__(self, other)
– Subtraction a - b sub(a, b) __sub__(self, other)
* Multiplication a * b mul(a, b) __mul__(self, other)
/ True Division a / b truediv(a, b) __truediv__(self, other)
// Floor Division a // b floordiv(a, b) __floordiv__(self, other)
% Modulo a % b mod(a, b) __mod__(self, other)
** Power a ** b pow(a, b) __pow__(self, other)
#PYTHON BITWISE OPERATORS
OPERATOR DESCRIPTION SYNTAX FUNCTION IN-PLACE METHOD
& Bitwise AND a & b and_(a, b) __and__(self, other)
| Bitwise OR a | b or_(a,b) __or__(self, other)
^ Bitwise XOR a ^ b xor(a, b) __xor__(self, other)
~ Bitwise NOT ~ a invert(a) __invert__(self)
>> Bitwise R shift a >> b rshift(a, b) __irshift__(self, other)
<< Bitwise L shift a << b lshift(a, b) __lshift__(self, other)
xxxxxxxxxx
# --------------------------
# -- Arithmetic Operators --
# --------------------------
# [+] Addition
# [-] Subtraction
# [*] Multiplication
# [/] Division
# [%] Modulus
# [**] Exponent
# [//] Floor Division
# --------------------------
# Addition
print(10 + 30) # 40
print(-10 + 20) # 10
print(1 + 2.66) # 3.66
print(1.2 + 1.2) # 2.4
# Subtraction
print(60 - 30) # 30
print(-30 - 20) # -50
print(-30 - -20) # -10
print(5.66 - 3.44) # 2.22
# Multiplication
print(10 * 3) # 30
print(5 + 10 * 100) # 1005
print((5 + 10) * 100) # 1500
# Division
print(100 / 20) # 5.0
print(int(100 / 20)) # 5
# Modulus
print(8 % 2) # 0
print(9 % 2) # 1
print(20 % 5) # 0
print(22 % 5) # 2
# Exponent
print(2 ** 5) # 32
print(2 * 2 * 2 * 2 * 2) # 32
print(5 ** 4) # 625
print(5 * 5 * 5 * 5) # 625
# Floor Division
print(100 // 20) # 5
print(119 // 20) # 5
print(120 // 20) # 6
print(140 // 20) # 7
print(142 // 20) # 7
xxxxxxxxxx
>>> s1 = {"a", "b", "c"}
>>> s2 = {"d", "e", "f"}
>>> # OR, |
>>> s1 | s2
{'a', 'b', 'c', 'd', 'e', 'f'}
>>> s1 # `s1` is unchanged
{'a', 'b', 'c'}
>>> # In-place OR, |=
>>> s1 |= s2
>>> s1 # `s1` is reassigned
{'a', 'b', 'c', 'd', 'e', 'f'}
xxxxxxxxxx
a = 3
b = 4
# Arithmetic Operators
print("The value of 3+4 is ", 3+4)
print("The value of 3-4 is ", 3-4)
print("The value of 3*4 is ", 3*4)
print("The value of 3/4 is ", 3/4)
# Assignment Operators
a = 34
a -= 12
a *= 12
a /= 12
print(a)
# Comparison Operators
# b = (14<=7)
# b = (14>=7)
# b = (14<7)
# b = (14>7)
# b = (14==7)
b = (14!=7)
print(b)
# Logical Operators
bool1 = True
bool2 = False
print("The value of bool1 and bool2 is", (bool1 and bool2))
print("The value of bool1 or bool2 is", (bool1 or bool2))
print("The value of not bool2 is", (not bool2))
xxxxxxxxxx
the ^ operator in python is xor logical operation
if you dont know what xor is
basicly its a bitwise operator
which is some logic that is done on each bit of the data
side note:(if you dont know any thing about binary or logic on them
i suggest you learn about the topic its not easy to explain here)
the xor have 2 parameters a and b
here is what happens on each bit of a and b
a|b|result
0|0|0
1|0|1
0|1|1
1|1|0
xxxxxxxxxx
# usual form
a and b == c
# sometimes usefull to make up expressions
import operator
from itertools import reduce
# equals to `a and b and c`
reduce(
operator.and_,
[a, b, c]
)
xxxxxxxxxx
#One thing to note- since Python treats all numbers as floats (decimal numbers),
#you can use the double division sign // to get an integer.
#This is useful for finding indexes.
string1 = "abcde"
middle = string1[len(string1) // 2] # 4//2
print(middle)
# c