Maison > Périphériques technologiques > IA > Opérateur de morse Python

Opérateur de morse Python

Joseph Gordon-Levitt
Libérer: 2025-03-07 10:28:14
original
806 Les gens l'ont consulté

Python Walrus Operator

L'opérateur de morse (: =) introduit dans Python 3.8 est une amélioration importante de la syntaxe du langage, qui introduit la fonctionnalité des expressions d'affectation. Cet opérateur permet aux développeurs d'attribuer des variables dans les expressions. L'opérateur de morse peut écrire du code de nettoyage lorsqu'il est nécessaire d'utiliser la valeur d'une variable immédiatement dans une expression. Cet article plongera dans les principes de travail, les cas d'utilisation et les avantages de l'opérateur de morse de Python.

Objectifs d'apprentissage

  • souligne l'opérateur de morse et sa syntaxe.
  • L'identification de l'opérateur de morse peut simplifier le scénario de code.
  • Implémentez l'opérateur de morse dans divers contextes tels que des boucles et des instructions conditionnelles.
  • Apprenez les meilleures pratiques et les pièges potentiels lors de l'utilisation de cet opérateur.

Catalogue

  • quel est l'opérateur de morse?
  • Utilisation de base
  • Opérateur de morse de Python: Règles de syntaxe
  • Avantages de l'utilisation de l'opérateur de morse
  • Best Practice
  • Conclusion
  • FAQ

quel est l'opérateur de morse?

L'opérateur

Walrus permet de réaliser des affectations dans des expressions plutôt que comme des instructions distinctes.

La syntaxe de l'opérateur de morse est la suivante:

<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela signifie que vous pouvez attribuer des valeurs aux variables lors de l'évaluation des expressions. Cet opérateur porte le nom de ses yeux similaires et de son ivoire aux morses.

Utilisation de base

Ce qui suit est un exemple de base démontrant le fonctionnement de l'opérateur de morse:

<code># 使用 Walrus 运算符
if (n := len(numbers)) > 0:
    print(f"Length of numbers: {n}")</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Dans cet exemple, n se voit attribuer la longueur des nombres et est utilisé dans les contrôles conditionnels.

Opérateur de morse de Python: Règles de syntaxe

Voici les règles de syntaxe clés pour l'utilisation de l'opérateur de morse:

Règles de grammaire

  • Syntaxe de base : La syntaxe de base de l'opérateur de morse est:
<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela signifie que lors de l'évaluation d'une expression, la variable est attribuée à la suite de l'expression.

  • Position : L'opérateur de morse peut être utilisé dans divers contextes, comme si les instructions, pendant les boucles et les compréhensions de liste. Il vous permet d'attribuer des valeurs dans la même ligne et d'utiliser immédiatement la valeur.

  • Exigences de branche : Lorsque vous incorporez l'opérateur de morse dans des expressions plus complexes, telles que les opérateurs ternaires ou les expressions imbriquées, vous devrez peut-être utiliser des parenthèses pour assurer l'ordre correct de l'évaluation. Par exemple:

<code>result = (x := some_function()) if x > 10 else "Too low"</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
  • Limitations de dénomination des variables : Les variables attribuées avec l'opérateur de walrus doivent être des noms simples; les attributs ou les indices ne peuvent pas être utilisés directement comme noms. Par exemple, ce qui suit n'est pas valide:
<code>my_object.attr := value  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
  • Non autorisé à utiliser au niveau supérieur : L'opérateur de morse ne peut pas attribuer directement des valeurs au niveau supérieur d'une expression, sans utiliser de parenthèses. Cela signifie que vous ne pouvez pas écrire quelque chose comme les suivants:
<code>walrus := True  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Veuillez utiliser des supports à la place:

<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Avantages de l'utilisation de l'opérateur de morse

L'opérateur de morse (: =) introduit dans Python 3.8 offre certains avantages qui peuvent améliorer l'efficacité et la lisibilité de l'encodage. En autorisant les affectations dans les expressions, il simplifie le code et réduit la redondance. Voici quelques-uns des principaux avantages de l'utilisation de l'opérateur de morse:

code simple et lisible

L'un des avantages les plus importants de l'opérateur de morse est qu'il rend le code plus concis. En combinant l'évaluation de l'affectation et de l'expression dans une ligne, il réduit le besoin d'instructions d'attribution individuelles qui peuvent confondre le code. Ceci est particulièrement utile dans les scénarios où vous devez attribuer des valeurs à une variable, puis l'utiliser immédiatement.

<code># 使用 Walrus 运算符
if (n := len(numbers)) > 0:
    print(f"Length of numbers: {n}")</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Dans cet exemple, l'opérateur de morse permet une approche plus propre en effectuant des affectations et des vérifications consécutives.

Amélioration des performances

L'utilisation de l'opérateur de morse peut améliorer les performances en évitant les calculs redondants. Lorsque vous traitez avec des appels de fonction coûteux ou des expressions complexes, il n'effectue des calculs qu'une seule fois, ce qui permet d'économiser du temps et des ressources.

<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Ici, lors de l'utilisation de l'opérateur de morse, FUNC (X) n'est appelé qu'une seule fois par itération, ce qui améliore considérablement l'efficacité.

Compréhension de la liste simplifiée

L'opérateur de morse est particulièrement utile dans les compréhensions de la liste, où vous souhaitez filtrer ou transformer des données en fonction de certaines conditions. Il vous permet de calculer une valeur une fois, puis de l'utiliser plusieurs fois dans la dérivation.

<code>result = (x := some_function()) if x > 10 else "Too low"</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Dans ce cas, lent (num) évalue une seule fois par élément de nombres par itération, ce qui rend le code non seulement plus efficace, mais aussi plus facile à lire que les boucles traditionnelles.

Structure de boucle améliorée

L'opérateur de morse peut simplifier la structure de boucle en permettant les affectations dans des conditions de boucle. Cela rend le code plus concis et direct.

<code>my_object.attr := value  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette utilisation élimine la nécessité de lire des lignes d'entrée supplémentaires avant de vérifier la valeur d'entrée, en simplifiant la boucle.

Évitez les appels de fonction en double

Dans de nombreux cas, en particulier lorsqu'ils traitent des fonctions ou itérateurs coûteux en calcul, l'opérateur de morse aide à éviter les appels en double qui peuvent dégrader les performances.

<code>walrus := True  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela garantit que Cher_Function (x) n'est effectué qu'une seule fois par itération, pas deux fois.

Python Utilisation de l'opérateur de morse

L'opérateur de morse (: =) est un outil commun dans Python qui permet les affectations dans les expressions. Voici des cas d'utilisation très utiles pour cet opérateur, ainsi que quelques exemples pour illustrer sa fonctionnalité et son utilité:

Simplifiez lors de la boucle

L'opérateur de morse est particulièrement utile dans les boucles qui nécessitent des affectations répétées, puis des conditions de vérification.

N'utilisez pas l'opérateur de morse:

<code>(walrus := True)  # 有效,但不推荐用于简单的赋值</code>
Copier après la connexion
Copier après la connexion

Utilisez l'opérateur de morse:

<code># 不使用 Walrus 运算符
value = get_data()
if value:
    process(value)

# 使用 Walrus 运算符
if (value := get_data()):
    process(value)</code>
Copier après la connexion
Copier après la connexion

Raison:

  • Les variables de données sont attribuées elles-mêmes dans la condition de boucle, éliminant la redondance.
  • Cette méthode réduit la confusion du code et évite les erreurs potentielles d'oublier pour réaffecter les variables.

Améliorer la compréhension de la liste

Les compréhensions de la liste sont un excellent moyen d'écrire du code concis, mais parfois vous devez calculer et réutiliser les valeurs. L'opérateur de morse le rend facile.

N'utilisez pas l'opérateur de morse:

<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Utilisez l'opérateur de morse:

<code># 使用 Walrus 运算符
if (n := len(numbers)) > 0:
    print(f"Length of numbers: {n}")</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Raison:

  • Expression (y: = x * x) calcule Y et attribue des valeurs, vous n'avez donc pas à écrire le calcul deux fois.
  • Cela améliore les performances et rend la dérivation plus compacte.

Énoncé conditionnel d'optimisation

L'opérateur

Walrus est idéal pour les cas où les conditions dépendent de la valeur qui doit être calculée en premier.

N'utilisez pas l'opérateur de morse:

<code>variable := expression</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Utilisez l'opérateur de morse:

<code>result = (x := some_function()) if x > 10 else "Too low"</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Raison:

  • L'attribution et la condition sont combinés en une seule étape, réduisant le nombre de lignes de code.
  • Ceci est particulièrement utile pour traiter les fonctions de coût de calcul élevées.

Simplifier le traitement des données dans les boucles

L'opérateur de morse peut aider à traiter les données pendant l'itération, telles que la lecture de fichiers ou de flux.

N'utilisez pas l'opérateur de morse:

<code>my_object.attr := value  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Utilisez l'opérateur de morse:

<code>walrus := True  # 无效</code>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Raison:

  • La ligne de variable est attribuée et vérifiée en une étape, ce qui rend le code plus concis et plus facile à comprendre.

Calcul et conditions de combinaison

Les opérateurs de morse

peuvent réduire la redondance lorsque vous devez calculer une valeur pour une condition, mais également la réutiliser plus tard.

N'utilisez pas l'opérateur de morse:

<code>(walrus := True)  # 有效,但不推荐用于简单的赋值</code>
Copier après la connexion
Copier après la connexion

Utilisez l'opérateur de morse:

<code># 不使用 Walrus 运算符
value = get_data()
if value:
    process(value)

# 使用 Walrus 运算符
if (value := get_data()):
    process(value)</code>
Copier après la connexion
Copier après la connexion

Raison:

  • L'informatique et le conditionnement sont combinés ensemble sans avoir besoin de lignes de code séparées.

Filtrer et convertir les données

L'opérateur de morse peut être utilisé pour effectuer des transformations pendant le filtrage, en particulier en mode de programmation fonctionnelle.

N'utilisez pas l'opérateur de morse:

<code># 不使用 Walrus 运算符(函数被多次调用)
results = [func(x) for x in data if func(x) > threshold]

# 使用 Walrus 运算符(函数只调用一次)
results = [y for x in data if (y := func(x)) > threshold]</code>
Copier après la connexion

Utilisez l'opérateur de morse:

<code>numbers = [7, 6, 1, 4, 1, 8, 0, 6]
results = [y for num in numbers if (y := slow(num)) > 0]</code>
Copier après la connexion

Raison:

  • Convertir et filtrer la logique en une seule expression pour rendre le code plus concis.

Bloqué de lecture Stream

L'opérateur de morse est particulièrement utile pour les opérations qui nécessitent une lecture de données ouverts.

N'utilisez pas l'opérateur de morse:

<code>while (line := input("Enter something (or 'quit' to exit): ")) != "quit":
    print(f"You entered: {line}")</code>
Copier après la connexion

Utilisez l'opérateur de morse:

<code># 多次调用昂贵的函数
result = [expensive_function(x) for x in range(10) if expensive_function(x) > 5]

# 使用 Walrus 运算符
result = [y for x in range(10) if (y := expensive_function(x)) > 5]</code>
Copier après la connexion

Raison:

  • L'affectation et les conditions sont combinées pour simplifier la boucle et moins sujette aux erreurs.

Best Practice

Ci-dessous, nous verrons quelques meilleures pratiques pour l'opérateur de morse:

  • préfèrent la lisibilité : utilisez-le dans le contexte où l'opérateur de morse peut améliorer la clarté, en évitant les expressions complexes qui confondent les lecteurs.
  • Évitez la surutilisation : limitez son utilisation aux scénarios qui simplifient le code, plutôt que de l'utiliser à volonté dans tous les cas.
  • Style cohérent : Utilisation cohérente de l'opérateur de morse avec des normes de codage établies dans l'équipe ou le projet pour une amélioration de la maintenabilité.
  • Utilisation dans des expressions simples : Gardez l'expression simple et claire pour vous assurer que le code est facile à lire et à comprendre.
  • Testez le cas de bord : Utilisez le boîtier Edge pour tester soigneusement votre code pour confirmer qu'il fonctionne correctement dans diverses conditions.

Conclusion

L'opérateur de morse est un ajout puissant à Python et peut améliorer considérablement l'efficacité et la lisibilité du code, si elles sont utilisées correctement. En autorisant les affectations dans les expressions, il réduit la redondance et simplifie la structure du code. Cependant, comme tout outil, il doit être utilisé avec prudence pour maintenir la clarté.

Points de clé
  • L'opérateur de morse (: =) permet les affectations dans les expressions.
  • Il simplifie le code en réduisant la redondance et en améliorant la lisibilité.
  • Utilisez-le avec prudence pour éviter de créer du code déroutant ou difficile à entretenir.

FAQ

Q1.

a.

Q2.

a.

Q3.

a.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal