I noticed that I cannot use all unicode characters in my python source code.
While
def 价(何):
totally believable (though pointless [maybe?])
def N(N₀, t, λ) -> 'N(t)':
this is not valid (subscript is zero).
I also cannot use some other characters, most of which I recognize as something other than letters (for example, mathematical operators). I always thought that if I just stick to the rules that I know, i.e. Compiling names from letters and numbers, with a letter as the first character, everything will be fine. Now a zero index is a "number". so my impression was wrong.
I know that I should avoid using special characters. However, the definition of the function above (exponential decay, which is) seems completely reasonable to me - because it will never change, and it so elegantly conveys all the information needed for use by another programmer.
So my question is, which characters are allowed and which are not? And where?
Edit
Well, it seems I was not clear enough. I am using python3, so there is no need to declare the encoding of the source file. Apparently, I thought that my definition of function in China works.
My question is why some characters are allowed there, while others are not. Zero indexes cause an error , an invalid character in the identifier , but the draft bold version works. Both are equally special that I would say.
I would like to know if there are any general rules that apply not only to my situation, should be. It seems that my mistake is not accidental.
Edit 2:
The answer was kindly provided by Beau Martínez, pointing to a link to the language where I should have looked first:
http://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html It seems that all valid characters are selected.