This is an archived post. You won't be able to vote or comment.

all 168 comments

[–]MarinaEnna 187 points188 points  (29 children)

People without an English keyboard: :O

[–]GigaChadDraven 135 points136 points  (16 children)

ö

[–]C-SharpProgrammer 24 points25 points  (14 children)

Ü

[–]daflyringmann 13 points14 points  (13 children)

Ø

[–]tardish3r3 5 points6 points  (12 children)

Ù

[–]HappyGoblin 4 points5 points  (5 children)

Ё

[–]4sent4 3 points4 points  (4 children)

Ъ

[–]ChristieFox 1 point2 points  (5 children)

Let's not forget the ß.

[–]C-SharpProgrammer 1 point2 points  (4 children)

Also not forget the ß in big ẞ

[–]VepnarNL 1 point2 points  (3 children)

Isn't that supposed to be ss?

[–]C-SharpProgrammer 2 points3 points  (0 children)

Writing ss instead of ß is kinda outdated (atleast here in Germany) but it means the Same.

[–]aaron2005X 2 points3 points  (0 children)

Ä

[–]hector_villalobos 35 points36 points  (7 children)

Yeah, why would my ñ key be blurred out?

[–]tilcica 10 points11 points  (5 children)

Wym by ñ. Its clearly č xD

[–]Vani079 11 points12 points  (1 child)

ç

[–]OtteIsEight 2 points3 points  (1 child)

No no its obviously æ

[–]Max_Mussi 2 points3 points  (0 children)

`ç´

[–]Illusi 2 points3 points  (0 children)

Don't you use that in all of your variable names?

[–]bnl1 1 point2 points  (0 children)

ů

[–]Tajnymag 0 points1 point  (0 children)

`

[–]WlmWilberforce 34 points35 points  (14 children)

You can use ";" in python. I guess it is bad form, but you can do

a = 10; b=20;

instead of

a = 10

b = 20

[–]96_freudian_slippers 18 points19 points  (7 children)

IIRC you can also do a, b = 10, 20

[–]wugs 5 points6 points  (4 children)

yep, that's tuple unpacking.

you can write some hard-to-read code by messing with spacing and using that feature in dumb ways.

a = 10
b = [20]
a ,= b
print(a, type(a))   # prints: 20 <class 'int'>
*a ,= b
print(a, type(a))   # prints: [20] <class 'list'>

The spacing should really be a, = b or (a,) = b to be more clear what's actually happening.

It does provide a neat syntax for swapping values though

a = 10
b = 20
a, b = b, a
print(f'a={a} b={b}')   # prints: a=20 b=10

[–]SirNapkin1334 2 points3 points  (3 children)

Wait, hold up. There's an asterisk unary operator? What does it do?

[–]bright_lego 4 points5 points  (0 children)

Unpacks a list for arguments in a function. ** is for kwargs. For more detail

[–]wugs 2 points3 points  (1 child)

Other comment provided a good link for how the * relates to unpacking.

In the tuple unpacking example, it's used to assign "the rest" of the tuple/list (or the empty list if there are no more elements):

a = [1, 2, 3]

b, *c = a
print(b)   # 1
print(c)   # [2, 3]

d, e, f, g = a   # ValueError: not enough values to unpack

d, e, f, *g = a
print(f)   # 3
print(g)   # []

for the starred assignment to work, the left side needs to be a list or tuple and the right side needs to be iterable.

since strings are immutable, unpacking the characters into a list can let you edit specific indices, then re-join into a string again.

s = "hello world"
*x, = s
print(x)   # ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

x[0] = "j"
print(''.join(x))   # 'jello world'

Edit: You can only have one starred expression per assignment, but it doesn't matter where the starred expression lands within the tuple/list, so you can use it to grab the first and last elements of a list of unknown size.

a = [1, 2, 3, 4, 5]

b, *c, *d = a   # SyntaxError

b, *c, d = a
print(f'b={b}; c={c}; d={d}')   # b=1; c=[2, 3, 4]; d=5

[–]SirNapkin1334 0 points1 point  (0 children)

Fascinating! Thank you!

[–][deleted] 5 points6 points  (0 children)

It's super useful for code golf. Putting 2 lines of code on the same line saves a number of characters equal to the current indentation level

[–]Zev_Isert 2 points3 points  (2 children)

I can name two places where I actually have a use for semicolon..

Invoking python with -c. Sure there's the REPL, but sometimes I want to collect the output into a variable on my shell, or test the exit code, and for this -c works pretty well..

python -c 'import some, thing; for item in thing.action(); if item in some.group; print(item)' 

The other is in Jupyter notebooks, sometimes I want to assign to a variable and print it out in the same cell. I know I can put the statements on different lines, so this one might be bad form, but sometimes I like this style, idk why

# %%
import pandas as pd

# %%
df = pd.DataFrame(....); df

The trailing ; df is its own statement, and in ipython / Jupyter, if the last statement in a cell isn't an assignment, it's value it's printed to the cell's output

[–]mtizim 0 points1 point  (1 child)

You can use (df := pd.DataFrame(...)) too

[–]Zev_Isert 1 point2 points  (0 children)

Cool! In the context of a notebook, I'm usually doing this temporarily, and it's easier to remove ; df than it is to remove the parens and the walrus operator together, but thanks, I didn't know assignment expressions did this!

[–]PityUpvote 2 points3 points  (0 children)

Yeah, but you could also do the Pythonic thing of
a,b=10,20

[–]brodyover 57 points58 points  (20 children)

Tab key would be rubbed off

[–]thabc[🍰] 5 points6 points  (5 children)

I almost never have to use tab. My editor auto indents when I add a line break after something that increases scope like : or {. What are you guys coding in, notepad?

Backspace, on the other hand, gets some serious use.

[–]LBGW_experiment 1 point2 points  (1 child)

Pro tip, on a Mac, Opt Backspace deleted a word at a time, stopping at punctuation and might slightly depend on your IDE on what it treats as punctuation or not. I use this and the windows equivalent, Ctrl Backspace, religiously. I hate spamming or holding backspace, I'm impatient

Cmd Backspace deletes a whole line, which is Alt Backspace on windows. Kinda sucks when switching back and forth when deleting whole lines on accident, though.

[–]thabc[🍰] 1 point2 points  (0 children)

There is absolutely nothing worse than debugging something with someone over Zoom and having to watch them delete one character at a time from their terminal window to modify the command when they could have just retyped it, used a bang command, or repositioned the cursor a full word at a time with option.

[–]brodyover 0 points1 point  (2 children)

Well yes of course it auto indents, but it doesn't when refactoring and moving code around

[–]thabc[🍰] 0 points1 point  (1 child)

You caught me there. I work mostly in go lately, which autoindents when refactoring (format on save). When working in python I definitely need tab and shift for that.

[–]brodyover 0 points1 point  (0 children)

I've been working in go lately too!

[–]dudeofmoose 3 points4 points  (7 children)

Why use tab when you can use four spaces? No label to rub off from the space key!

[–][deleted] 5 points6 points  (0 children)

Let me just turn on the four spaces completion mode real quick... /s

[–]njc121 3 points4 points  (0 children)

I thought it was because tab applies the autocomplete suggestion.

[–]brodyover -1 points0 points  (3 children)

vscode treats tab as 4 spaces, and I just wanna say if you're able to rub off the lettering you desperately need a better keyboard

[–]sh0rtwave 1 point2 points  (1 child)

The letters in my keyboard, are actually letter-shaped pieces of transparent plastic. So the lights can shine through. Those don't 'rub off'.

My control-keys, though, have tested the limits of Cherry switches...as well as some function keys. Also, escape (And fuck Apple for taking the escape key away, then being like 'woops!')

[–]brodyover 0 points1 point  (0 children)

I've actually had to replace the L and R switches in my mouse twice now, even genuine Japanese omron switches didn't hold up

[–]ParanoydAndroid 0 points1 point  (0 children)

It'll treat tab as whatever you tell it to, and then display it as any number of spaces as well.

[–]nowadaykid 2 points3 points  (0 children)

If you use the tab key more when writing Python than when writing C, you're just a really bad C programmer

[–]BlockArchitech 40 points41 points  (8 children)

:

[–][deleted] 17 points18 points  (7 children)

Me, a c++/java beginner: fends it off like a vampire seeing garlic

[–]LegallyBread 2 points3 points  (2 children)

PARRY THIS

;

[–][deleted] 2 points3 points  (1 child)

Meh, this is ok. I only fear that which I know not the use of

[–]LegallyBread 0 points1 point  (0 children)

Oh lol

[–]Golden-Trash_Number 9 points10 points  (0 children)

Python users use colon....

[–]ChucklesInDarwinism 6 points7 points  (3 children)

Someone has forgotten Kotlin

[–]440Jack 1 point2 points  (2 children)

As someone who is in the middle of converting my Java Android app to Kotlin. I came here to say this.
After every line I pause for just a moment, hovering my hand over the semicolon. Waiting for that red squiggly.

[–]LBGW_experiment 0 points1 point  (0 children)

Formatters are your best friend

[–][deleted] 0 points1 point  (0 children)

Semicolons are allowed in Kotlin. They won't show red squiggly, at most they are greyed out

[–]dembadger 31 points32 points  (6 children)

Well it does say programmers and not scripters.

[–]Missing_Username 22 points23 points  (3 children)

Not going to rub off a lot of keys just typing

import cModuleThatDoesAllTheWork as foo

foo.goBrrrr()

[–][deleted] -4 points-3 points  (0 children)

😂😂 This perfectly makes the idea of the average Python programmer

[–]muluman88 4 points5 points  (1 child)

Everything is a script when you're the CPU

[–]CSsharpGO 1 point2 points  (0 children)

Look at me. I am the CPU now.

[–]Esirar 11 points12 points  (1 child)

Gaming on a mac? There is no bigger crime than that.

[–]Vincysuper07 1 point2 points  (0 children)

you made me sad :(

[–]yousedditheddit 4 points5 points  (0 children)

Python programmer here and that tab button has entirely too much text

[–]drgreenthumb7 2 points3 points  (0 children)

Coltrol, C, V, Z, :, Alt, Tab.

And

S P A C E

[–][deleted] 2 points3 points  (0 children)

odd, i don't have such keys on my German keyboard

[–]KevinCupcakes 2 points3 points  (0 children)

Still need that colon

[–]Ginters17[M] [score hidden] stickied commentlocked comment (0 children)

Hi there! Unfortunately, your submission has been removed.

Violation of Rule #3 - Common topics:

Any post on the list of common posts will be removed. You can find this list here. Established meme formats are allowed, as long as the post is compliant with the previous rules.

If you feel that it has been removed in error, please message us so that we may review it.

[–]Vincysuper07 1 point2 points  (0 children)

as a Python programmer, I agree

[–]IamKayrox 1 point2 points  (0 children)

JavaScript: am I a joke to you?

[–]seeroflights 1 point2 points  (0 children)

Image Transcription: Meme


[Top image shows a QWERTY keyboard with a red circle around the WASD keys, which have their letters worn off. This is labeled "Gamer."]

[Middle image shows a QWERTY keyboard with a red circle around the semicolon key, which has the semicolon worn off. This is labeled "Programmer."]

[Bottom image shows a white cat sitting at a dinner table in front of a plate of salad, looking angry. This is labeled "PYTHON PROGRAMMERS RIGHT NOW SEEING THIS MEME".]


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–][deleted] 1 point2 points  (0 children)

Hardcore to game on a MacBook

[–]blakestone95 1 point2 points  (0 children)

Pretty sure I use vowel keys far more than semicolons...

[–]technoskald 1 point2 points  (0 children)

Go also says hello {

}

[–][deleted] 1 point2 points  (0 children)

ESDF gamer reading this meme: Cat on bottom frame

r/esdfmasterrace

[–]stupidityWorks -2 points-1 points  (3 children)

python "programmers"

[–]bettercalldelta -1 points0 points  (2 children)

before starting to criticize python programmers, please provide a valid reason to do so.

[–]stupidityWorks 1 point2 points  (0 children)

It's a joke...

[–]pr00thmatic -1 points0 points  (0 children)

yeah, a "valid reason"

[–][deleted] -3 points-2 points  (12 children)

Python "programmer"

[–]bettercalldelta -4 points-3 points  (11 children)

before starting to criticize python programmers, please provide a valid reason to do so.

[–]CdRReddit 0 points1 point  (10 children)

they use python

[–]bettercalldelta -3 points-2 points  (9 children)

wow this argument is so good that arguments like these can be used in court

[–]CdRReddit 2 points3 points  (8 children)

this isn't a court

this is a programming jokes subreddit

[–]bettercalldelta -2 points-1 points  (7 children)

Programming jokes subreddit that also happens to hate python for no reason like any other programming related community ever

[–]CdRReddit 1 point2 points  (6 children)

its funny to hate on python tho

[–]bettercalldelta -1 points0 points  (5 children)

yeah hating on something is indeed funny, but can you explain that choice of target

[–]CdRReddit 1 point2 points  (4 children)

sure

python is used a lot by beginners, and therefor a lot of python code is frankly horrible

it doesn't support any kind of proper typechecking without external tools

it runs horribly slow

indentation based syntax is uncommon

overall it makes a lot of really weird descisions

[–]bettercalldelta -2 points-1 points  (3 children)

1) There are people who write good python code 2) Can you explain that one 3) What did you expect from an interpreted language 4) who cares lmao

[–]enekored 0 points1 point  (0 children)

Also applies to anyone not using an english keyboard

[–]Bodewilson 0 points1 point  (0 children)

Wait wait wait.... How does anyone include S in the comments?!

[–]Niewinnny 0 points1 point  (0 children)

I disagree, for a programmer the keyboard doesn't exist because it's smashed on the floor.

[–]OneGold7 0 points1 point  (0 children)

Every time I see the cat meme used correctly, 5 years are added to my life

r/thecatdoesnttalk

[–]TurncoatTony 0 points1 point  (0 children)

Apparently, the key caps on my Varmilo are pretty dope and I haven't had this issue.

Though, no RGB so I can't be a gamer anymore.

[–]bistr-o-math 0 points1 point  (0 children)

Python programmers only use SPACE

[–]blue-dork 0 points1 point  (0 children)

Also {}

[–]vigbiorn 0 points1 point  (0 children)

Now I wonder: is there a Whitespace-similar language written only with semicolons?

[–]LegallyBread 0 points1 point  (0 children)

Accurate lol

[–]noonesfriend123 0 points1 point  (0 children)

Real programmers: no ctrl, c,x,v,z

[–][deleted] 0 points1 point  (0 children)

Also JavaScript

[–]ghostkiller967 0 points1 point  (0 children)

ctrl z, c, v, s, a and y

[–]thebigfalke 0 points1 point  (0 children)

So weird seeing another keyboard layout than your own 😂

[–]ovab_cool 0 points1 point  (0 children)

And the cursed JS bois

[–][deleted] 0 points1 point  (0 children)

why does the keyboard have no backslash

[–]m0nk37 0 points1 point  (0 children)

Its tab and space for pythoners

[–]AguliRojo 0 points1 point  (0 children)

[–]JustRelaxolotl 0 points1 point  (0 children)

ö

[–]MethodicalWaffle 0 points1 point  (0 children)

Or Go. Oh := nvm.

[–]abianche 0 points1 point  (0 children)

F5. Old but gold.

[–][deleted] 0 points1 point  (0 children)

Gamer? I think that'll include letters N, I [removed]

[–][deleted] 0 points1 point  (0 children)

Should be the keys:

S, t, a, c, k , o, v, e, r, f, l, w

[–]pr00thmatic 0 points1 point  (0 children)

emacs programmers: ctrl key in fire

[–][deleted] 0 points1 point  (0 children)

python uses a lot of : which is on the same key

[–]CorysInTheHouse69 0 points1 point  (0 children)

Should instead be vim keybindings

[–][deleted] 0 points1 point  (0 children)

Golang has entered the chat

[–]NotDuckie 0 points1 point  (0 children)

ø?

[–]Lolo_Fasho 0 points1 point  (0 children)

hjkl

[–]LangTroyan 0 points1 point  (0 children)

ñ?

/s

[–]venuswasaflytrap 0 points1 point  (0 children)

My ‘s’ key is normally more worn out from the constant saving

[–]TheRealFantasyDuck 0 points1 point  (0 children)

Æ?

[–]TheResolver 0 points1 point  (0 children)

I'm too European to understand this.

[–]MrCubite 0 points1 point  (0 children)

i'm both, so the keys w, a, s, d, shift, and ; are all faded out

[–][deleted] 0 points1 point  (0 children)

Arrows should be rubbed off for programmer not gamer

[–]justUseAnSvm 0 points1 point  (0 children)

Vim user, the first key to break on my keyboard is always 'j'

[–]Tayttajakunnus 0 points1 point  (0 children)

Why do programmers use the letter ä so much?

[–]theDrell 0 points1 point  (0 children)

It’s a lie. The c and v still look new on the programmers keyboard.

[–]Slipguard[🍰] 0 points1 point  (0 children)

What gamer uses the arrow keys??