2to3 -f print
diff --git a/samples/adexchangeseller/generate_report.py b/samples/adexchangeseller/generate_report.py
index 8440caa..510c94b 100644
--- a/samples/adexchangeseller/generate_report.py
+++ b/samples/adexchangeseller/generate_report.py
@@ -20,6 +20,7 @@
 
 Tags: reports.generate
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -68,14 +69,14 @@
       sys.exit(1)
     # Display headers.
     for header in result['headers']:
-      print '%25s' % header['name'],
-    print
+      print('%25s' % header['name'], end=' ')
+    print()
 
     # Display results.
     for row in result['rows']:
       for column in row:
-        print '%25s' % column,
-      print
+        print('%25s' % column, end=' ')
+      print()
 
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
diff --git a/samples/adexchangeseller/generate_report_with_paging.py b/samples/adexchangeseller/generate_report_with_paging.py
index ed14976..9ef1b0c 100644
--- a/samples/adexchangeseller/generate_report_with_paging.py
+++ b/samples/adexchangeseller/generate_report_with_paging.py
@@ -24,6 +24,7 @@
 
 Tags: reports.generate
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -70,14 +71,14 @@
       # If this is the first page, display the headers.
       if start_index == 0:
         for header in result['headers']:
-          print '%25s' % header['name'],
-        print
+          print('%25s' % header['name'], end=' ')
+        print()
 
       # Display results for this page.
       for row in result['rows']:
         for column in row:
-          print '%25s' % column,
-        print
+          print('%25s' % column, end=' ')
+        print()
 
       start_index += len(result['rows'])
 
diff --git a/samples/adexchangeseller/get_all_ad_clients.py b/samples/adexchangeseller/get_all_ad_clients.py
index 67333d2..a06d3bd 100644
--- a/samples/adexchangeseller/get_all_ad_clients.py
+++ b/samples/adexchangeseller/get_all_ad_clients.py
@@ -18,6 +18,7 @@
 
 Tags: adclients.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,11 +44,11 @@
       result = request.execute()
       ad_clients = result['items']
       for ad_client in ad_clients:
-        print ('Ad client for product "%s" with ID "%s" was found. '
-               % (ad_client['productCode'], ad_client['id']))
+        print(('Ad client for product "%s" with ID "%s" was found. '
+               % (ad_client['productCode'], ad_client['id'])))
 
-        print ('\tSupports reporting: %s' %
-               (ad_client['supportsReporting'] and 'Yes' or 'No'))
+        print(('\tSupports reporting: %s' %
+               (ad_client['supportsReporting'] and 'Yes' or 'No')))
 
       request = service.adclients().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_ad_units.py b/samples/adexchangeseller/get_all_ad_units.py
index 317199b..8599545 100644
--- a/samples/adexchangeseller/get_all_ad_units.py
+++ b/samples/adexchangeseller/get_all_ad_units.py
@@ -20,6 +20,7 @@
 
 Tags: adunits.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,8 +55,8 @@
       result = request.execute()
       ad_units = result['items']
       for ad_unit in ad_units:
-        print ('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
-               (ad_unit['code'], ad_unit['name'], ad_unit['status']))
+        print(('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
+               (ad_unit['code'], ad_unit['name'], ad_unit['status'])))
 
       request = service.adunits().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py b/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
index 2e9f4ba..0c63225 100644
--- a/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
+++ b/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
@@ -20,6 +20,7 @@
 
 Tags: customchannels.adunits.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -59,8 +60,8 @@
       result = request.execute()
       ad_units = result['items']
       for ad_unit in ad_units:
-        print ('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
-               (ad_unit['code'], ad_unit['name'], ad_unit['status']))
+        print(('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
+               (ad_unit['code'], ad_unit['name'], ad_unit['status'])))
 
       request = service.adunits().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_alerts.py b/samples/adexchangeseller/get_all_alerts.py
index 459038c..f15ef51 100644
--- a/samples/adexchangeseller/get_all_alerts.py
+++ b/samples/adexchangeseller/get_all_alerts.py
@@ -18,6 +18,7 @@
 
 Tags: alerts.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         alerts = result['items']
         for alert in alerts:
-          print ('Alert id "%s" with severity "%s" and type "%s" was found. '
-                 % (alert['id'], alert['severity'], alert['type']))
+          print(('Alert id "%s" with severity "%s" and type "%s" was found. '
+                 % (alert['id'], alert['severity'], alert['type'])))
       else:
-        print 'No alerts found!'
+        print('No alerts found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_custom_channels.py b/samples/adexchangeseller/get_all_custom_channels.py
index 43b5eca..68f92d2 100644
--- a/samples/adexchangeseller/get_all_custom_channels.py
+++ b/samples/adexchangeseller/get_all_custom_channels.py
@@ -20,6 +20,7 @@
 
 Tags: customchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,20 +55,20 @@
       result = request.execute()
       custom_channels = result['items']
       for custom_channel in custom_channels:
-        print ('Custom channel with id "%s" and name "%s" was found. '
-               % (custom_channel['id'], custom_channel['name']))
+        print(('Custom channel with id "%s" and name "%s" was found. '
+               % (custom_channel['id'], custom_channel['name'])))
 
         if 'targetingInfo' in custom_channel:
-          print '  Targeting info:'
+          print('  Targeting info:')
           targeting_info = custom_channel['targetingInfo']
           if 'adsAppearOn' in targeting_info:
-            print '    Ads appear on: %s' % targeting_info['adsAppearOn']
+            print('    Ads appear on: %s' % targeting_info['adsAppearOn'])
           if 'location' in targeting_info:
-            print '    Location: %s' % targeting_info['location']
+            print('    Location: %s' % targeting_info['location'])
           if 'description' in targeting_info:
-            print '    Description: %s' % targeting_info['description']
+            print('    Description: %s' % targeting_info['description'])
           if 'siteLanguage' in targeting_info:
-            print '    Site language: %s' % targeting_info['siteLanguage']
+            print('    Site language: %s' % targeting_info['siteLanguage'])
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py b/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
index 78205a1..b73bf15 100644
--- a/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
+++ b/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
@@ -21,6 +21,7 @@
 
 Tags: customchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -62,20 +63,20 @@
       result = request.execute()
       custom_channels = result['items']
       for custom_channel in custom_channels:
-        print ('Custom channel with code "%s" and name "%s" was found. '
-               % (custom_channel['code'], custom_channel['name']))
+        print(('Custom channel with code "%s" and name "%s" was found. '
+               % (custom_channel['code'], custom_channel['name'])))
 
         if 'targetingInfo' in custom_channel:
-          print '  Targeting info:'
+          print('  Targeting info:')
           targeting_info = custom_channel['targetingInfo']
           if 'adsAppearOn' in targeting_info:
-            print '    Ads appear on: %s' % targeting_info['adsAppearOn']
+            print('    Ads appear on: %s' % targeting_info['adsAppearOn'])
           if 'location' in targeting_info:
-            print '    Location: %s' % targeting_info['location']
+            print('    Location: %s' % targeting_info['location'])
           if 'description' in targeting_info:
-            print '    Description: %s' % targeting_info['description']
+            print('    Description: %s' % targeting_info['description'])
           if 'siteLanguage' in targeting_info:
-            print '    Site language: %s' % targeting_info['siteLanguage']
+            print('    Site language: %s' % targeting_info['siteLanguage'])
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_dimensions.py b/samples/adexchangeseller/get_all_dimensions.py
index 6c0e585..0c6bec7 100644
--- a/samples/adexchangeseller/get_all_dimensions.py
+++ b/samples/adexchangeseller/get_all_dimensions.py
@@ -18,6 +18,7 @@
 
 Tags: metadata.dimensions.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         dimensions = result['items']
         for dimension in dimensions:
-          print ('Dimension id "%s" for product(s): [%s] was found. '
-                 % (dimension['id'], ', '.join(dimension['supportedProducts'])))
+          print(('Dimension id "%s" for product(s): [%s] was found. '
+                 % (dimension['id'], ', '.join(dimension['supportedProducts']))))
       else:
-        print 'No dimensions found!'
+        print('No dimensions found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_metrics.py b/samples/adexchangeseller/get_all_metrics.py
index c1bf06f..0f2df22 100644
--- a/samples/adexchangeseller/get_all_metrics.py
+++ b/samples/adexchangeseller/get_all_metrics.py
@@ -18,6 +18,7 @@
 
 Tags: metadata.metrics.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         metrics = result['items']
         for metric in metrics:
-          print ('Metric id "%s" for product(s): [%s] was found. '
-                 % (metric['id'], ', '.join(metric['supportedProducts'])))
+          print(('Metric id "%s" for product(s): [%s] was found. '
+                 % (metric['id'], ', '.join(metric['supportedProducts']))))
       else:
-        print 'No metrics found!'
+        print('No metrics found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_preferred_deals.py b/samples/adexchangeseller/get_all_preferred_deals.py
index 1614183..3ef38a4 100644
--- a/samples/adexchangeseller/get_all_preferred_deals.py
+++ b/samples/adexchangeseller/get_all_preferred_deals.py
@@ -18,6 +18,7 @@
 
 Tags: preferreddeals.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,7 +55,7 @@
           output += 'was found.'
           print(output)
       else:
-        print 'No preferred deals found!'
+        print('No preferred deals found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_saved_reports.py b/samples/adexchangeseller/get_all_saved_reports.py
index 5f19e7c..fed0885 100644
--- a/samples/adexchangeseller/get_all_saved_reports.py
+++ b/samples/adexchangeseller/get_all_saved_reports.py
@@ -19,6 +19,7 @@
 
 Tags: savedreports.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -44,8 +45,8 @@
       result = request.execute()
       saved_reports = result['items']
       for saved_report in saved_reports:
-        print ('Saved report with ID "%s" and name "%s" was found.'
-               % (saved_report['id'], saved_report['name']))
+        print(('Saved report with ID "%s" and name "%s" was found.'
+               % (saved_report['id'], saved_report['name'])))
 
       request = service.reports().saved().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_url_channels.py b/samples/adexchangeseller/get_all_url_channels.py
index 262cab3..c19c6ee 100644
--- a/samples/adexchangeseller/get_all_url_channels.py
+++ b/samples/adexchangeseller/get_all_url_channels.py
@@ -20,6 +20,7 @@
 
 Tags: urlchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -55,8 +56,8 @@
 
       url_channels = result['items']
       for url_channel in url_channels:
-        print ('URL channel with URL pattern "%s" was found.'
-               % url_channel['urlPattern'])
+        print(('URL channel with URL pattern "%s" was found.'
+               % url_channel['urlPattern']))
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/analytics/core_reporting_v3_reference.py b/samples/analytics/core_reporting_v3_reference.py
index effb5d9..671f4ef 100755
--- a/samples/analytics/core_reporting_v3_reference.py
+++ b/samples/analytics/core_reporting_v3_reference.py
@@ -56,6 +56,7 @@
 
   $ python core_reporting_v3_reference.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -86,12 +87,12 @@
 
   except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
   except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     # Handle Auth errors.
@@ -142,12 +143,12 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Report Infos:'
-  print 'Contains Sampled Data = %s' % results.get('containsSampledData')
-  print 'Kind                  = %s' % results.get('kind')
-  print 'ID                    = %s' % results.get('id')
-  print 'Self Link             = %s' % results.get('selfLink')
-  print
+  print('Report Infos:')
+  print('Contains Sampled Data = %s' % results.get('containsSampledData'))
+  print('Kind                  = %s' % results.get('kind'))
+  print('ID                    = %s' % results.get('id'))
+  print('Self Link             = %s' % results.get('selfLink'))
+  print()
 
 
 def print_pagination_info(results):
@@ -157,16 +158,16 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Pagination Infos:'
-  print 'Items per page = %s' % results.get('itemsPerPage')
-  print 'Total Results  = %s' % results.get('totalResults')
+  print('Pagination Infos:')
+  print('Items per page = %s' % results.get('itemsPerPage'))
+  print('Total Results  = %s' % results.get('totalResults'))
 
   # These only have values if other result pages exist.
   if results.get('previousLink'):
-    print 'Previous Link  = %s' % results.get('previousLink')
+    print('Previous Link  = %s' % results.get('previousLink'))
   if results.get('nextLink'):
-    print 'Next Link      = %s' % results.get('nextLink')
-  print
+    print('Next Link      = %s' % results.get('nextLink'))
+  print()
 
 
 def print_profile_info(results):
@@ -176,14 +177,14 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Profile Infos:'
+  print('Profile Infos:')
   info = results.get('profileInfo')
-  print 'Account Id      = %s' % info.get('accountId')
-  print 'Web Property Id = %s' % info.get('webPropertyId')
-  print 'Profile Id      = %s' % info.get('profileId')
-  print 'Table Id        = %s' % info.get('tableId')
-  print 'Profile Name    = %s' % info.get('profileName')
-  print
+  print('Account Id      = %s' % info.get('accountId'))
+  print('Web Property Id = %s' % info.get('webPropertyId'))
+  print('Profile Id      = %s' % info.get('profileId'))
+  print('Table Id        = %s' % info.get('tableId'))
+  print('Profile Name    = %s' % info.get('profileName'))
+  print()
 
 
 def print_query(results):
@@ -193,11 +194,11 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Query Parameters:'
+  print('Query Parameters:')
   query = results.get('query')
   for key, value in query.iteritems():
-    print '%s = %s' % (key, value)
-  print
+    print('%s = %s' % (key, value))
+  print()
 
 
 def print_column_headers(results):
@@ -211,15 +212,15 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Column Headers:'
+  print('Column Headers:')
   headers = results.get('columnHeaders')
   for header in headers:
     # Print Dimension or Metric name.
-    print '\t%s name:    = %s' % (header.get('columnType').title(),
-                                  header.get('name'))
-    print '\tColumn Type = %s' % header.get('columnType')
-    print '\tData Type   = %s' % header.get('dataType')
-    print
+    print('\t%s name:    = %s' % (header.get('columnType').title(),
+                                  header.get('name')))
+    print('\tColumn Type = %s' % header.get('columnType'))
+    print('\tData Type   = %s' % header.get('dataType'))
+    print()
 
 
 def print_totals_for_all_results(results):
@@ -229,17 +230,17 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Total Metrics For All Results:'
-  print 'This query returned %s rows.' % len(results.get('rows'))
-  print ('But the query matched %s total results.' %
-         results.get('totalResults'))
-  print 'Here are the metric totals for the matched total results.'
+  print('Total Metrics For All Results:')
+  print('This query returned %s rows.' % len(results.get('rows')))
+  print(('But the query matched %s total results.' %
+         results.get('totalResults')))
+  print('Here are the metric totals for the matched total results.')
   totals = results.get('totalsForAllResults')
 
   for metric_name, metric_total in totals.iteritems():
-    print 'Metric Name  = %s' % metric_name
-    print 'Metric Total = %s' % metric_total
-    print
+    print('Metric Name  = %s' % metric_name)
+    print('Metric Total = %s' % metric_total)
+    print()
 
 
 def print_rows(results):
@@ -249,12 +250,12 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Rows:'
+  print('Rows:')
   if results.get('rows', []):
     for row in results.get('rows'):
-      print '\t'.join(row)
+      print('\t'.join(row))
   else:
-    print 'No Rows Found'
+    print('No Rows Found')
 
 
 if __name__ == '__main__':
diff --git a/samples/analytics/hello_analytics_api_v3.py b/samples/analytics/hello_analytics_api_v3.py
index e0514db..783594f 100755
--- a/samples/analytics/hello_analytics_api_v3.py
+++ b/samples/analytics/hello_analytics_api_v3.py
@@ -40,6 +40,7 @@
 
   $ python hello_analytics_api_v3.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -61,19 +62,19 @@
   try:
     first_profile_id = get_first_profile_id(service)
     if not first_profile_id:
-      print 'Could not find a valid profile for this user.'
+      print('Could not find a valid profile for this user.')
     else:
       results = get_top_keywords(service, first_profile_id)
       print_results(results)
 
   except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
   except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     # Handle Auth errors.
@@ -151,15 +152,15 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print
-  print 'Profile Name: %s' % results.get('profileInfo').get('profileName')
-  print
+  print()
+  print('Profile Name: %s' % results.get('profileInfo').get('profileName'))
+  print()
 
   # Print header.
   output = []
   for header in results.get('columnHeaders'):
     output.append('%30s' % header.get('name'))
-  print ''.join(output)
+  print(''.join(output))
 
   # Print data table.
   if results.get('rows', []):
@@ -167,10 +168,10 @@
       output = []
       for cell in row:
         output.append('%30s' % cell)
-      print ''.join(output)
+      print(''.join(output))
 
   else:
-    print 'No Rows Found'
+    print('No Rows Found')
 
 
 if __name__ == '__main__':
diff --git a/samples/analytics/management_v3_reference.py b/samples/analytics/management_v3_reference.py
index 4151d7e..51bf78d 100755
--- a/samples/analytics/management_v3_reference.py
+++ b/samples/analytics/management_v3_reference.py
@@ -50,6 +50,7 @@
 
   $ python management_v3_reference.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -73,12 +74,12 @@
 
   except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
   except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run'
@@ -139,25 +140,25 @@
         collection.
   """
 
-  print '------ Account Collection -------'
+  print('------ Account Collection -------')
   print_pagination_info(accounts_response)
-  print
+  print()
 
   for account in accounts_response.get('items', []):
-    print 'Account ID      = %s' % account.get('id')
-    print 'Kind            = %s' % account.get('kind')
-    print 'Self Link       = %s' % account.get('selfLink')
-    print 'Account Name    = %s' % account.get('name')
-    print 'Created         = %s' % account.get('created')
-    print 'Updated         = %s' % account.get('updated')
+    print('Account ID      = %s' % account.get('id'))
+    print('Kind            = %s' % account.get('kind'))
+    print('Self Link       = %s' % account.get('selfLink'))
+    print('Account Name    = %s' % account.get('name'))
+    print('Created         = %s' % account.get('created'))
+    print('Updated         = %s' % account.get('updated'))
 
     child_link = account.get('childLink')
-    print 'Child link href = %s' % child_link.get('href')
-    print 'Child link type = %s' % child_link.get('type')
-    print
+    print('Child link href = %s' % child_link.get('href'))
+    print('Child link type = %s' % child_link.get('type'))
+    print()
 
   if not accounts_response.get('items'):
-    print 'No accounts found.\n'
+    print('No accounts found.\n')
 
 
 def print_webproperties(webproperties_response):
@@ -168,32 +169,32 @@
         Webproperties collection.
   """
 
-  print '------ Web Properties Collection -------'
+  print('------ Web Properties Collection -------')
   print_pagination_info(webproperties_response)
-  print
+  print()
 
   for webproperty in webproperties_response.get('items', []):
-    print 'Kind               = %s' % webproperty.get('kind')
-    print 'Account ID         = %s' % webproperty.get('accountId')
-    print 'Web Property ID    = %s' % webproperty.get('id')
-    print ('Internal Web Property ID = %s' %
-           webproperty.get('internalWebPropertyId'))
+    print('Kind               = %s' % webproperty.get('kind'))
+    print('Account ID         = %s' % webproperty.get('accountId'))
+    print('Web Property ID    = %s' % webproperty.get('id'))
+    print(('Internal Web Property ID = %s' %
+           webproperty.get('internalWebPropertyId')))
 
-    print 'Website URL        = %s' % webproperty.get('websiteUrl')
-    print 'Created            = %s' % webproperty.get('created')
-    print 'Updated            = %s' % webproperty.get('updated')
+    print('Website URL        = %s' % webproperty.get('websiteUrl'))
+    print('Created            = %s' % webproperty.get('created'))
+    print('Updated            = %s' % webproperty.get('updated'))
 
-    print 'Self Link          = %s' % webproperty.get('selfLink')
+    print('Self Link          = %s' % webproperty.get('selfLink'))
     parent_link = webproperty.get('parentLink')
-    print 'Parent link href   = %s' % parent_link.get('href')
-    print 'Parent link type   = %s' % parent_link.get('type')
+    print('Parent link href   = %s' % parent_link.get('href'))
+    print('Parent link type   = %s' % parent_link.get('type'))
     child_link = webproperty.get('childLink')
-    print 'Child link href    = %s' % child_link.get('href')
-    print 'Child link type    = %s' % child_link.get('type')
-    print
+    print('Child link href    = %s' % child_link.get('href'))
+    print('Child link type    = %s' % child_link.get('type'))
+    print()
 
   if not webproperties_response.get('items'):
-    print 'No webproperties found.\n'
+    print('No webproperties found.\n')
 
 
 def print_profiles(profiles_response):
@@ -204,44 +205,44 @@
         Profiles collection.
   """
 
-  print '------ Profiles Collection -------'
+  print('------ Profiles Collection -------')
   print_pagination_info(profiles_response)
-  print
+  print()
 
   for profile in profiles_response.get('items', []):
-    print 'Kind                      = %s' % profile.get('kind')
-    print 'Account ID                = %s' % profile.get('accountId')
-    print 'Web Property ID           = %s' % profile.get('webPropertyId')
-    print ('Internal Web Property ID = %s' %
-           profile.get('internalWebPropertyId'))
-    print 'Profile ID                = %s' % profile.get('id')
-    print 'Profile Name              = %s' % profile.get('name')
+    print('Kind                      = %s' % profile.get('kind'))
+    print('Account ID                = %s' % profile.get('accountId'))
+    print('Web Property ID           = %s' % profile.get('webPropertyId'))
+    print(('Internal Web Property ID = %s' %
+           profile.get('internalWebPropertyId')))
+    print('Profile ID                = %s' % profile.get('id'))
+    print('Profile Name              = %s' % profile.get('name'))
 
-    print 'Currency         = %s' % profile.get('currency')
-    print 'Timezone         = %s' % profile.get('timezone')
-    print 'Default Page     = %s' % profile.get('defaultPage')
+    print('Currency         = %s' % profile.get('currency'))
+    print('Timezone         = %s' % profile.get('timezone'))
+    print('Default Page     = %s' % profile.get('defaultPage'))
 
-    print ('Exclude Query Parameters        = %s' %
-           profile.get('excludeQueryParameters'))
-    print ('Site Search Category Parameters = %s' %
-           profile.get('siteSearchCategoryParameters'))
-    print ('Site Search Query Parameters    = %s' %
-           profile.get('siteSearchQueryParameters'))
+    print(('Exclude Query Parameters        = %s' %
+           profile.get('excludeQueryParameters')))
+    print(('Site Search Category Parameters = %s' %
+           profile.get('siteSearchCategoryParameters')))
+    print(('Site Search Query Parameters    = %s' %
+           profile.get('siteSearchQueryParameters')))
 
-    print 'Created          = %s' % profile.get('created')
-    print 'Updated          = %s' % profile.get('updated')
+    print('Created          = %s' % profile.get('created'))
+    print('Updated          = %s' % profile.get('updated'))
 
-    print 'Self Link        = %s' % profile.get('selfLink')
+    print('Self Link        = %s' % profile.get('selfLink'))
     parent_link = profile.get('parentLink')
-    print 'Parent link href = %s' % parent_link.get('href')
-    print 'Parent link type = %s' % parent_link.get('type')
+    print('Parent link href = %s' % parent_link.get('href'))
+    print('Parent link type = %s' % parent_link.get('type'))
     child_link = profile.get('childLink')
-    print 'Child link href  = %s' % child_link.get('href')
-    print 'Child link type  = %s' % child_link.get('type')
-    print
+    print('Child link href  = %s' % child_link.get('href'))
+    print('Child link type  = %s' % child_link.get('type'))
+    print()
 
   if not profiles_response.get('items'):
-    print 'No profiles found.\n'
+    print('No profiles found.\n')
 
 
 def print_goals(goals_response):
@@ -252,32 +253,32 @@
         collection
   """
 
-  print '------ Goals Collection -------'
+  print('------ Goals Collection -------')
   print_pagination_info(goals_response)
-  print
+  print()
 
   for goal in goals_response.get('items', []):
-    print 'Goal ID     = %s' % goal.get('id')
-    print 'Kind        = %s' % goal.get('kind')
-    print 'Self Link        = %s' % goal.get('selfLink')
+    print('Goal ID     = %s' % goal.get('id'))
+    print('Kind        = %s' % goal.get('kind'))
+    print('Self Link        = %s' % goal.get('selfLink'))
 
-    print 'Account ID               = %s' % goal.get('accountId')
-    print 'Web Property ID          = %s' % goal.get('webPropertyId')
-    print ('Internal Web Property ID = %s' %
-           goal.get('internalWebPropertyId'))
-    print 'Profile ID               = %s' % goal.get('profileId')
+    print('Account ID               = %s' % goal.get('accountId'))
+    print('Web Property ID          = %s' % goal.get('webPropertyId'))
+    print(('Internal Web Property ID = %s' %
+           goal.get('internalWebPropertyId')))
+    print('Profile ID               = %s' % goal.get('profileId'))
 
-    print 'Goal Name   = %s' % goal.get('name')
-    print 'Goal Value  = %s' % goal.get('value')
-    print 'Goal Active = %s' % goal.get('active')
-    print 'Goal Type   = %s' % goal.get('type')
+    print('Goal Name   = %s' % goal.get('name'))
+    print('Goal Value  = %s' % goal.get('value'))
+    print('Goal Active = %s' % goal.get('active'))
+    print('Goal Type   = %s' % goal.get('type'))
 
-    print 'Created     = %s' % goal.get('created')
-    print 'Updated     = %s' % goal.get('updated')
+    print('Created     = %s' % goal.get('created'))
+    print('Updated     = %s' % goal.get('updated'))
 
     parent_link = goal.get('parentLink')
-    print 'Parent link href = %s' % parent_link.get('href')
-    print 'Parent link type = %s' % parent_link.get('type')
+    print('Parent link href = %s' % parent_link.get('href'))
+    print('Parent link type = %s' % parent_link.get('type'))
 
     # Print the goal details depending on the type of goal.
     if goal.get('urlDestinationDetails'):
@@ -295,10 +296,10 @@
     elif goal.get('eventDetails'):
       print_event_goal_details(goal.get('eventDetails'))
 
-    print
+    print()
 
   if not goals_response.get('items'):
-    print 'No goals found.\n'
+    print('No goals found.\n')
 
 
 def print_url_destination_goal_details(goal_details):
@@ -308,20 +309,20 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Url Destination Goal -------'
-  print 'Goal URL            = %s' % goal_details.get('url')
-  print 'Case Sensitive      = %s' % goal_details.get('caseSensitive')
-  print 'Match Type          = %s' % goal_details.get('matchType')
-  print 'First Step Required = %s' % goal_details.get('firstStepRequired')
+  print('------ Url Destination Goal -------')
+  print('Goal URL            = %s' % goal_details.get('url'))
+  print('Case Sensitive      = %s' % goal_details.get('caseSensitive'))
+  print('Match Type          = %s' % goal_details.get('matchType'))
+  print('First Step Required = %s' % goal_details.get('firstStepRequired'))
 
-  print '------ Url Destination Goal Steps -------'
+  print('------ Url Destination Goal Steps -------')
   for goal_step in goal_details.get('steps', []):
-    print 'Step Number  = %s' % goal_step.get('number')
-    print 'Step Name    = %s' % goal_step.get('name')
-    print 'Step URL     = %s' % goal_step.get('url')
+    print('Step Number  = %s' % goal_step.get('number'))
+    print('Step Name    = %s' % goal_step.get('name'))
+    print('Step URL     = %s' % goal_step.get('url'))
 
   if not goal_details.get('steps'):
-    print 'No Steps Configured'
+    print('No Steps Configured')
 
 
 def print_visit_time_on_site_goal_details(goal_details):
@@ -331,9 +332,9 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Visit Time On Site Goal -------'
-  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
-  print 'comparison Value = %s' % goal_details.get('comparisonValue')
+  print('------ Visit Time On Site Goal -------')
+  print('Comparison Type  = %s' % goal_details.get('comparisonType'))
+  print('comparison Value = %s' % goal_details.get('comparisonValue'))
 
 
 def print_visit_num_pages_goal_details(goal_details):
@@ -343,9 +344,9 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Visit Num Pages Goal -------'
-  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
-  print 'comparison Value = %s' % goal_details.get('comparisonValue')
+  print('------ Visit Num Pages Goal -------')
+  print('Comparison Type  = %s' % goal_details.get('comparisonType'))
+  print('comparison Value = %s' % goal_details.get('comparisonValue'))
 
 
 def print_event_goal_details(goal_details):
@@ -355,19 +356,19 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Event Goal -------'
-  print 'Use Event Value  = %s' % goal_details.get('useEventValue')
+  print('------ Event Goal -------')
+  print('Use Event Value  = %s' % goal_details.get('useEventValue'))
 
   for event_condition in goal_details.get('eventConditions', []):
     event_type = event_condition.get('type')
-    print 'Type             = %s' % event_type
+    print('Type             = %s' % event_type)
 
     if event_type in ('CATEGORY', 'ACTION', 'LABEL'):
-      print 'Match Type       = %s' % event_condition.get('matchType')
-      print 'Expression       = %s' % event_condition.get('expression')
+      print('Match Type       = %s' % event_condition.get('matchType'))
+      print('Expression       = %s' % event_condition.get('expression'))
     else:  # VALUE type.
-      print 'Comparison Type  = %s' % event_condition.get('comparisonType')
-      print 'Comparison Value = %s' % event_condition.get('comparisonValue')
+      print('Comparison Type  = %s' % event_condition.get('comparisonType'))
+      print('Comparison Value = %s' % event_condition.get('comparisonValue'))
 
 
 def print_segments(segments_response):
@@ -378,19 +379,19 @@
         Segments collection.
   """
 
-  print '------ Segments Collection -------'
+  print('------ Segments Collection -------')
   print_pagination_info(segments_response)
-  print
+  print()
 
   for segment in segments_response.get('items', []):
-    print 'Segment ID = %s' % segment.get('id')
-    print 'Kind       = %s' % segment.get('kind')
-    print 'Self Link  = %s' % segment.get('selfLink')
-    print 'Name       = %s' % segment.get('name')
-    print 'Definition = %s' % segment.get('definition')
-    print 'Created    = %s' % segment.get('created')
-    print 'Updated    = %s' % segment.get('updated')
-    print
+    print('Segment ID = %s' % segment.get('id'))
+    print('Kind       = %s' % segment.get('kind'))
+    print('Self Link  = %s' % segment.get('selfLink'))
+    print('Name       = %s' % segment.get('name'))
+    print('Definition = %s' % segment.get('definition'))
+    print('Created    = %s' % segment.get('created'))
+    print('Updated    = %s' % segment.get('updated'))
+    print()
 
 
 def print_pagination_info(management_response):
@@ -401,15 +402,15 @@
         Management API.
   """
 
-  print 'Items per page = %s' % management_response.get('itemsPerPage')
-  print 'Total Results  = %s' % management_response.get('totalResults')
-  print 'Start Index    = %s' % management_response.get('startIndex')
+  print('Items per page = %s' % management_response.get('itemsPerPage'))
+  print('Total Results  = %s' % management_response.get('totalResults'))
+  print('Start Index    = %s' % management_response.get('startIndex'))
 
   # These only have values if other result pages exist.
   if management_response.get('previousLink'):
-    print 'Previous Link  = %s' % management_response.get('previousLink')
+    print('Previous Link  = %s' % management_response.get('previousLink'))
   if management_response.get('nextLink'):
-    print 'Next Link      = %s' % management_response.get('nextLink')
+    print('Next Link      = %s' % management_response.get('nextLink'))
 
 
 if __name__ == '__main__':
diff --git a/samples/audit/audit.py b/samples/audit/audit.py
index 13b9ccf..a039cc7 100644
--- a/samples/audit/audit.py
+++ b/samples/audit/audit.py
@@ -33,6 +33,7 @@
 
   $ python audit.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'rahulpaul@google.com (Rahul Paul)'
 
@@ -55,7 +56,7 @@
     activities = service.activities()
 
     # Retrieve the first two activities
-    print 'Retrieving the first 2 activities...'
+    print('Retrieving the first 2 activities...')
     activity_list = activities.list(
         applicationId='207535951991', customerId='C01rv1wm7', maxResults='2',
         actorEmail='admin@enterprise-audit-clientlib.com').execute()
@@ -66,7 +67,7 @@
     if match is not None:
       next_token = match.group(0)
 
-      print '\nRetrieving the next 2 activities...'
+      print('\nRetrieving the next 2 activities...')
       activity_list = activities.list(
           applicationId='207535951991', customerId='C01rv1wm7',
           maxResults='2', actorEmail='admin@enterprise-audit-clientlib.com',
diff --git a/samples/blogger/blogger.py b/samples/blogger/blogger.py
index b556c88..6af064c 100644
--- a/samples/blogger/blogger.py
+++ b/samples/blogger/blogger.py
@@ -31,6 +31,7 @@
 
   $ python blogger.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -54,24 +55,24 @@
 
       # Retrieve this user's profile information
       thisuser = users.get(userId='self').execute(http=http)
-      print 'This user\'s display name is: %s' % thisuser['displayName']
+      print('This user\'s display name is: %s' % thisuser['displayName'])
 
       # Retrieve the list of Blogs this user has write privileges on
       thisusersblogs = users.blogs().list(userId='self').execute()
       for blog in thisusersblogs['items']:
-        print 'The blog named \'%s\' is at: %s' % (blog['name'], blog['url'])
+        print('The blog named \'%s\' is at: %s' % (blog['name'], blog['url']))
 
       posts = service.posts()
 
       # List the posts for each blog this user has
       for blog in thisusersblogs['items']:
-        print 'The posts for %s:' % blog['name']
+        print('The posts for %s:' % blog['name'])
         request = posts.list(blogId=blog['id'])
         while request != None:
           posts_doc = request.execute(http=http)
           if 'items' in posts_doc and not (posts_doc['items'] is None):
             for post in posts_doc['items']:
-              print '  %s (%s)' % (post['title'], post['url'])
+              print('  %s (%s)' % (post['title'], post['url']))
           request = posts.list_next(request, posts_doc)
 
   except client.AccessTokenRefreshError:
diff --git a/samples/groupssettings/groupsettings.py b/samples/groupssettings/groupsettings.py
index 018a2a2..c403757 100644
--- a/samples/groupssettings/groupsettings.py
+++ b/samples/groupssettings/groupsettings.py
@@ -24,6 +24,7 @@
 
   $ python groupsettings.py --help
 """
+from __future__ import print_function
 
 __author__ = 'Shraddha Gupta <shraddhag@google.com>'
 
@@ -75,12 +76,12 @@
 
   # Retrieve the group properties
   g = group.get(groupUniqueId=groupId).execute()
-  print '\nGroup properties for group %s\n' % g['name']
+  print('\nGroup properties for group %s\n' % g['name'])
   pprint.pprint(g)
 
   # If dictionary is empty, return without updating the properties.
   if not settings.keys():
-    print '\nGive access parameters to update group access permissions\n'
+    print('\nGive access parameters to update group access permissions\n')
     return
 
   body = {}
@@ -94,7 +95,7 @@
   # Update the properties of group
   g1 = group.update(groupUniqueId=groupId, body=body).execute()
 
-  print '\nUpdated Access Permissions to the group\n'
+  print('\nUpdated Access Permissions to the group\n')
   pprint.pprint(g1)
 
 
@@ -126,7 +127,7 @@
   (options, args) = parser.parse_args()
 
   if options.groupId is None:
-    print 'Give the groupId for the group'
+    print('Give the groupId for the group')
     parser.print_help()
     return
 
@@ -134,7 +135,7 @@
 
   if (options.whoCanInvite or options.whoCanJoin or options.whoCanPostMessage
       or options.whoCanPostMessage or options.whoCanViewMembership) is None:
-    print 'No access parameters given in input to update access permissions'
+    print('No access parameters given in input to update access permissions')
     parser.print_help()
   else:
     settings = {'whoCanInvite': options.whoCanInvite,
@@ -152,7 +153,7 @@
   credentials = storage.get()
 
   if credentials is None or credentials.invalid:
-    print 'invalid credentials'
+    print('invalid credentials')
     # Save the credentials in storage to be used in subsequent runs.
     credentials = run(FLOW, storage)
 
diff --git a/samples/plus/plus.py b/samples/plus/plus.py
index ce3e712..cc7d146 100755
--- a/samples/plus/plus.py
+++ b/samples/plus/plus.py
@@ -18,6 +18,7 @@
 """Simple command-line sample for the Google+ API.
 
 Command-line application that retrieves the list of the user's posts."""
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -36,9 +37,9 @@
   try:
     person = service.people().get(userId='me').execute()
 
-    print 'Got your ID: %s' % person['displayName']
-    print
-    print '%-040s -> %s' % ('[Activitity ID]', '[Content]')
+    print('Got your ID: %s' % person['displayName'])
+    print()
+    print('%-040s -> %s' % ('[Activitity ID]', '[Content]'))
 
     # Don't execute the request until we reach the paging loop below.
     request = service.activities().list(
@@ -48,7 +49,7 @@
     while request is not None:
       activities_doc = request.execute()
       for item in activities_doc.get('items', []):
-        print '%-040s -> %s' % (item['id'], item['object']['content'][:30])
+        print('%-040s -> %s' % (item['id'], item['object']['content'][:30]))
 
       request = service.activities().list_next(request, activities_doc)
 
diff --git a/samples/prediction/prediction.py b/samples/prediction/prediction.py
index 50c1eba..b0092d9 100644
--- a/samples/prediction/prediction.py
+++ b/samples/prediction/prediction.py
@@ -33,6 +33,7 @@
 
   $ python prediction.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = ('jcgregorio@google.com (Joe Gregorio), '
               'marccohen@google.com (Marc Cohen)')
@@ -66,9 +67,9 @@
   '''Format and print header block sized to length of line'''
   header_str = '='
   header_line = header_str * len(line)
-  print '\n' + header_line
-  print line
-  print header_line
+  print('\n' + header_line)
+  print(line)
+  print(header_line)
 
 
 def main(argv):
@@ -89,14 +90,14 @@
     # List models.
     print_header('Fetching list of first ten models')
     result = papi.list(maxResults=10, project=flags.project_id).execute()
-    print 'List results:'
+    print('List results:')
     pprint.pprint(result)
 
     # Start training request on a data set.
     print_header('Submitting model training request')
     body = {'id': flags.model_id, 'storageDataLocation': flags.object_name}
     start = papi.insert(body=body, project=flags.project_id).execute()
-    print 'Training results:'
+    print('Training results:')
     pprint.pprint(start)
 
     # Wait for the training to complete.
@@ -104,7 +105,7 @@
     while True:
       status = papi.get(id=flags.model_id, project=flags.project_id).execute()
       state = status['trainingStatus']
-      print 'Training state: ' + state
+      print('Training state: ' + state)
       if state == 'DONE':
         break
       elif state == 'RUNNING':
@@ -114,14 +115,14 @@
         raise Exception('Training Error: ' + state)
 
       # Job has completed.
-      print 'Training completed:'
+      print('Training completed:')
       pprint.pprint(status)
       break
 
     # Describe model.
     print_header('Fetching model description')
     result = papi.analyze(id=flags.model_id, project=flags.project_id).execute()
-    print 'Analyze results:'
+    print('Analyze results:')
     pprint.pprint(result)
 
     # Make some predictions using the newly trained model.
@@ -130,13 +131,13 @@
       body = {'input': {'csvInstance': [sample_text]}}
       result = papi.predict(
         body=body, id=flags.model_id, project=flags.project_id).execute()
-      print 'Prediction results for "%s"...' % sample_text
+      print('Prediction results for "%s"...' % sample_text)
       pprint.pprint(result)
 
     # Delete model.
     print_header('Deleting model')
     result = papi.delete(id=flags.model_id, project=flags.project_id).execute()
-    print 'Model deleted.'
+    print('Model deleted.')
 
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run '
diff --git a/samples/searchforshopping/histograms.py b/samples/searchforshopping/histograms.py
index 6a78418..c5ecac7 100644
--- a/samples/searchforshopping/histograms.py
+++ b/samples/searchforshopping/histograms.py
@@ -4,6 +4,7 @@
 # Copyright 2014 Google Inc. All Rights Reserved.
 
 """Query with ranked results against the shopping search API"""
+from __future__ import print_function
 
 from googleapiclient.discovery import build
 
@@ -37,7 +38,7 @@
   # Pick the first and only facet for this query
   facet = response['facets'][0]
 
-  print '\n\tHistogram for "%s":\n' % facet['property']
+  print('\n\tHistogram for "%s":\n' % facet['property'])
 
   labels = []
   values = []
@@ -49,9 +50,9 @@
   weighting = 50.0 / max(values)
 
   for label, value in zip(labels, values):
-    print label, '#' * int(weighting * value), '(%s)' % value
+    print(label, '#' * int(weighting * value), '(%s)' % value)
 
-  print
+  print()
 
 
 if __name__ == '__main__':
diff --git a/samples/searchforshopping/main.py b/samples/searchforshopping/main.py
index 93b58c3..1f6ca67 100644
--- a/samples/searchforshopping/main.py
+++ b/samples/searchforshopping/main.py
@@ -8,6 +8,7 @@
 
 Command-line application that does a search for products.
 '''
+from __future__ import print_function
 
 __author__ = 'aherrman@google.com (Andy Herrman)'
 
@@ -22,7 +23,7 @@
             developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')
 
   # Search over all public offers:
-  print 'Searching all public offers.'
+  print('Searching all public offers.')
   res = p.products().list(
       country='US',
       source='public',
@@ -31,8 +32,8 @@
   print_items(res['items'])
 
   # Search over a specific merchant's offers:
-  print
-  print 'Searching Google Store.'
+  print()
+  print('Searching Google Store.')
   res = p.products().list(
       country='US',
       source='public',
@@ -45,8 +46,8 @@
   googleId = res['items'][0]['product']['googleId']
 
   # Get data for the single public offer:
-  print
-  print 'Getting data for offer %s' % googleId
+  print()
+  print('Getting data for offer %s' % googleId)
   res = p.products().get(
       source='public',
       accountId='5968952',
@@ -59,9 +60,9 @@
 def print_item(item):
   """Displays a single item: title, merchant, link."""
   product = item['product']
-  print '- %s [%s] (%s)' % (product['title'],
+  print('- %s [%s] (%s)' % (product['title'],
                           product['author']['name'],
-                          product['link'])
+                          product['link']))
 
 
 def print_items(items):
diff --git a/samples/translate/main.py b/samples/translate/main.py
index 72bed44..d79fca2 100644
--- a/samples/translate/main.py
+++ b/samples/translate/main.py
@@ -19,6 +19,7 @@
 
 Command-line application that translates some text.
 """
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -32,11 +33,11 @@
   # to get an API key for your own application.
   service = build('translate', 'v2',
             developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')
-  print service.translations().list(
+  print(service.translations().list(
       source='en',
       target='fr',
       q=['flower', 'car']
-    ).execute()
+    ).execute())
 
 if __name__ == '__main__':
   main()