“exit”
✈️: Use exit() or Ctrl-D (I.e. EOF) to exit
I mean if they can see that we type exit and show us this message, why could they not just start the exiting when we type exit?
Because exit might be a variable you use to determine if you should exit. exit() is a function that actually does the exiting.
It’s the difference between pointing at a jogger and saying “run” and actually running after them.
If you have a variable called
exit
you’ve overwritten the function in that scope, and won’t be able to execute it.e.g.
>>> exit=1 >>> exit() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable >>>
Reminds me of setting pi = 3 in my friends matlab subroutines in school.
wow it does do that. cool
Guessing at what the programmer wants instead of implementing consistent behaviour is what Javascript does. Do you want Python to become Javascript?
Just once I want
'1' + '2'
to equal'3'
. Is that so much to ask?You want to remove the string concatenation operator? Cause that’ll do it
I think every language needs a
please
operator, which acts to enforce human expectation of a statement:'1' + '1' ## evaluates to '11' please '1' + '1' ## evaluates to '2'
I kinda like that
Yes. Yes it is.
This is the code (Github link):
class Quitter(object): def __init__(self, name, eof): self.name = name self.eof = eof def __repr__(self): return 'Use %s() or %s to exit' % (self.name, self.eof) def __call__(self, code=None): # Shells like IDLE catch the SystemExit, but listen when their # stdin wrapper is closed. try: sys.stdin.close() except: pass raise SystemExit(code)
What happens is that the python repl calls
__repr__
automatically on each variable/statement that you type into the repl (except assignments e.g.x = 1
). But this basically only happens in the repl. So “executing” onlyexit
wouldn’t work in a python script as it is not calling__repr__
automatically, so better you learn how to do it right than using justexit
in your python scripts and scratching your head why it works in the repl but not in your code.Because python has strong opinions
import gravity; gravity = None
edit: of course there is an xkcd: https://xkcd.com/353/.
Incidentally, for anyone who hasn’t typed ‘import antigravity’ into an interactive Python terminal…you should - as Dr Seuss says, “These things are fun, and fun is good.”
I love how it contains exactly one function:
from antigravity import geohash
Hell, this is the entire antigravity library:
import webbrowser import hashlib webbrowser.open("https://xkcd.com/353/") def geohash(latitude, longitude, datedow): '''Compute geohash() using the Munroe algorithm. >>> geohash(37.421542, -122.085589, b'2005-05-26-10458.68') 37.857713 -122.544543 ''' # https://xkcd.com/426/ h = hashlib.md5(datedow, usedforsecurity=False).hexdigest() p, q = [('%f' % float.fromhex('0.' + x)) for x in (h[:16], h[16:32])] print('%d%s %d%s' % (latitude, p[1:], longitude, q[1:]))
He literally gets a 32-bit hash, uses the first half of it as the latitude decimal, and the second half of it as the longitude decimal,
NO WAY
You now start flying away
And so does everything else, including all the AIR
What’s the name of the Island, Java?
Snake island
See it’s funny because we name things after other things
The Python REPL is fucking good.
I see you’ve never used a Lisp REPL before.
No, it’s not: https://github.com/prompt-toolkit/ptpython.
That’s giving me a 404, captain
Not to me
deleted by creator
You can search it yourself. The PYPI package is ptpython.
https://github.com/prompt-toolkit/ptpython
the dot at the end of your link breaks it
On Sync it works fine. Moreover, it should work on other clients too. You better open a ticket.
Source: Help – The Jenkins
Thanks!