Why does Python Print return None - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Why does Python Print return None (/thread-2464.html) |
Why does Python Print return None - Steven - Mar-19-2017 Hey all. I'm studying for a final. Wondering why using print(print('hello') return Hello NoneCan't wrap my head around it. Thanks everyone. -Steven RE: Why does Python Print return None - ichabod801 - Mar-19-2017 First of all, your code doesn't do that. You code has a syntax error in it, and even if it didn't you can't print a lower case hello and get an upper case Hello printed. Why does it return None? It has to return something, because every Python function does. Now think about this situation: >>> print('Hello world!') Hello world!That's what happens when print returns None, because None does not have a repr. So it prints the string to print, and then prints the repr of the return value, which is nothing. Say print returned the string it printed. Then you would get this: >>> print('Hello world!') Hello world! 'Hello world!'It would display 'Hello world!' twice, once without quotes, and once with quotes (the repr of the string). That would be silly. And that's why print returns None. RE: Why does Python Print return None - Steven - Mar-19-2017 Well, I mean that if I type print(print("hello")) at the python command line, it literally returns hello and then on the next line, slightly indented, None. RE: Why does Python Print return None - metulburr - Mar-19-2017 Quote:>>> print(print("hello"))All functions return None if not returning anything else. And in python3.x print is a function. The inner hello function runs, and prints hello. Then returns...which returns None. So the outer print becomes Quote:print(None)Which that print outputs the return value of None. RE: Why does Python Print return None - Steven - Mar-19-2017 Thank you! RE: Why does Python Print return None - Larz60+ - Mar-19-2017 first of all, your code: print(print('hello') returnis missing a closing parentheses and should be print(print('hello'))There is no need for a return statement. and it shouldn't be included (but it won't hurt the code) RE: Why does Python Print return None - nilamo - Mar-19-2017 What should it return? The text that was being printed to screen/file/network? A success/failure code? It returns None, because it doesn't really make sense for it to return anything else. It does a thing, it doesn't change a thing. |