bibi midi wrote:


On Sun, Nov 8, 2009 at 6:20 AM, bibi midi <bibsmen...@gmail.com <mailto:bibsmen...@gmail..com>> wrote:


    Thank you all for the helpful insights. I will keep in mind the naming
    rules in Python, so as not to have it in collision with Python's
    builtins.

    The mention to tidy up e.g. "compartmentalize" code is also noted.. I
    agree definitely.

    I'm reworking my code and will post back.


For reason unknown to me the script dont repeat itself
when asked if to play again or not no matter what juggling of the

while/if conditionals i do, the result is the same. What am i missing?

You don't check for whether the answer is 'no'. A single if-statement branches the code into TWO line of execution, you wanted to have THREE line of execution (i.e. a 'yes' part, a 'no' part, and an invalid answer part).

Also, I'm not sure I'm right in the assignment ans = choose_Cave.
I code it like so because the assignment ans = choose_Cave()

In:
def choose_Cave():
    global choose
    ...

you declared that `choose` is a global variable.

You should remove this as it adds an unnecessary global variable. Even if you wish to retain it as a global, you probably should choose a better name (e.g. current_cave) since the name `choose` has no meaning outside choose_Cave function.

Also, at the end:

def choose_Cave():
    ....
    return choose


you returned a global variable. Although in some cases it may be necessary or wanted to return a global variable, you most likely don't need it since you can always access a global variable from anywhere in a script. You should make `choose` a local and assign the return value of choose_Cave() to another name (e.g. current_cave).

the prompt 'Choose a cave' is repeated when the script is run.
Dont want this. I tested this when run in ipython.

I dont know if there is a way to just retrieve the return value to a
variable AND not run the whole function i mean in the case of

ans = choose_Cave(). Would love to hear your expert insights by return.

A function can be run multiple times, and its return value may be different every time it is run (in fact if the return value is always the same there is no point in using function). "accessing the return value and not run the function" doesn't make sense as it is unclear what you're wanting to access. What you wanted is to access the latest return value of choose_Cave, which means you want to store the return value of choose_Cave in a variable (i.e. current_cave = choose_Cave() or ans = choose_Cave())

An alternative would be to store the latest return value in a global variable, but I strongly recommend against this as global variable is harmful.

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to