Reputation: 163
Im trying to create the following such that it reassigns the variable as I go.
def train(old_strength, old_energy):
train = input("What would you like to do now?\n'strentgh' or 'rest'\n>")
if train == 'strength':
strength = old_strength+10
energy = old_energy-10
if energy <= 0:
print ("You do not have enough energy to do this.")
else:
pass
print ("You have gained 10 strength, and now have %d strength and %d energy left" %(strength, energy))
old_strength = strength)
old_energy = energy)
train(old_strength, old_energy)
Im trying to get it so that when it goes back to the 'train' input, it will then use the new strength and energy values for the next time. At the moment I get the error
Traceback (most recent call last):
File "settler.py", line 127, in <modul
train(10, 50)
File "settler.py", line 37, in train
train(old_strength, old_energy)
TypeError: 'str' object is not callable
How do I fix this? Many Thanks in advance
Upvotes: 0
Views: 1581
Reputation: 881
You reasigned def train(....)
with str
by writing train = input(...)
.
That's why you get TypeError: 'str' object is not callable
.
Use other variable for capturing input
.
EDIT:
And in your second if
statement (energy <= 0
) maybe it's worth to do something more than just print notification? Like return
? or at leas include last 4 lines into the else
block. But it's just a free thought, maybe you're just getting started with this.
Upvotes: 4