पायथन 3.0 दिसंबर 2008 में जारी किया गया था। इसे पहले के संस्करण में कुछ खामियों को सुधारने के लिए डिज़ाइन किया गया था। पायथन 3 का मार्गदर्शक सिद्धांत था: "पुराने तरीकों को हटाकर फीचर डुप्लीकेशन को कम करें"। पायथन 3.0 बैकवर्ड कम्पैटिबिलिटी प्रदान नहीं करता। इसका मतलब है कि संस्करण 2.x सिंटैक्स का उपयोग करके लिखा गया पायथन प्रोग्राम पायथन 3.x इंटरप्रेटर के तहत एक्जीक्यूट नहीं होता। वर्जन 2.7 पायथन 2.x सीरीज़ में अंतिम प्रमुख रिलीज़ है।
हालांकि इन दो संस्करणों के उपयोग में कई अंतर हैं, सबसे स्पष्ट नीचे दिए गए हैं:
print पायथन 2.7 में एक कीवर्ड है लेकिन पायथन 3.x में बिल्ट-इन फ़ंक्शन के रूप में शामिल किया गया है। नतीजतन, पायथन 3 कोड में इसका उपयोग करते समय पैरेंथेसिस अनिवार्य हैं।
print "Hello World" # पायथन 2 में स्वीकार्य लेकिन पायथन 3 में नहीं
print("Hello World") # पायथन 2 और पायथन 3 दोनों में स्वीकार्य
raw_input() - पायथन 2.7 से फ़ंक्शन डिप्रिकेटेड हो गया है। input() फ़ंक्शन प्राप्त डेटा को केवल स्ट्रिंग के रूप में मानता है।
इंटीजर डिवीज़न - कार्यक्षमता पायथन 3 में बदल गई है। पायथन 2.x में, 5/2 का परिणाम 2 होता है, लेकिन पायथन 3.x में, 5/2 का परिणाम 2.5 होता है।
यूनिकोड - पायथन 3.x में स्ट्रिंग डिफ़ॉल्ट रूप से यूनिकोड होती है। पायथन 2.x में, स्ट्रिंग को 'u' प्रीफिक्स करके स्पष्ट रूप से यूनिकोड के रूप में परिभाषित करना होता है (उदाहरण: u'hello')।
लॉन्ग इंटीजर - पायथन 3.x में, इंटीजर ऑब्जेक्ट्स डिफ़ॉल्ट रूप से लॉन्ग होते हैं। पायथन 2.x में, एक इंटीजर को L से पोस्टफिक्स करना होता है (उदाहरण: 100L)।