Akash
Akash

Reputation: 13

Counting the number of loops python

I am learning python, and one of the exercises is to make a simple multiplication game, that carries on every time you answer correctly. Although I have made the game work, I would like to be able to count the number of tries so that when I've answered correctly a few times the loop/function should end. My problem is that at the end of the code, the function is called again, the number of tries goes back to what I originally set it, obviously. How could I go about this, so that I can count each loop, and end at a specified number of tries?:

def multiplication_game():
    num1 = random.randrange(1,12)
    num2 = random.randrange(1,12)

    answer = num1 * num2

    print('how much is %d times %d?' %(num1,num2))

    attempt = int(input(": "))

    while attempt != answer:
        print("not correct")

        attempt = int(input("try again: "))
    if attempt == answer:
        print("Correct!")

multiplication_game()

Upvotes: 0

Views: 1266

Answers (3)

mrk
mrk

Reputation: 1

 NB_MAX = 10 #Your max try
 def multiplication_game():
     num1 = random.randrange(1,12)
     num2 = random.randrange(1,12)

     answer = num1 * num2
     i = 0
     while i < NB_MAX:
          print('how much is %d times %d?' %(num1,num2))

          attempt = int(input(": "))

          while attempt != answer:
               print("not correct")

          attempt = int(input("try again: "))
          if attempt == answer:
               print("Correct!")
          i += 1

 multiplication_game()

Upvotes: 0

Blender
Blender

Reputation: 298166

I would use a for loop and break out of it:

attempt = int(input(": "))

for count in range(3):
    if attempt == answer:
        print("correct")
        break

    print("not correct")
    attempt = int(input("try again: "))
else:
    print("you did not guess the number")

Here's some documentation on else clauses for for loops if you want more details on how it works.

Upvotes: 1

Peter Wang
Peter Wang

Reputation: 1838

You could surround your call of multiplication_game() at the end with a loop. For example:

for i in range(5):
    multiplication_game()

would allow you to play the game 5 times before the program ends. If you want to actually count which round you're on, you could create a variable to keep track, and increment that variable each time the game ends (you would put this inside the function definition).

Upvotes: 1

Related Questions