What’s New in Python 3.8
91–100 of 381 posts
Re: What’s New in Python 3.8
#92Earlier quoted context omitted.
> The "walrus operator" will occasionally be useful, but I doubt I will find many effective uses for it. The primary one I want is if m := re.match(...): print(m.group(1)) and while s := network_service.read(): process(s) both of which are both clearer and less error-prone than their non-walrus variants. The other one that I would have found useful an hour ago is in interactive exploration with comprehensions. I freq…
Coming from Perl, I used to want this badly, but then I thought that there's absolutely nothing wrong with m = re.match(...) if m is not None: pass Now, I wonder what you meant saying that single-line version is less error-prone, because I don't think so. I believe they're exactly the same in this regard, except for a bizarre case when someone would bastardize the code by putting some irrelevant lines between the ass…
while m := f(many, args):
# do stuff with m
Now, if you're writing this in Python 3.7, you often end up with some code duplication: m = f(many, args)
while m:
# do stuff with m
m = f(many, args) # duplicate
Or something like this: while True:
m = f(many, args)
if not m:
break
# do stuff with m
Personally, I consider the last version to be the most elegant, but still something of an anti-pattern. So I welcome this new operator.Re: What’s New in Python 3.8
#93Earlier quoted context omitted.
Yes, there is. If x = 1 Has been the source of many errors in many languages. Forcing assignment to be more than a 1 character difference from the equality operator prevents this.
I may be missing something, but := is still only a 1 character difference, isn't it?
So, wiki defines levenstein distance as including substitution, but I was taught or at least remember it only being additions and deletions?
Re: What’s New in Python 3.8
#94Earlier quoted context omitted.
> which itself is a result of limiting ourselves to the ASCII symbols that can be typed I think we're ready for programming languages using some visually good Unicode characters, instead of overloading `[]{}!@#$%^&*()-_/` for everything!
Oh god, this. I want a language that as I type, != Gets replaced with a proper ≠ not equals sign and proper symbols for AND, OR, and NOT.
They borrow syntax from LaTeX math-mode to allow symbol entry, such that you can type "\ne" and as soon as you hit the space after the "e", you get ≠ instead.
The language plugin for Visual Studio Code does the same thing.
Lean Prover's not exactly a programming language, but :
def foo (a b : ℕ) : ℕ → ℕ → ℕ :=
λ a b, a + b
Still looks decent.I think it has to be all or nothing though, since if it's optional the odds of getting decent editor support for it is low.
Re: What’s New in Python 3.8
#95Re: What’s New in Python 3.8
#96Re: What’s New in Python 3.8
#97> Added new multiprocessing.shared_memory module Hard to understand why this is so far down. This is fantastic news!
Re: What’s New in Python 3.8
#98Earlier quoted context omitted.
There are programming fonts that use ligatures to convert >= to ≥, or -> to →, so the source code remains in ASCII but symbol sequences show as unique Unicode characters. A next step could be for common dev environments to actually convert symbol/key sequences to operators (how do APL programmers do it?) Avoiding ambiguity and semantic overloading of ASCII symbols would surely help beginners (if also given a UI that…
The Mac has provided easy access to symbols since 1984, with nice mnemonics like these: option-= ≠ option- ≥ option-/ ÷ option-o ø option-w ∑ I don't know why other OSes haven't adopted something similar. The first couple of these were even idiomatic in HyperCard's scripting language.
How do you discover how to type ß, °, «, ‡ etc?
Android's gboard uses phonetics (long press [s] key for ß), symbolic similarity (long press [*] key for ‡) and visual similarity (long press [<] key for «) which is guessable for some symbols, but isn't discoverable for others (you can search for emoji by name, but not symbols).
Re: What’s New in Python 3.8
#99Does the python community care about concurrency at all? I havent seen anything new in terms of concurrency in a while. I might be wrong about this, but walrus operator seems like a gateway to writing obfuscated perlesque code.
Re: What’s New in Python 3.8
#100 if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected
Um, no it doesnt?: a1 = [10, 20, 30]
n1 = len(a1)
if n1 > 2:
print(f'{n1} is greater than two')