+ 1

My code for project 8 python for beginners, why does it output 'none' when I run it

def search(): if word in text: print("Word found") else: print("Word not found") text = input() word = input() print(search()) https://code.sololearn.com/cr7rW0UXIRCt/?ref=app https://code.sololearn.com/cr7rW0UXIRCt/?ref=app

12th Feb 2022, 2:50 AM
Ackumey Joseph
9 odpowiedzi
+ 5
Ackumey Joseph Finally, your 3rd problem If you define a print statement inside a def, then it will print out a result WHEN the def is called. So def test(): print("tested") will create the following results when called in the following manner test() -> "tested" print(tested()) -> "tested" -> none
12th Feb 2022, 9:53 AM
Rik Wittkopp
Rik Wittkopp - avatar
+ 2
You forgot to provide parameters/arguments.
12th Feb 2022, 3:02 AM
Simon Sauter
Simon Sauter - avatar
+ 2
Ackumey Joseph There are a few problems with your code. The biggest problem is that your def is isolated fron your inputs as you have not provided parameters for you def to work on. As noted by Simon Sauter Another problem is that you must define the words in the text, so your word will match. Otherwise text = "this test" word = "is will return "word found" Take note of the .split() method which will break a string into a list. def search(item, phrase): if item in phrase.split(" "): print("Word found") else: print("Word not found") text = input() word = input() search(word,text)
12th Feb 2022, 9:46 AM
Rik Wittkopp
Rik Wittkopp - avatar
+ 1
Remove the print inside the def if statements with return and the quote you want
12th Feb 2022, 3:29 AM
Ion Kare
Ion Kare - avatar
+ 1
When you execute a function it will always return a value. It either returns the the value you tell it to using the "return" keyword or (no return is used) "null" by default. Now, when you call that function somewhere it will be evaluated and its returned value might be used, in your case you are trying to print it out to the console. as you haven't used "return", null is returned instead. You can fix your code in 2 ways, either return the string directly instead of printing it inside the function, or just print it inside the function and delete the print() on the outside.
12th Feb 2022, 11:34 PM
MedG
MedG - avatar
0
Help me
12th Feb 2022, 2:51 AM
Ackumey Joseph
0
def search(word, text): if word in text: print("Word found") else: print("Word not found") text = input() word = input() search(word=word, text=text) “”” You have to pass the variables word and text into the search function as parameters. The variables word and text are compared within the function search. But for the function to use them you must pass them to it. Your code returns none because nothing is passed to the function and nothing is returned. “””
13th Feb 2022, 7:48 AM
Matthew Green
Matthew Green - avatar
0
You can get rid of it py a filter() function of python. print(tested().filter('None')) or use return if you are printing the function. Hope you understood
13th Feb 2022, 11:32 AM
Saad Khan
Saad Khan - avatar