Home > Enterprise >  my function prints out none after it prints out: what I want but then print none, I do not want it t
my function prints out none after it prints out: what I want but then print none, I do not want it t

Time:01-12

I am making a function with user input but it prints out none after it prints out: Fizz or Buzz or Fizz Buzz or Not Fizz or Buzz, I do not want it to print out none after that. How can I do this?

def fizz_buzz(x):
    if x == "3":
        print ("Fizz")
    elif x == "5":
        print ("Buzz")
    elif x == "15":
         print ("Fizz BUZZ")
    else:
        print ("Not Fizz or Buzz, try again")
        x = input(int("Input a random number:"))
        print (fizz_buzz(x))
 
x = input("Input a random number:")
print (fizz_buzz(x))

CodePudding user response:

Here is what you are doing: you are saying print the function and in your function you have print so that is why it prints none. There are two changes you need to make noted in hashtag (#)

def fizz_buzz(x):
    if x == "3":
        print ("Fizz")
    elif x == "5":
        print ("Buzz")
    elif x == "15":
         print ("Fizz BUZZ")
    else:
        print ("Not Fizz or Buzz, try again")
        x = input(int("Input a random number:"))
        return(fizz_buzz(x)) **### delete print and replace with return**
 
x = input("Input a random number:")
(fizz_buzz(x)) **### delete print**

CodePudding user response:

Whenever you are using Print inside a function, it'll generate a None object while printing it, re-write the function as below.

def fizz_buzz(x):
    if x == "3":
        return "Fizz"
    elif x == "5":
        return "Buzz"
    elif x == "15":
         return "Fizz BUZZ"
    else:
        return "Not Fizz or Buzz, try again"
 
x = input("Input a random number:")
print (fizz_buzz(x))

Output:

Input a random number:45
Not Fizz or Buzz, try again
  •  Tags:  
  • Related