Python 2 vs Python 3


The most prominent differences between Python 2 and Python 3 are presented here. Thankfully, they’re relatively easy to get used to. If you’re curious about the other differences: Sebastian Raschka’s article


Using print


In Python 2, print is a statement, while in Python 3, print is a function. Practically, this means that in Python 2 you can do things like:

# using Python 2
print "Hello, World!"
print "LaunchCode", "is great"

Output:

Hello, World!
LaunchCode is great

In Python 3, the equivalent code would be

# using Python 3
print("Hello, World!")
print("LaunchCode", "is great")

For most intents and purposes, you can see that Python 2 print statements don’t use parentheses, but Python 3 print statements do. That said, you can do the following in Python 2:

# using Python 2
print("Hello, World!")
print("LaunchCode", "is great")

with output:

Hello, World!
(LaunchCode, is great)

Hence, Python 2 will accept print statements with parentheses, but with potentially unexpected output. Conversely, if you try to use print without parentheses in Python 3, you’ll get a syntax error.

# using Python 3
print "please print me"

Output:

  File "<stdin>", line 1
    print "please print me"
                          ^
SyntaxError: Missing parentheses in call to 'print'


Prompting for input


In Python 3, you’ve used the input function to prompt for user input.

# using Python 3
name = input("What's your name? ") # name is a string
age = input("How old are you? ") # age is a string

In Python 2, to get the same behavior we have to use the raw_input function.

# using Python 2
name = raw_input("What's your name? ") # name is a string
age = raw_input("How old are you? ") # age is a string

input is available as a function in Python 2, but it behaves differently than in Python 3. For more details, see the article linked above.