There is an issue with the program when the user correctly guesses the number. The program should end when the break statement executes in the while loop found in main(), but instead it times out.
import random
def main():
level = get_level()
number = generate_random_number(level)
while True:
guess = get_guess()
if check_guess(number, guess) == False:
continue
else:
break
def get_level():
while True:
level = input("Level: ")
try:
int(level)
except ValueError:
continue
if int(level) <= 0:
continue
else:
return int(level)
def generate_random_number(level):
number = random.randint(1, level)
return number
def get_guess():
while True:
guess = input("Guess: ")
try:
int(guess)
except ValueError:
continue
if int(guess) <= 0:
continue
else:
return int(guess)
def check_guess(number, guess):
if guess > number:
print("Too large!")
return False
if guess < number:
print("Too small!")
return False
if guess == number:
print("Just right!")
return True
main()
Was using tabs but I went through it to make sure and seemed to be ok.
Don’t think that’s a literal suggestion.
More like a subtle way to portray his frustrations having to look through code example with three while(True) loops?
If you set up ruff you should get autoformatting (and you can enable various lints).
or not introducing another programming language into your toolchain by sticking with black, flake8, isort, and pre-commit
At the user level they’re just tools, not programming languages. Python users are generally moving to
ruff
(anduv
) because of ergonomics: It works well and really fast which makes for a smooth experience in-editor. Plus using fewer tools to achieve a similar result is generally desirable.And for a complete newbie like someone taking a course, I think there’s no “sticking with” to speak of. Might as well just skip over the tools people are migrating away from and start with the tool people are migrating to.
Can see both the pros and cons.
Looking at existing packages we actually use, it’s a mixed bag. When helping other projects, have not run into the situation where had to use ruff. Do see some uptake. It’s not like a light switch there will be multiple commits before the ruff configuration is right. But i’m sure the configuration is simplier than the rocket science that is: black, flake8, isort, pre-compile, tox configurations.
Overtime expect Rust to bleed into the Python toolchain. The excuse to resist this is there is not enough time in the day for Python let alone other coding languages especially low level languages like Rust and integration of those low level languages and Python. Sounds like a ton of work unless intending to write Rust modules to optimize speed of complex Python apps.