2010-06-09 6 views
0

En Python IDLE Shell, il semble que je ne puisse pas utiliser une expression conditionnelle composée et une boucle while. Je l'ai essayé entre parenthèses aussi. Prenez ces deux exemples:Python basique Évaluation conditionnelle composée de boucles

k=0 
m=0 
while k<10 & m<10: 
    print k 
    k +=1 
    m+=1 

Ceci n'évalue pas la deuxième condition. Mais si j'écris

while k<10: 
    print k 
    k+=1 

Cela ne fonctionne pas. Y a-t-il un moyen de réaliser le premier bloc de code avec l'opérateur "and"? Je l'ai fait en Java. Dois-je simplement mettre en place des instructions "if" pour obtenir la même fonctionnalité en Python?

+0

La réponse à votre question est donnée ci-dessous par Deniz Dogan. Mais en construisant habituellement des boucles 'while' (ou' for') comme ça, je. e. en utilisant un compteur et en l'incrémentant jusqu'à une certaine valeur, n'est pas Pythonic. Vous préférez faire un 'for x in range (10)' ou mieux, 'item dans list_of_items', laissant Python gérer l'itération. –

+1

Pour ajouter au commentaire de Tim, vous pouvez utiliser 'pour idx, elem dans enumerate (my_list)' pour obtenir à la fois le "compteur" basé sur 0 dans 'idx' et l'élément à cet index de la liste dans' elem'. –

Répondre

6

& doit être and. & est l'opérateur AND bit à bit.