In a message of Fri, 25 Sep 2015 11:50:10 -0700, Cody Cox writes: >Awesome guys! Thank you for helping me understand this material. Parameters >and Arguments are tricky. Looks like its mainly a game of connect the dots >with variables. lol. > >When you return a variable, it needs somewhere to go, and that's why it goes >to the next call into the argument area if I need to use that piece of >information for a calculation, right?
No. >so if I understand correctly, when I create a function and return a variable, >that variable needs to go in the argument when it is called? or into another >functions argument for calculation? >I apologize if I sound dumb. lol. I know this must be very elementary. No. >Yes this is a homework assignment, but I was trying to figure out how >parameters and arguments work, not get an answer, this was a huge help. I will >keep looking over your details over and over to make sure I understand. > >Appreciate all the help and understanding! :) > >-Cody You have a very basic conceptual misunderstanding. def main(): count = 0 animals = 'tigers' change_my_value_to_50_frogs(count, animals) print ("I fought", count, animals) def change_my_value_to_50_frogs(count, animals): count = 50 animals = 'frogs' main() ------------- I am pretty sure you expect this code to print 'I fought 50 frogs'. It doesn't. It prints 'I fought 0 tigers'. You have the idea that when you pass parameters to a function, by name, you want the values of those parameters to get changed by the function. (and I sort of cheated by calling the function change_my_value). This is not what happens. You cannot change values this way. so we rewrite change_my_value_to_50_frogs def fifty_frogs(): count = 50 animals = 'frogs' return count, animals Now fifty_frogs is going to happily return the changed values you wanted. But you have to set up your main program to receive those changed values you wanted. so we rewrite main as: def main(): count = 0 animals = 'tigers' count, animals = fifty_frogs() print ("I fought", count, animals) now main() says 'I fought 50 frogs'. NOTE: there is nothing, nothing, nothing special about the fact that in fifty_frogs I used the names 'count' and 'animals'. Let us try a new version of fifty_frogs() def fifty_frogs(): experience = 50 monsters = 'frogs' return experience, monsters All the same, just different words. Does that matter? No. You are going to return whatever is called 'experience' and whatever is called 'monsters' and assign them to 'count' and 'monsters'. Whether you name these things the same thing, or different things makes no difference. Does this make sense? If not, come back with more questions. And play around with the python interactive interpreter, or idle -- that is what it is for. neat little experiements like this. :) Laura -- https://mail.python.org/mailman/listinfo/python-list