2016-04-03 7 views
10

मैं समस्या है जब मैं जब मैं इस क्रम में एक टपल या सूची के रूप में की तारीख रखने का प्रयास समस्या शो एक चर के लिए मूल्य रखने का प्रयाससिंटैक्स अमान्य टोकन

वर्ष/माह/दिन

>>> a = (2016,04,03)     # i try to put date now to variable 'a' as tuple 
SyntaxError: invalid token 
>>> a = [2016,04,03]     ## i try to put date now to variable 'a' as list 
SyntaxError: invalid token 

यह क्यों खुश है?

इसे कैसे ठीक करें?

पायथन में टोकन क्या है?

+0

'04' का पाइथन का कोई मतलब नहीं है, शून्य के साथ' 4' और '3' के साथ प्रयास करें! – Arman

+1

या यह काम करता है लेकिन यह क्यों काम करता है जब शून्य – robert

+3

'04' का अर्थ पाइथन के लिए होता है, यह अजगर 2.x – ritesht93

उत्तर

1

समस्या 0 से पहले 0 है यदि आप उस तरह के इंफोस को स्टोर करना चाहते हैं, तो स्ट्रिंग का उपयोग करने का प्रयास करें।

a = (2016,04,03) --> Error 
a = (2016,4,3) --> No Error 
a = ("2016","04","03") --> No Error 
a = "2016-04-03" --> you could retrieve Year, Month and Day by splitting this string 

पायथन 2.x 04 में एक ऑक्टल संख्या के रूप में व्याख्या की गई है। अजगर 3 ऑक्टल अंक में प्रपत्र 0o4 में लिखे गए हैं के रूप में यहाँ लिखा: http://docs.python.org/3.0/whatsnew/3.0.html#integers

+1

हैं आपको समझा जाना चाहिए * क्यों * त्रुटि आ रही है। यह ओपी द्वारा प्रश्नों में से एक है। यह वास्तव में उन्हें बहुत मदद नहीं करता है। – idjaw

+0

या मैं knwo कि जब मैं 04 और 03 – robert

+0

@zixrobert का उपयोग करते हैं तो मेरी त्रुटि क्यों दें अन्य जवाब पढ़ें। यह वास्तव में इसे समझाता है। – idjaw

6

04 एक मान्य पूर्णांक अजगर 2. x में शाब्दिक है इसे आधार -8 (ऑक्टल) संख्या के रूप में व्याख्या किया जाता है। 09 एक अवैध टोकन भी होगा, क्योंकि 9 वैध ऑक्टल अंक नहीं है।

पायथन 3 में, ऑक्टल अक्षरों का रूप बदल गया। अकेले एक अग्रणी शून्य अब वैध नहीं है; आपको आधार को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है। उदाहरण के लिए, 0o1210 के बराबर है।

अपने मामले में, शायद आप केवल 0: a = (2016, 4, 3) को छोड़ना चाहते हैं। स्पष्ट रूप से उन्हें स्टोर करने की कोशिश करने के बजाए, आवश्यक शून्य होने पर आपके शून्य के स्ट्रिंग प्रस्तुति में अग्रणी शून्य जोड़े जा सकते हैं।

+1

woooow धन्यवाद – robert

+1

ओकी मैं इसे करूँगा – robert

23

पायथन 3 में, संख्याओं पर अग्रणी शून्यों की अनुमति नहीं है। उदा:

05 

आदि की अनुमति नहीं है, लेकिन 5 और 123 बजाय के रूप में लिखा जाना चाहिए।

अजगर 2 में, हालांकि, आगे शून्य का प्रतीक है कि नंबर एक ऑक्टल संख्या (आठ आधार) है, तो 04 या 034 और अष्टाधारी, क्रमशः में 3 का मतलब होगा, लेकिन 08 अमान्य होगा के रूप में यह है वैध ऑक्टल संख्या नहीं है।

अजगर 3 में, octals के लिए वाक्य रचना इस के लिए बदल दिया:

का सवाल है

0o10 
0o4 

(। जैसे द्विआधारी हेक्सादशमलव 0b या 0x उपसर्गों का उपयोग कर के रूप में के रूप में अच्छी तरह से की अनुमति के अन्य ठिकानों) अपने अन्य सवाल, पायथन में एक टोकन जिस तरह से पाइथन दुभाषिया आपके कोड को टुकड़ों में विभाजित करता है, ताकि वह इसे समझ सके (here देखें)। यहां, जब टोकनेज़र आपके कोड को विभाजित करने का प्रयास करता है, तो वहां शून्य को देखने की उम्मीद नहीं होती है और इसलिए कोई त्रुटि फेंकता है।

मैं सुझाव दूंगा (इसी तरह अन्य उत्तरों के लिए) कि आप अग्रणी शून्य ((2016,4,3)) छोड़ते हैं या स्ट्रिंग्स (("2016","04","03")) का उपयोग करके इनका प्रतिनिधित्व करते हैं।

0

जब हम मॉड्यूल तो कभी कभी त्रुटि शो सिंटैक्स अमान्य टोकन स्थापित तो आदेश के बाद का उपयोग

स्थापित पिप --upgrade रंज

उसके बाद फिर दो आदेशों

का उपयोग कर मॉड्यूल स्थापित

easy_install PACKAGE_NAME

पीआईपी पैकेज पैकेज_नाम

संबंधित मुद्दे