2010-09-03 10 views
6

मैं अब अजगर जानने हूँ, और आज के रूप में निष्पादित मॉड्यूल, मैं http://docs.python.org/release/2.5.4/tut/node8.htmlलिपियों

6.1.1 में एक समस्या मुलाकात की स्क्रिप्ट मॉड्यूल निष्पादित

जब आप के साथ एक पायथन मॉड्यूल को चलाने

python fibo.py <arguments>

मॉड्यूल में कोड निष्पादित किया जाएगा , जैसे कि आपने इसे आयात किया है, लेकिन __name__ के साथ "__main__" पर सेट किया गया है। इसका मतलब है कि के अंत में इस कोड को जोड़कर अपने मॉड्यूल:

if __name__ == "__main__": 
    import sys` 
    fib(int(sys.argv[1])) 

आप फ़ाइल एक स्क्रिप्ट के रूप में प्रयोग करने योग्य रूप में अच्छी तरह के रूप में एक आयात योग्य मॉड्यूल बना सकते हैं, क्योंकि कोड कि पार्स कमांड लाइन केवल चलाता है अगर मॉड्यूल "मुख्य" फ़ाइल के रूप में क्रियान्वित किया जाता है:

$ python fibo.py 50 1 1 2 3 5 8 13 21 34

लेकिन जब मैं खोल में ऐसा करते हैं, मैं

File "<input>", line 1 
python fibo.py 222 
SyntaxError: invalid syntax 

कैसे सही ढंग से स्क्रिप्ट को निष्पादित करने के लिए मिल गया?

fibo.py

def fib(n): 
    a,b=0,1 
    while b<n: 
     print b, 
     a,b = b,a+b 


def fib2(n): 
    result=[] 
    a,b=0,1 
    while b<n: 
     result.append(b) 
     a,b=b,a+b 
    return result 

if __name__ =="__main__": 
    import sys 
    fib(int(sys.argv[1])) 
+1

"अजगर 222 fibo.py" यह सही है। हमें अपनी स्क्रिप्ट दिखाएं, यह सीम पहली पंक्ति में वाक्यविन्यास के साथ एक समस्या है। –

उत्तर

13

वास्तव में क्या आप खोल में क्या किया है? आप क्या कोड चला रहे हैं?

ऐसा लगता है कि आप अपनी स्क्रिप्ट में एक गलती की है - शायद पेट के लापता या खरोज गलत हो रही। आपके द्वारा चलाए जा रहे फ़ाइल को देखे बिना यह कहना असंभव है।

संपादित करें:

मैं पता लगा है क्या गलत हो रहा है। आप पायथन खोल में python fibo.py 222 चलाने की कोशिश कर रहे हैं। मैं एक ही त्रुटि मिलती है जब मैं ऐसा:

[138] % python 
Python 2.6.1 (r261:67515, Apr 9 2009, 17:53:24) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> python fibo.py 222 
    File "<stdin>", line 1 
    python fibo.py 222 
      ^
SyntaxError: invalid syntax 
>>> 

आप ऑपरेटिंग सिस्टम के कमांड लाइन शीघ्र से नहीं से अजगर के इंटरैक्टिव खोल के भीतर इसे चलाने के लिए की जरूरत है।

पहले अजगर होम निर्देशिका को बदलने के लिए सुनिश्चित करें। उदाहरण के लिए, ऑपरेटिंग सिस्टम की कमांड लाइन से, टाइप करें: सीडी सी: \ पायथन 33 \ - आपके पायथन संस्करण के आधार पर। मेरा 3.3 है। और फिर टाइप करें: अजगर 200 fibo.py (उदाहरण के लिए)

+0

धन्यवाद देव जिसने वास्तव में मदद की लेकिन क्या मैं इंटरैक्टिव खोल में fibo.fib (123) और fibo.fib2 (345) के रूप में कॉल कर सकता हूं –

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