Alex Ruan
Alex Ruan

Reputation: 13

Can someone tell me why my code isn't working?

numCat = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
print("Hello user, I am Inverted Cheese.\n")
username = input("What is your name?\n").capitalize()
print("Hello, " + username + "!")

while True:
    if input() == "hello":
        print("Hello, " + username + "!")
    elif input() == "cat":
        num = randrange(0,10)
        print(num)
        if num == 0:
            numcat[num] += 1
            print("You now have " + numcat[num] + "brown cats")
        elif num == 1:
            numcat[num] += 1
            print("You now have " + numcat[num] + "grey cats")
        elif num == 2:
            numcat[num] += 1
            print("You now have " + numcat[num] + "white cats")
        elif num == 3:
            numcat[num] += 1
            print("You now have " + numcat[num] + "black cats")
        elif num == 4:
            numcat[num] += 1
            print("You now have " + numcat[num] + "orange cats")
        elif num == 5:
            numcat[num] += 1
            print("You now have " + numcat[num] + "furless cats")
        elif num == 6:
            numcat[num] += 1
            print("You now have " + numcat[num] + "hairy cats")
        elif num == 7:
            numcat[num] += 1
            print("You now have " + numcat[num] + "small cats")
        elif num == 8:
            numcat[num] += 1
            print("You now have " + numcat[num] + "fat cats")
        elif num == 9:
            numcat[num] += 1
            print("You now have " + numcat[num] + "chubby cats")
        elif num == 10:
            numcat[num] += 1
            print("You now have " + numcat[num] + "magic cats")
        print(num)
    elif input() == "inventory1":
        print("hi)")
        print("Inventory Part I:\n\nCommon Cats:\nBrown: " + numCat[0] + "\nGrey " + numCat[1] + "\nWhite: " + numCat[2] + "\nBlack: " + numcat[3] + "\nOrange: " + numCat[4] + "\n\nRare Cats:\nFurless: " + numCat[5])
        print("hi)")
    elif input() == "inventory2":
        print("hi)")
        print("Inventory Part II:\n\nRare Cats:\Hairy: " + numCat[6] + "\nSmall: " + numCat[7] + "\n\nEpic Cats:\nFat: " + numCat[8] + "\nChubby: " + numCat[9] + "\n\nLegendary:\nMagic: " + numCat[10])
        print("hi)")

input()

The only command that works is the "hello" command, but the "cat" and both inventory commands don't work. When I try and use them, I get no output. Could someone please explain why?

It also won't print anything. I've added print commands in the inventory code, but they won't print. Is there something I'm doing wrong with my list?

I really want to get this program running, but I'm completely lost here.

Upvotes: 0

Views: 90

Answers (2)

blhsing
blhsing

Reputation: 106523

Every call to input() would require another input from the user. You should call input() once and store the returning value in a variable for comparison:

while True:
    command = input()
    if command == "hello":
        print("Hello, " + username + "!")
    elif command == "cat":
        num = randrange(0,10)
        print(num)
        ...

Upvotes: 1

user2390182
user2390182

Reputation: 73450

You would be reading new input in every elif evaluation. Store the input once, so you can repeatedly compare it:

i = input()
if i == "hello":
    print("Hello, " + username + "!")
elif i == "cat":
    # ...
elif i == ...:
    # ...

Upvotes: 2

Related Questions