Ceci est une ancienne révision du document !
Table des matières
Notes Python syntaxe
Liste de tous les mots clefs Python
#help("keywords") import keyword keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
keyword.softkwlist
['_', 'case', 'match']
Fonctions
Annotations de fonctions
def func(a: int, b: int, c: int) -> int: return a + b + c
Liste des fonctions natives
Syntaxe
kw = dict( changed=changed, query=cursor.query, statusmessage=statusmessage, query_result=query_result, rowcount=rowcount if rowcount >= 0 else 0, )
In [7]: rowcount=-1 In [8]: print(rowcount) if rowcount >= 0 else 0 Out[8]: 0
i: int = 10 s: str = 'string'
Lambda
# Simple quote a string q = lambda s: f"'{s}'" # Double quote a string qq = lambda s: f'"{s}"'
Cast
String to bool
tls_verify = environ.get("VERIFY_SSL") # String to bool tls_verify = tls_verify.lower in ("true",)
ou encore
def str2bool(v): return v.lower() in ("yes", "true", "t", "1")
Décorateur
Exemple
def decorteur_print(_): def print_tmp(*args, **kv): print("Function print called") print(*args, **kv) return print_tmp @decorteur_print def print2(*args, **kv): print(*args, **kv) print2("Foo", "Bar", sep=";")
Surcharger une fonction
# On copie notre fonction print_bak = print def decorteur_print(_): def print_tmp(*args, **kv): print_bak("Function print called") print_bak(*args, **kv) return print_tmp @decorteur_print def print(*args, **kv): print_bak(*args, **kv) print("Foo", "Bar", sep=";")
Générateurs
Yield vs yield from
The yield statement
The generator is a function that returns an iterator. Normally a generator function has a yield statement. To define a generator function we need to use a yield statement as shown below:
def generate_number(): for x in range(10): yield x
The generate_number has a yield statement, so it is a generator function. Let’s print the values from the generator :
gen = generate_number() for number in gen: print(number)
0 1 2 3 4 5 6 7 8 9
The “yield from” statement
The “yield from” allows us to yield from another generator function or iterables. Let’s understand with some examples.
Consider the following generator function :
def gen_number(): yield 1 yield 2 yield 3
We can print the generator values using a loop.
for num in gen_number(): print(num)
1 2 3
Let’s consider another function(gen_cool_numbers) using the gen_number generator function.
def gen_cool_numbers(): yield 1000 for num in gen_number(): yield num yield 2000 for x in gen_cool_numbers(): print(x)
1000 1 2 3 2000
We can update the gen_cool_numbers function by replacing the for loop with yield from as shown below:
def gen_cool_numbers(): yield 1000 yield from gen_number() yield 2000 for x in gen_cool_numbers(): print(x)
1000 1 2 3 2000
Yield from can also be used with iterable(list, tuple, string etc
def gen_cool_numbers(): yield 1000 yield from [50,60,80] yield 2000 for x in gen_cool_numbers(): print(x)
1000 50 60 80 2000
Source : https://nolowiz.com/difference-between-yield-and-yield-from-in-python/
