▲ 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()
u/StrawberryField4 — 3 days ago