OpenSees Cloud

OpenSees AMI

Single Quotes or Double?

Original Post - 17 Nov 2022 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


Python, like many other languages, uses single (') and double quotes (") for multi-character strings. This was a bit for me to digest coming from the C++ world where single and double quotes have distinct uses: single quotes for a character and double quotes for strings.

Functionally, there’s no difference between single and double quotes in Python, but they can be played off each other and alleviate the need to use the escape characters \' and \".

Let’s suppose you’re creating middleware and want to write the OpenSees analysis and analyze commands to a file. We can use double quotes around the commands and single quotes around the Static analysis type.

import openseespy.opensees as ops

output = open("convertedModel.py",'w') # C++ style, but whatevs

#
# Do some stuff
#

Nsteps = 100
output.write("ops.analysis('Static')\n")
output.write(f"ops.analyze({Nsteps})\n")

output.close()

Notice the use of an f-string to substitute the Nsteps variable into the string.

We can also use single quotes around the commands. But in doing so, we have to switch to double quotes around Static.

output.write('ops.analysis("Static")\n')
output.write(f'ops.analyze({Nsteps})\n')

If you insist on single quotes everywhere in convertedModel.py, you have to escape the quotes around Static, which can be visually distracting mid-string. Same idea if you want double quotes everywhere.

output.write('ops.analysis(\'Static\')\n')
# output.write("ops.analysis(\"Static\")\n")

There’s plenty more nuance to quotes and escape characters, but I’ll keep the blog focused on the nuances of OpenSees.