Parentheses are used to initiate a function call in Python. Here are three examples:
f()
calls custom functionf
without an argument,print('hello world')
calls built-in functionprint
with the string argument'hello world'
, andrange(2, 10, 3)
calls built-in functionrange
on the integer arguments2
,10
, and3
.
A common question among Python newbies who have seen some code online that contains print()
without parentheses. In other words: How to print()
without parentheses?
Python 2 vs Python 3 – Print Statement vs Function
With the introduction of Python 3, the print
statement (without parentheses) became a print
function (with parentheses). You can check your Python version by running “python --version
” in your command-line or terminal.
In Python 2, “print
” is a statement and not a function. Consequently, you can print a string without using the function parentheses, for example, print 'hello world'
.
# Python 2 print 'hello world'
In Python 3, “print
” refers to a built-in function, so if you want to use it, you need to use parentheses, for example, print('hello world')
.
# Python 3 print('hello world')
You can learn more about the print()
function in this explainer video:
There’s no way in Python 3 to print without parentheses. However, you can print with parentheses in Python 2 by adding the line “from __future__import print_function
” to the top of your code snippet.
# Python 2 from __future__ import print_function print('hello world')
If you’re really lazy and you don’t want to type the two additional parentheses characters, first you should know that the empty space in Python 2 must be typed too. And second, you can use the following trick to save four (!) characters each time you want to print something in Python 3:
# Python 3 p = print p('hello world')
But you need to invest nine characters first for the “p = print
” line (which you could reduce to seven “p=print
“). Technically, this investment of characters only pays off if you call the newly-created p()
function at least three times (or twice if you insist on the whitespace-free variant).
(I know I know — here’s the disclaimer: don’t do this at home!) ? It’s bad style and people will hate you for it. I know because I’ve written a book on Python One-Liners—something that is equally frowned upon.
For all the hurt souls out there, here’s the Zen of Python again:
>>> 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!
Where to Go From Here?
Enough theory. Let’s get some practice!
Coders get paid six figures and more because they can solve problems more effectively using machine intelligence and automation.
To become more successful in coding, solve more real problems for real people. That’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?
You build high-value coding skills by working on practical coding projects!
Do you want to stop learning with toy projects and focus on practical code projects that earn you money and solve real problems for people?
🚀 If your answer is YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
If you just want to learn about the freelancing opportunity, feel free to watch my free webinar “How to Build Your High-Income Skill Python” and learn how I grew my coding business online and how you can, too—from the comfort of your own home.