u/StrawberryField4

▲ 3 r/cs50

cs50 python little professor question

So this is the code I wrote for the little professor problem. It seems to work properly, however when I checked it through check 50, I got a part flagged wrong that I'm having a difficult time understanding what it means and how I could fix it.(picture tagged below) Can somebody help me out?



import random


def main():
    generate_integer(get_level())




def get_level():
    levels = [1, 2, 3]
    while True:
        try:
            level = int(input("Level: "))
        except ValueError:
            continue
        if level not in levels:
            continue
        return level



def generate_integer(level):


    if level == 1:
        n = 0
        c = 0
        while n < 10:
            (x,y) = random.randint(0,9), random.randint(0,9)
            w = 0
            answer = x + y
            while True:
                try:
                    guess = int(input(f"{x} + {y} = "))
                except ValueError:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
                if guess == answer:
                    c += 1
                    n += 1
                    break
                elif guess != answer:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
        if n == 10:
            print(f"Score: {c}")


    if level == 2:
        n = 0
        c = 0
        while n < 10:
            (x,y) = random.randint(10,99), random.randint(10,99)
            w = 0
            answer = x + y
            while True:
                try:
                    guess = int(input(f"{x} + {y} = "))
                except ValueError:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
                if guess == answer:
                    c += 1
                    n += 1
                    break
                elif guess != answer:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
        if n == 10:
            print(f"Score: {c}")


    if level == 3:
        n = 0
        c = 0
        while n < 10:
            (x,y) = random.randint(100,999), random.randint(100,999)
            w = 0
            answer = x + y
            while True:
                try:
                    guess = int(input(f"{x} + {y} = "))
                except ValueError:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
                if guess == answer:
                    c += 1
                    n += 1
                    break
                elif guess != answer:
                    w += 1
                    if w in range(0,3):
                        print("EEE")
                        continue
                    elif w == 3:
                        print(f"{x} + {y} = {answer}")
                        n += 1
                        break
        if n == 10:
            print(f"Score: {c}")
            



if __name__ == "__main__":
    main()

#Updated Version with no errors!

import random


def main():


    n = 0
    c = 0
    level = get_level()
    while n < 10:
        x = generate_integer(level)
        y = generate_integer(level)
        w = 0
        answer = x + y
        while True:
            try:
                guess = int(input(f"{x} + {y} = "))
            except ValueError:
                w += 1
                if w in range(0,3):
                    print("EEE")
                    continue
                elif w == 3:
                    print(f"{x} + {y} = {answer}")
                    n += 1
                    break
            if guess == answer:
                c += 1
                n += 1
                break
            elif guess != answer:
                w += 1
                if w in range(0,3):
                    print("EEE")
                    continue
                elif w == 3:
                    print(f"{x} + {y} = {answer}")
                    n += 1
                    break
    if n == 10:
        print(f"Score: {c}")




def get_level():
    levels = [1, 2, 3]
    while True:
        try:
            level = int(input("Level: "))
        except ValueError:
            continue
        if level not in levels:
            continue
        return level



def generate_integer(level):


    if level == 1:
        return(random.randint(0,9))




    if level == 2:
        return(random.randint(10,99))




    if level == 3:
        return(random.randint(100,999))
    



if __name__ == "__main__":
    main()

https://preview.redd.it/ibw9mh60u12h1.png?width=1792&format=png&auto=webp&s=08068ccc73aea279b799b3347d8facc06938cbd5

reddit.com
u/StrawberryField4 — 3 days ago