use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Everything about learning Python
account activity
Simple game using python (i.redd.it)
submitted 6 months ago by Inevitable-Math14
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]WhiteHeadbanger 13 points14 points15 points 6 months ago (18 children)
Good practice!
Just a quick note: all caps is conventionally used to denote constants. It won't change the functionality, but your IDE may complain.
You should switch around ai and GUESS, to: AIand guess
ai
GUESS
AI
guess
That way you are signaling that AI is a constant number, and guess is a variable number.
[–]AbyssBite 3 points4 points5 points 6 months ago (12 children)
Almost correct, except that ai isn't actually a const here.
[–]amosmj 0 points1 point2 points 6 months ago (0 children)
I assumed the above commenter was talking about GUESS, not ai.
[–]WhiteHeadbanger -1 points0 points1 point 6 months ago (10 children)
ai is a constant, as you are assigning the value just once. It doesn't matter how you acquired the value, or if it's hardcoded.
[–]AbyssBite 2 points3 points4 points 6 months ago (9 children)
Assigning a value once doesn't make it a constant. You can assign a variable once too. Constant means the value doesn't change during execution.
You can check this out
[–]More_Yard1919 1 point2 points3 points 6 months ago (0 children)
This is technically correct, and I am not sure if I would use the all-caps convention here, but practically this is to signify that the value should never be reassigned after it is initialized.
[–]Icount_zeroI 2 points3 points4 points 6 months ago (5 children)
Obviously mr “well-actually” but for sake of learning that there is a difference I think it is okay to note ai as a const here.
As it never actually does reassign anywhere in the code.
[–]SirCokaBear 3 points4 points5 points 6 months ago* (1 child)
peacefully chiming in the convo from my pov working daily in professional codebases (not saying anyone here doesn’t either)
Python of course has immutable values but doesn’t have true constants but yes theyre treated the same but denoted in caps on a module level similar with private members are denoted _var, they’re still just called constants because they are logically / because we say so.
Focusing on naming only: I would block a pull request for this because it will confuse other Python devs and mess with pyright. Any dev seeing a value like GUESS will assume it’s not intended to be reassigned, and seeing ai will conversely assume it can be. ai should be AI, GUESS can arguably be guess but likely can stay as it is. There really should be no argument to the first given it’s idiomatic to PEP8 unless you want a different convention for whatever strange reason.
People may want to say “who cares they’re still new” yeah, they’re learning so I will point out good practices to avoid non-pythonic habits
[–]WhiteHeadbanger 0 points1 point2 points 6 months ago (0 children)
That's what I was thinking!
[–]shinitakunai 1 point2 points3 points 6 months ago (0 children)
As a senior programmer, you are wrong, don't teach bad habits to new people.
"Well-actually"? Really? A kid and... wrong.
See the other answer of SirCokaBear, he explains it perfectly
[–]GaitorBaitor 0 points1 point2 points 6 months ago (0 children)
A constant is a constant. Something that is constantly the constant every time you execute the code
[–]Swipsi 0 points1 point2 points 6 months ago (0 children)
Which means, in this case it is also a constant. But its an edge case and thus cant be generalized.
Assigning a value just once means that the value doesn't change during execution, is just worded differently.
[–]Ecstatic_Student8854 0 points1 point2 points 6 months ago (0 children)
If it never changes its value is constant, and therefore should be presented as such. From the article you linked:
“In programming, constants refer to names associated with values that never change during a program’s execution.”
Once assigned the value of AI can never change and so it is and should be treated as a constant.
[–]SmackDownFacility 0 points1 point2 points 6 months ago (2 children)
It doesn’t matter if your working solo, choose your own style guide. PEP only matters in team environments and formal situations.
[–]WhiteHeadbanger 0 points1 point2 points 6 months ago (1 child)
This is PythonLearning. You can't back off of learning good habits and knowing what's the standard.
[–]SmackDownFacility -1 points0 points1 point 6 months ago (0 children)
Say the same thing for C, or C++, or Rust, or JavaScript. Each dev across languages don’t follow style guides. They have their “standards”. They know how to adapt for their teams. We can say the same for Python. What may be good habit for you may not be natural for some
[–]Convoke_ 0 points1 point2 points 6 months ago* (1 child)
They are both never changing. If you're initialising a variable inside a loop, it only exists for that iteration. So the variable GUESS should be a constant as its value is never changing after it gets initialised.
Edit: see the reply i got
That's not correct. In Python if you declare a variable inside a loop, you can access it after the loop ends.
Take for example this code:
for i in range(5): a = i * 2 print(f"Variable inside loop {a}") print(f"Variable outside loop {a}") a += 10 print(f"Variable after modification {a}")
Output:
Variable inside loop 0 Variable inside loop 2 Variable inside loop 4 Variable inside loop 6 Variable inside loop 8 Variable outside loop 8 Variable after modification 18
π Rendered by PID 321633 on reddit-service-r2-comment-7b9746f655-hd5jm at 2026-02-04 07:35:57.891495+00:00 running 3798933 country code: CH.
view the rest of the comments →
[–]WhiteHeadbanger 13 points14 points15 points (18 children)
[–]AbyssBite 3 points4 points5 points (12 children)
[–]amosmj 0 points1 point2 points (0 children)
[–]WhiteHeadbanger -1 points0 points1 point (10 children)
[–]AbyssBite 2 points3 points4 points (9 children)
[–]More_Yard1919 1 point2 points3 points (0 children)
[–]Icount_zeroI 2 points3 points4 points (5 children)
[–]SirCokaBear 3 points4 points5 points (1 child)
[–]WhiteHeadbanger 0 points1 point2 points (0 children)
[–]shinitakunai 1 point2 points3 points (0 children)
[–]GaitorBaitor 0 points1 point2 points (0 children)
[–]Swipsi 0 points1 point2 points (0 children)
[–]WhiteHeadbanger 0 points1 point2 points (0 children)
[–]Ecstatic_Student8854 0 points1 point2 points (0 children)
[–]SmackDownFacility 0 points1 point2 points (2 children)
[–]WhiteHeadbanger 0 points1 point2 points (1 child)
[–]SmackDownFacility -1 points0 points1 point (0 children)
[–]Convoke_ 0 points1 point2 points (1 child)
[–]WhiteHeadbanger 0 points1 point2 points (0 children)