Omega001
Omega001

Reputation: 13

while loop end everything after it's complete

So I'm trying to make a lottery program where you pick a animal, letter, and number, those are put into a array and compared to another that has the parts chosen by random.

Testing with what I call the animal round.

I have a while loop for invalid entries, that it will not move on till one of the four animals is accepted. But when it does that, the variable invalid goes to false and the coding after it doesn't get used at all. I had this problem last night, and when I finally gave up and went to bed, I decided I'll write it out on flowgorithm (If you haven't heard it makes a flow chart and you can go through programming with it step by step).

I made it, and it worked like expected, I copy and paste it over, and I get the exact same problem as last night.

Here is the code.

#import library

import random

#get variables

game = True
invalid = True
animalarray = [""]

animalarray.append("tiger")
animalarray.append("cow")
animalarray.append("turtle")
animalarray.append("bird")
lotteryarray = [""]

 #game loop

#animal round

    print("Pick a animal: ")
    print("tiger")
    print("cow")
    print("turtle")
    print("bird")
    print(" ")
    lotteryarray[0] = input()

#while loop for invalid entry

    while invalid == True:
        if lotteryarray[0] == "tiger" or lotteryarray[0] == "cow" or lotteryarray[0] == "turtle" or lotteryarray[0] == "bird":
            invalid == False
        else:
            print("Invalid entry!")
            lotteryarray[0] = input()
    print(" ")
    print("You chose " + lotteryarray[0])

game == False 

And this is all I get in the shell:

Pick a animal: 
tiger
cow
turtle
bird

tiger

the tiger there is what I put in, it isn't being printed.

And here is the flowgorithm, like I said, in flowgorithm this works.

flowgorithm of lottery game

Upvotes: 0

Views: 86

Answers (1)

Omega001
Omega001

Reputation: 13

I figured it out.

I printed what invalid was after it was meant to change to False and it didn't change, I changed the two equal signs to one and it worked and changed the value.

Upvotes: 1

Related Questions