python - Unsupported operand type(s) for +: 'NoneType' and 'str' and 'int' -
code:
string1 = " right" g = lambda x: x ** 2  print(g(8)) + str(string1) error:
traceback (most recent call last):   file "c:/users/computer/desktop/testing.py", line 3, in <module>     print(g(8)) + str(string1) typeerror: unsupported operand type(s) +: 'nonetype' , 'str' code2: tried adding too:
g = lambda x: x ** 2  + " should right!" print(g(8)) error:
traceback (most recent call last):   file "c:/users/computer/desktop/testing.py", line 2, in <module>     print(g(8))   file "c:/users/computer/desktop/testing.py", line 1, in <lambda>     g = lambda x: x ** 2  + " should right!" typeerror: unsupported operand type(s) +: 'int' , 'str' i tried int , str still had problems?
also when fixing, please explain how fixed code works :) dont want copy fixed line
you adding result of print() , str(), print() returns none.
you wanted print result of adding g(8) , str() instead, you'll have turn return value of g(8) string too:
print(str(g(8)) + str(string1)) note placement of closing ) print() function!
the second str() call not needed @ all, because string1 string:
print(str(g(8)) + string1) you can leave print() passing in values separate arguments instead:
string1 = "is right" print(g(8), string1) i removed leading space string1 because print() will, default, insert spaces between arguments being printed.
demo:
>>> string1 = "is right" >>> g = lambda x: x ** 2  >>> print(g(8), string1) 64 right your second attempt tried move string concatenation g lambda; in case you'd have turn result of x ** 2 string first:
g = lambda x: str(x ** 2)  + " should right!" 
Comments
Post a Comment