In case anyone's curious:
not() # True
str(not()) # 'True'
min(str(not())) # 'T'
ord(min(str(not()))) # 84
range(ord(min(str(not())))) # range(0, 84)
sum(range(ord(min(str(not()))))) # 3486
chr(sum(range(ord(min(str(not())))))) # 'ඞ'
1. Be civil
No trolling, bigotry or other insulting / annoying behaviour
2. No politics
This is non-politics community. For political memes please go to [email protected]
3. No recent reposts
Check for reposts when posting a meme, you can only repost after 1 month
4. No bots
No bots without the express approval of the mods or the admins
5. No Spam/Ads
No advertisements or spam. This is an instance rule and the only way to live.
A collection of some classic Lemmy memes for your enjoyment
In case anyone's curious:
not() # True
str(not()) # 'True'
min(str(not())) # 'T'
ord(min(str(not()))) # 84
range(ord(min(str(not())))) # range(0, 84)
sum(range(ord(min(str(not()))))) # 3486
chr(sum(range(ord(min(str(not())))))) # 'ඞ'
You forgot the most important part!
print(chr(3486)) # ඞ
Why is that thing scary?
It could be an impostor
It looks like the characters from the game Among Us.
It could be a monster.
Looks like telugu
What kind of dumb language is this?
Python, but this is actually defined and documented behavior.
Edit: to illustrate what I mean:
not() # True
this actually is not ()
(the lack of space makes it look like a function), ()
is a tuple, in python an empty collection returns False
, this is to make checks simpler. You can type:
if my_list:
do something
instead of
if len(my_list) > 0:
do something
not
negates it so you get True
str(not()) # 'True'
converts resulting bool
type into a string representation
min(str(not())) # 'T'
This might feel odd, but that's also documented. min()
not only allows to compare two numbers like it is in most languages, but you can also provide a sequence of values and it will return the smallest one.
String is a sequence of letters.
Letters are comparable according to ASCII (so you can do sorting). In ASCII table capital letters are first, so the 'T' is the smallest value.
ord(min(str(not()))) # 84
this just converts 'T' to Unicode value which is 84
range(ord(min(str(not())))) # range(0, 84)
This creates a sequence of numbers from 0 to 83
sum(range(ord(min(str(not()))))) # 3486
This works like min()
except adds up all the numbers in the sequence together, so in our case 0+1+2+3+...+83 = 3486
chr(sum(range(ord(min(str(not())))))) # 'ඞ'
reverse of ord()
, converts Unicode value to a character.
Python!
Why does not without a parameter return True? I'm starting to like the fact that I haven't touched python in a while.
I think it's because not()
is equivalent to not(None)
, and since None
is falsy not(None)
returns True
.
Are you sure?
I can't test it now, but to me it looks like ()
is an empty tuple. Python behavior is that for logic operations empty set equals to false. Then we apply not
to get True
. Not having space between not
operator and parentheses makes it look like it is a function.
I'm pretty sure you're right; that makes more sense.
Why is literally nothing equivalent to None? Is it because None is the default value of an optional parameter? (If so why oh why is it optional)
Because nothing isn't something, and something is true. It's base Boolean logic where everything is either true or false. Null/nothing is false.
It's a weird way to think about conditionals, but it makes sense when you use them in real examples. In my case, I use them like this when I need to make sure that a variable has a value. So I can do something like
If(variable){do things with the variable}else{do stuff when the variable doesn't exist}
I understand that, it makes sense. But why does it not throw an error? The parameter is missing after all.
Actually the explanation is wrong.
not()
is actually
not ()
not
is a keyword not a function.
Boolean of empty tuple is False
and then not
negates it.
I explained it better here:
That makes a lot more sense, thanks I did see in the syntax highlighting that it was a keyword but forgot that none of them took parameters.
No it's not, "" (a null/empty string) is the parameter. Not every function needs a parameter to be valid, and negation is one of them. Negating nothing is something, so "not()" = "not(null)" = "not(false)" = "true"
God I love python
in J, many other languages, not null is null.
a = null
if not a:
…
if not a were null then an if that evaluates that would evaluate it as falsy… also if a would evaluate as falsy :/ that’s far weirder behaviour
It prints Unicode character #3486: ඞ
𓂺
GETOUTOFMYHEAD GETOUTOFMYHEAD GETOUTOFMYHEAD
giggity
nice
thanks I won't do that 'cause it's sus
>>> print(print(chr(sum(range(ord(min(str(not()))))))))
ඞ
None
amoug
Is it bad that I already knew what this would print the moment I read the meme?
You can't tell me what to do