1163
all 33 comments
sorted by: hot top controversial new old
[-] EmergMemeHologram@startrek.website 66 points 6 months ago

“exit”

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

[-] PlexSheep@feddit.de 14 points 6 months ago

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?

[-] Zron@lemmy.world 19 points 6 months ago

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.

[-] Bronco1676@lemmy.ml 17 points 6 months ago

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
>>>
[-] EmergMemeHologram@startrek.website 17 points 6 months ago

Reminds me of setting pi = 3 in my friends matlab subroutines in school.

[-] peopleproblems@lemmy.world 5 points 6 months ago

wow it does do that. cool

[-] WhiskyTangoFoxtrot@lemmy.world 14 points 6 months ago

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

[-] tetris11@lemmy.ml 5 points 6 months ago

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

[-] Metype@lemmy.world 7 points 6 months ago

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

[-] tetris11@lemmy.ml 9 points 6 months ago

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'
[-] PlexSheep@feddit.de 4 points 6 months ago

I kinda like that

[-] wewbull@feddit.uk 5 points 6 months ago

Yes. Yes it is.

[-] Bronco1676@lemmy.ml 7 points 6 months ago* (last edited 6 months 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.

[-] eluvatar@programming.dev 2 points 6 months ago

Because python has strong opinions

[-] sloppy_diffuser@sh.itjust.works 41 points 6 months ago* (last edited 6 months ago)

import gravity; gravity = None

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

[-] MajorHavoc@lemmy.world 22 points 6 months ago

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

[-] tetris11@lemmy.ml 8 points 6 months ago* (last edited 6 months 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,

[-] 0ops@lemm.ee 6 points 6 months ago
[-] jcg@halubilo.social 3 points 6 months ago

You now start flying away

And so does everything else, including all the AIR

[-] wintermute@feddit.de 17 points 6 months ago

What's the name of the Island, Java?

[-] oce@jlai.lu 7 points 6 months ago

Snake island

[-] Vespair@lemm.ee 10 points 6 months ago

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

[-] dauerstaender@feddit.de 6 points 6 months ago

The Python REPL is fucking good.

[-] lukas@lemmy.haigner.me 1 points 6 months ago* (last edited 6 months ago)

I see you've never used a Lisp REPL before.

[-] Andrew15_5@mander.xyz 0 points 6 months ago
[-] GuybrushThreepwo0d@programming.dev 5 points 6 months ago

That's giving me a 404, captain

[-] Andrew15_5@mander.xyz 2 points 6 months ago

You can search it yourself. The PYPI package is ptpython.

[-] quantenzitrone@feddit.de 2 points 6 months ago
[-] Andrew15_5@mander.xyz 3 points 6 months ago

On Sync it works fine. Moreover, it should work on other clients too. You better open a ticket.

[-] Crul@lemm.ee 5 points 6 months ago
this post was submitted on 11 Dec 2023
1163 points (98.9% liked)

Programmer Humor

31229 readers
54 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 4 years ago
MODERATORS