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
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}'
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
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
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}'
(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.
Your welcome.
Please set the thread as solved if you are happy that your question has been resolved.