On 2017-11-30, Michael Dowell <michael.dowell...@gmail.com> wrote: > Hello, I'm trying to code a magic 8-ball program and it needs > to include a counter for the number of questions asked. I'm > having a hard time implementing a count, and need a little > help. I had tried to implement it in the main() function, but > that (naturally) led it to only counting '1' for each question, > for each question asked. Is there a way to count how many times > a give line of code is executed? For instance, every time the > oracle() function is run, a counter goes up. Thanks for any > help. > > Program: > #import modules > import random > import turtle > > > #Give welcome message > def print1(): > > print("Hello!") > print("Thank you for using this Magic 8-Ball Simulator.") > print("We understand that you have a choice in magic 8-ball > experiences,\n and that you have no choice in viewing mine.") > print("Thank you") > > #Define main function > > def main(): > #Set local variables > count=0 #Tried to intergrate count into main() function > query='' > > #Get question > query=str(input("Please type in your question(press 'Enter' to exit):")) > > while query!='': > oracle() > main() > break
You are combining a while loop and a recursive call to main in a redundant way. A while loop without the complication of the function calling itself makes things easier. By the way, input returns a string, so you don't need to call "str" on it. query = input("Please type in your question(press 'Enter' to exit):") while query!='': oracle() count += 1 query = input("Please type in your question(press 'Enter' to exit):")) When the while loop is finally complete, count will be the number of times oracle has run. In current Python, pushing the query into a separate function is a good way to eliminate the verbatim repetition of code. def get_query(): return input("Please type in your question(press 'Enter' to exit):") In main: query = get_query() while query!='': oracle() count += 1 query = get_query() You can generalize function-call counting by writing a function decorator that counts the number of times its function has run, and then decorate oracle with it, but that pie is higher in the sky than needed here. -- Neil Cerutti _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor