Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AttributeError: 'NoneType' object has no attribute 'replace'

Tags:

python

right sorry that I'm not all good at python but my problem is that i need to replace a character
here is the thing i am trying to change all i need to change is # to an A for all of the lines

def puzzle():
print ("#+/084&;")
print ("#3*#%#+")
print ("8%203:")
print (",1$&")
print ("!-*%")
print (".#7&33&")
print ("#*#71%")
print ("&-&641'2")
print ("#))85")
print ("9&330*;")

so here is what i attempted to do(it was in another py file)

from original_puzzle import puzzle

puzzle()

result = puzzle()

question = input("first letter ")

for letter in question:
    if letter == "a":
        result = result.replace("#","A")
        print (result)

here is what it gives me

 Traceback (most recent call last):
  File "N:\AQA 4512;1-practical programming\code\game.py", line 36, in <module>
    result = result.replace("#","A")
AttributeError: 'NoneType' object has no attribute 'replace'

it would help if somebody told me a different way around it aswell thanks for the help and sorry again that i'm bad at python

like image 887
user3595866 Avatar asked Oct 01 '22 13:10

user3595866


1 Answers

if you don't explicitly return something from a python function, python returns None.

>>> def puzzle():
...   print 'hi'
... 
>>>
>>> puzzle() is None
hi
True
>>> def puzzle():
...   print 'hi'
...   return None
... 
>>> puzzle() is None
hi
True
>>> def puzzle():
...   return 'hi'
... 
>>> puzzle()        
'hi'
>>> puzzle() is None
False
>>> 
like image 146
Mike McKerns Avatar answered Oct 05 '22 23:10

Mike McKerns