all 33 comments

sorted by: hot top controversial new old
[–] 66 points 2 years ago (13 children)

“exit”

✈️: Use exit() or Ctrl-D (I.e. EOF) to exit

  • source
  • hideshow 13 child comments
  • [–] 15 points 2 years ago (12 children)

    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?

  • source
  • parent
  • hideshow 12 child comments
  • [–] 19 points 2 years ago (3 children)

    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.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 17 points 2 years ago (2 children)

    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 "", line 1, in 
    TypeError: 'int' object is not callable
    >>>
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 14 points 2 years ago (5 children)

    Guessing at what the programmer wants instead of implementing consistent behaviour is what Javascript does. Do you want Python to become Javascript?

  • source
  • parent
  • hideshow 5 child comments
  • [–] 5 points 2 years ago (4 children)

    Just once I want '1' + '2' to equal '3'. Is that so much to ask?

  • source
  • parent
  • hideshow 4 child comments
  • [–] 7 points 2 years ago (2 children)

    You want to remove the string concatenation operator? Cause that'll do it

  • source
  • parent
  • hideshow 2 child comments
  • [–] 7 points 2 years ago*

    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" only exit 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 just exit in your python scripts and scratching your head why it works in the repl but not in your code.

  • source
  • parent
  • [–] 41 points 2 years ago* (4 children)

    import gravity; gravity = None

    edit: of course there is an xkcd: https://xkcd.com/353/.

  • source
  • hideshow 4 child comments
  • [–] 22 points 2 years ago (2 children)

    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."

  • source
  • parent
  • hideshow 2 child comments
  • [–] 8 points 2 years ago*

    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,

  • source
  • parent
  • [–] 17 points 2 years ago (1 child)

    What's the name of the Island, Java?

  • source
  • hideshow 1 child comment
  • [–] 10 points 2 years ago

    See it's funny because we name things after other things

  • source
  • [–] 6 points 2 years ago (8 children)

    The Python REPL is fucking good.

  • source
  • hideshow 8 child comments
  • [–] 0 points 2 years ago (6 children)
  • [–] 5 points 2 years ago (3 children)

    That's giving me a 404, captain

  • source
  • parent
  • hideshow 3 child comments
  • [–] 5 points 2 years ago (1 child)