def gensquares(N):
for i in range(N):
yield i ** 2
for x in gensquares(10):
print (x)
0 1 4 9 16 25 36 49 64 81
Créez un générateur qui donne «n» nombres aléatoires entre un nombre de départ et un nombre d'arrivée (qui sont les pramètres d'entrée). Remarque: utilisez la bibliothèque random.
Par exemple:
import random
random.randint(1,10)
6
def rand_num(départ,arrivée,n):
for i in range(n):
yield random.randint(départ, arrivée)
for num in rand_num(1,10,12):
print (num)
8 5 1 3 7 1 3 9 2 9 3 1
Utilisez la fonction iter () pour convertir la chaîne ci-dessous
s = 'bonjour'
s = iter(s)
print (next(s))
b
Expliquez un cas d'utilisation pour un générateur en utilisant une déclaration yield plutôt que d'utiliser une fonction normale avec une instruction de retour.
If the output has the potential of taking up a large amount of memory and you only intend to iterate through it, you would want to use a generator. (Multiple answers are acceptable here!)
Pouvez-vous expliquer ce que gencomp est dans le code ci-dessous? (Note: Nous n'avons jamais couvert cela en cours ! Vous devrez faire quelques appels à Google et Stack Overflow !)
ma_liste = [1,2,3,4,5]
gencomp = (item for item in ma_liste if item > 3)
for item in gencomp:
print (item)
4 5
Conseil google: generator comprehension !