I started programming in the 80s, so I'm used to double-quoting anyway.
Apostrophes occur so often in English that it makes it easier to type strings like "I'm a dog". With single quoting you have to go 'I\'m a dog'.
If I hit double quotes in a string, I just triple-quote.
"""He said "hah" sarcastically""".
I know Guido (van Rossum) prefers single quotes -- I'm not sure why exactly -- so it's become a default Python style. I tried to adopting it but always ended up reverting to double quotes.
Might be ease of typing? Eg: `foo = 'bar'` doesn't require any shift chords, whereas `foo = "bar"` requires two. Though then I'd expect similar preference for kebab-case in identifies, for similar reason.
Yes, that must be right, although to me the trade-off is escaped strings which lack good aesthetics.
'The class of \'72 didn\'t think much of Sam\'s speech'
vs
"The class of '72 didn't think much of Sam's speech"
To me, the shift chord is an almost negligible price to pay for more aesthetically pleasing strings, especially since on a QWERTY keyboard, the shift key is literally right next to the ' key. For emacs users who are used to complex key chords, it's even more negligible.
I do use single quotes for strings frequently in interpolated f-strings though:
For public code I do not recommend changing the defaults since it may make PRs a mess.