In the Python interpreter, how do you return a value without single quotes around it?

Question:

In the Python interpreter, how do you return a value without single quotes around it?

Example:

>>> def function(x):
...     return x
...
>>> function("hi")
'hi'

I expect it to return hi instead of 'hi'

Asked By: user176073

||

Answers:

In the Python interactive prompt, if you return a string, it will be displayed with quotes around it, mainly so that you know it’s a string.

If you just print the string, it will not be shown with quotes (unless the string has quotes in it).

>>> 1 # just a number, so no quotes
1
>>> "hi" # just a string, displayed with quotes
'hi'
>>> print("hi") # being *printed* to the screen, so do not show quotes
hi
>>> "'hello'" # string with embedded single quotes
"'hello'"
>>> print("'hello'") # *printing* a string with embedded single quotes
'hello'

If you actually do need to remove leading/trailing quotation marks, use the .strip method of the string to remove single and/or double quotes:

>>> print("""'"hello"'""")
'"hello"'
>>> print("""'"hello"'""".strip('"''))
hello
Answered By: Mark Rushakoff

Here’s one way that will remove all the single quotes in a string.

def remove(x):
    return x.replace("'", "")

Here’s another alternative that will remove the first and last character.

def remove2(x):
    return x[1:-1]
Answered By: recursive