2010-10-17 10 views
12

यह मेरा दिन 1 पाइथन सीखने का है। तो यह आप में से कई के लिए एक नोब सवाल है। जब मैं यहएक कमांड लाइन तर्क मुद्रित करते समय अतिरिक्त आउटपुट

$ ./Python-1.py alice 
hello alice!!!! 
None 

चलाने अब

#!/usr/bin/env python 

import sys 

def hello(name): 
    name = name + '!!!!' 
    print 'hello', name 

def main(): 
    print hello(sys.argv[1]) 


if __name__ == '__main__': 
    main() 

, मुझे समझने में कठिनाई, जहां इस "None" से आया है: निम्नलिखित कोड देखते हैं?

उत्तर

21

अपने कोड में print बयान की संख्या की गणना करें। आप देखेंगे कि hello फ़ंक्शन, औरhello फ़ंक्शन के परिणाम को प्रिंट करने में आप "hello alice!!!" प्रिंट कर रहे हैं। चूंकि hello फ़ंक्शन कोई मान नहीं देता है (जो आप return कथन के साथ करेंगे), यह ऑब्जेक्ट None ऑब्जेक्ट को वापस कर देता है। main फ़ंक्शन के अंदर आपका print फ़ंक्शन None प्रिंटिंग समाप्त होता है।

+0

सुपर त्वरित प्रतिक्रिया और विस्तृत स्पष्टीकरण के लिए बहुत बहुत धन्यवाद। मैंने समझा है कि आपने क्या कहा। – CuriousMind

4
बदलें

अपने

def main(): 
    print hello(sys.argv[1]) 

def main(): 
    hello(sys.argv[1]) 

को आप स्पष्ट रूप से अपने हैलो विधि से वापसी मान प्रिंट कर रहे हैं। चूंकि आपके पास निर्दिष्ट रिटर्न वैल्यू नहीं है, इसलिए यह None देता है जो आप आउटपुट में देखते हैं।

+0

आपको बहुत बहुत धन्यवाद! – CuriousMind

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