Python est l'équivalent de && (logique-et) dans un if

Voici mon code:

def front_back(a, b):
  # +++your code here+++
  if len(a) % 2 == 0 && len(b) % 2 == 0:
    return a[:(len(a)/2)] + b[:(len(b)/2)] + a[(len(a)/2):] + b[(len(b)/2):] 
  else:
    #todo! Not yet done. :P
  return

J'obtiens une erreur dans le SI conditionnel. Ce que je fais mal?

  • Clairement Sergio voulait savoir pourquoi son code était cassé, mais j'ai lu un peu plus sur le titre de la question. Pourquoi ne pas && être disponible de toute façon? == et != sont disponibles (mais sont différents des est et n'est pas, je sais). Pourquoi ne pas inclure cette syntaxe? Préférence personnelle?
  • Pourquoi inclure redondants une syntaxe qui ne s'améliore pas à un seul aspect?
  • Rudolph: C'est un outil que les gens à atteindre, pour autant, il est là, c'est tout. Si nous avons inclus tous les ces de tels scénarios, cependant, conduire à des ballonnements. Donc je peux dire que non, && ne leur appartient pas.
  • Il me semble que l'interprète doit, plutôt que d'imprimer un laconique "SyntaxError: invalid syntax" - détecter que l'utilisateur a utilisé le && à penser qu'ils pourraient vouloir utiliser le mot clé and à la place. En va de même pour des choses comme ++ et d'autres opérateurs courants à partir d'autres langues.
  • devrait être l'un, et de préférence un seul, moyen évident de le faire." import this
  • Absolument améliore les aspects de la langue. Il est plus cohérent et intuitif pour quelqu'un qui n'a jamais utilisé de toute autre langue. le fait que cette question existe et qu'il a autant de trafic qu'il ne met clairement en évidence que cette question est une commune point d'achoppement pour les gens.
  • Maintenez la presse, plus d'un langage de programmation syntaxe existe. Sérieusement, Python moyen de définition de ces opérateurs n'est pas unique, et il est parfaitement justifiable. Il y a un argument pour des raisons de cohérence, mais à l'inverse il y a aussi un argument pour améliorer l'existant. Et sans changement, il ne peut y avoir d'amélioration. Clairement, je crois que dans ce cas particulier, Python est un point d'amélioration.
  • Je pense que vous devriez être à la une "la presse". Je suis tout simplement réfuter votre déclaration absurde que ça ne fait pas avancer d'un seul aspect. Lorsque comme je l'ai dit ci-dessus, il est clair que cela. Peut-être, il existe de bons arguments pour ne pas l'inclure. Mais vous n'êtes pas faire un de ces arguments.
  • and et or peut également être utilisé pour évaluer la truthiness des expressions impliquant plus que juste des valeurs booléennes. Pour plus d'informations, veuillez consulter ce post.

InformationsquelleAutor | 2010-03-21