Python Forum
Output issue - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Output issue (/thread-20149.html)



Output issue - twinpiques - Jul-29-2019

So, I'm trying a simple "else if" and I am getting the correct output, however, it's also outputting "None".
What am I doing wrong here?

Thank you in advance.

def intro( name, age):
    if name != "" and age > 0:
        print (name, "was born in",2018 - age)
    elif (name == "" or age < 0):
        return ("invalid input")
    else:
        pass

print(intro("Brady",42))
Output:
Output:
Brady was born in 1976 None



RE: Output issue - Yoriz - Jul-29-2019

The default return value from a function is None, when the if is true it does not return anything so it defaults to None
Instead of printing you can return the string and then it would print the returned string
print (name, "was born in",2018 - age)
change to
return f'{name}, was born in,{2018-age}'



RE: Output issue - cvsae - Jul-29-2019

change the line 3 from print to return, you get the None because name != "" and age > 0 so the print in line 9 need something to prints and you in the line 3 don't return something


RE: Output issue - twinpiques - Jul-29-2019

Thank you for the help - much appreciated.

So, I used "return" instead of "print".

def intro( name, age):
    if name != "" and age > 0:
        #print (name, "was born in",2018 - age)
        return f'{name}, was born in,{2018-age}'
    elif (name == "" or age < 0):
        return ("invalid input")
    else:
        pass

print(intro("Brady",42))
The "None" was resolved, however, I now get output with commas instead of spaces:

Output:
Brady, was born in,1976
I want to get:

Output:
Brady was born in 1976



RE: Output issue - Yoriz - Jul-29-2019

That is because you are returning a tuple instead of a string or you are using my f string from above which has commas in, just remove the commas.
return f'{name} was born in {2018-age}'



RE: Output issue - twinpiques - Jul-29-2019

(Jul-29-2019, 11:16 PM)Yoriz Wrote: That is because you are returning a tuple instead of a string or you are using my f string from above which has commas in, just remove the commas.
return f'{name} was born in {2018-age}'


Thank you for the help with the code and proper tag usage. :)
Much appreciated.


RE: Output issue - Yoriz - Jul-29-2019

Your welcome.
Please set the thread as solved if you are happy that your question has been resolved.