-1
votes

Variable% d et + = opérateur en python

J'essaie de créer un motif en python. Je dois avoir toutes les pages d'un ensemble de liens (appelé "sujets_links"): ex. J'ai www.url / animal (avec www.url / animal / page / 1 ECC.) Et www.url / plantes (avec www.url / plantes / page / 1 ECC). J'ai fait ceci: xxx

mais me donne une erreur "syntaxe invalide". N'est-il pas possible d'utiliser% d et + = ensemble?

Modifier

J'ai trouvé une solution à l'aide de beauxoup: xxx < / Pré>

Cela change totalement la façon de le faire, mais au moins cela fonctionne.


4 commentaires

n + = 1 n'est pas une valeur, vous ne pouvez donc pas l'utiliser comme valeur de substitution. Vous pouvez utiliser (n + 1) ou vous pouvez incrémenter n séparément.


n + = 1 est une opération d'affectation, ce n'est pas JavaScript, dans Python, vous ne pouvez pas utiliser l'affectation en tant que déclaration qui renvoie la valeur. Do n + = 1 en ligne avant ou après votre opération.


Ou, si vous avez besoin de faire cela beaucoup, vous pouvez rouler votre propre classe wrapper fournissant une méthode incrémentandget . En outre, où viennent-il? Cela semble être une sorte de boucle, peut-être sur une certaine collection de résultats, alors peut-être que vous pouvez simplement utiliser énumérer ?


Ce serait bien plus facile et lisible d'écrire n + = 1 et d'utiliser juste n.


3 Réponses :


0
votes

n + = 1 est un Affectation augmentée-déclaration et vous essayez de l'utiliser comme un expression .

Ce qui suit fonctionne: xxx

Remarque: j'ai modifié l'exemple de sorte qu'il puisse s'exécuter sur son propre


2 commentaires

Cela me tire juste la première page, pas les autres


Même si je fais: n = 0 n + = 1 impression ('page /% d'% n) Il ne prend pas plus de pages que d'une



-1
votes

Vous devriez augmenter N séparément car vous définissez la valeur pour N en faisant

n = n +1


1 commentaires

Malheureusement non



2
votes

Depuis Python 3.8, vous pourrez utiliser l'expression de l'affectation. n + = 1 est une déclaration d'affectation. xxx


2 commentaires

J'ai donc besoin de passer de 3,7 à 3,8?


@Lara vous n'êtes pas obligé. AFAIK 3.8 est en développement. Vous pouvez utiliser les autres solutions, bien que celle-ci soit légèrement plus pratique.