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.
Looks like telugu
What kind of dumb language is this?
Python!
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 returnsFalse
, 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 getTrue
str(not()) # 'True'
converts resulting
bool
type into a string representationmin(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 = 3486chr(sum(range(ord(min(str(not())))))) # 'ඞ'
reverse of
ord()
, converts Unicode value to a character.
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 tonot(None)
, and sinceNone
is falsynot(None)
returnsTrue
.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 applynot
to getTrue
. Not having space betweennot
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)
God I love python
in J, many other languages, not null is null.
It prints Unicode character #3486: ඞ
𓂺
giggity
nice
thanks I won’t do that 'cause it’s sus
>>> print(print(chr(sum(range(ord(min(str(not())))))))) ඞ None
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