Python >> Tutoriel Python >  >> Python

Impression Python sans parenthèses

Les parenthèses sont utilisées pour initier un appel de fonction en Python. Voici trois exemples :

  • f() appelle la fonction personnalisée f sans argument,
  • print('hello world') appelle la fonction intégrée print avec l'argument chaîne 'hello world' , et
  • range(2, 10, 3) appelle la fonction intégrée range sur les arguments entiers 2 , 10 , et 3 .

Une question courante parmi les débutants Python qui ont vu du code en ligne contenant print() sans parenthèses. En d'autres termes :Comment print() sans parenthèses ?

Python 2 vs Python 3 - Déclaration d'impression vs Fonction

Avec l'introduction de Python 3, le print l'instruction (sans parenthèses) est devenue un print fonction (avec parenthèses). Vous pouvez vérifier votre version de Python en exécutant "python – version " dans votre ligne de commande ou votre terminal.

En Python 2, "print " est une déclaration et non une fonction. Par conséquent, vous pouvez imprimer une chaîne sans utiliser les parenthèses de fonction, par exemple, print 'hello world' .

# Python 2
print 'hello world'

En Python 3, "print " fait référence à une fonction intégrée, donc si vous voulez l'utiliser, vous devez utiliser des parenthèses, par exemple, print('hello world') .

# Python 3
print('hello world')

Vous pouvez en savoir plus sur le print() fonction dans cette vidéo explicative :

Il n'y a aucun moyen en Python 3 d'imprimer sans parenthèses. Cependant, vous pouvez imprimer avec des parenthèses en Python 2 en ajoutant la ligne "from __future__import print_function " en haut de votre extrait de code.

# Python 2
from __future__ import print_function
print('hello world')

Si vous êtes vraiment paresseux et que vous ne voulez pas taper les deux caractères supplémentaires entre parenthèses, vous devez d'abord savoir que l'espace vide dans Python 2 doit également être tapé. Et deuxièmement, vous pouvez utiliser l'astuce suivante pour enregistrer quatre (!) caractères chaque fois que vous souhaitez imprimer quelque chose en Python 3 :

# Python 3
p = print
p('hello world')

Mais vous devez d'abord investir neuf caractères pour le "p = print ” ligne (que vous pourriez réduire à sept “p=print "). Techniquement, cet investissement de caractères ne rapporte que si vous appelez le p() nouvellement créé fonctionner au moins trois fois (ou deux si vous insistez sur la variante sans espace).

(Je sais que je sais - voici l'avertissement :ne faites pas ça à la maison ! ) ? C'est un mauvais style et les gens vous détesteront pour cela. Je le sais parce que j'ai écrit un livre sur Python One-Liners, quelque chose qui est tout aussi mal vu.

Pour toutes les âmes blessées, voici à nouveau le Zen de Python :

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one – and preferably only one – obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let's do more of those!