Do you need to create a function that returns a string but you don’t know how? No worries, in sixty seconds, you’ll know! Go! 🚀
A Python function can return any object such as a string. To return a string, create the string object within the function body, assign it to a variable
my_string, and return it to the caller of the function using the keyword operation
return my_string. Or simply create the string within the return expression like so:
return "hello world"
def f(): return 'hello world' f() # hello world
Create String in Function Body
Let’s have a look at another example:
The following code creates a function
create_string() that iterates over all numbers 0, 1, 2, …, 9, appends them to the string
my_string, and returns the string to the caller of the function:
def create_string(): ''' Function to return string ''' my_string = '' for i in range(10): my_string += str(i) return my_string s = create_string() print(s) # 0123456789
Note that you store the resulting string in the variable
s. The local variable
my_string that you created within the function body is only visible within the function but not outside of it.
So, if you try to access the name
my_string, Python will raise a
>>> print(my_string) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> print(my_string) NameError: name 'my_string' is not defined
To fix this, simply assign the return value of the function — a string — to a new variable and access the content of this new variable:
>>> s = create_string() >>> print(s) 0123456789
There are many other ways to return a string in Python.
Return String With List Comprehension
For example, you can use a list comprehension in combination with the
string.join() method instead that is much more concise than the previous code—but creates the same string of digits:
def create_string(): ''' Function to return string ''' return ''.join([str(i) for i in range(10)]) s = create_string() print(s) # 0123456789
For a quick recap on list comprehension, feel free to scroll down to the end of this article.
You can also add some separator strings like so:
def create_string(): ''' Function to return string ''' return ' xxx '.join([str(i) for i in range(10)]) s = create_string() print(s) # 0 xxx 1 xxx 2 xxx 3 xxx 4 xxx 5 xxx 6 xxx 7 xxx 8 xxx 9
Return String with String Concatenation
You can also use a string concatenation and string multiplication statement to create a string dynamically and return it from a function.
Here’s an example of string multiplication:
def create_string(): ''' Function to return string ''' return 'ho' * 10 s = create_string() print(s) # hohohohohohohohohoho
String Concatenation of Function Arguments
Here’s an example of string concatenation that appends all arguments to a given string and returns the result from the function:
def create_string(a, b, c): ''' Function to return string ''' return 'My String: ' + a + b + c s = create_string('python ', 'is ', 'great') print(s) # My String: python is great
Concatenate Arbitrary String Arguments and Return String Result
You can also use dynamic argument lists to be able to add an arbitrary number of string arguments and concatenate all of them:
def create_string(*args): ''' Function to return string ''' return ' '.join(str(x) for x in args) print(create_string('python', 'is', 'great')) # python is great print(create_string(42, 41, 40, 41, 42, 9999, 'hi')) # 42 41 40 41 42 9999 hi
Background List Comprehension
💡 Knowledge: List comprehension is a very useful Python feature that allows you to dynamically create a list by using the syntax
[expression context]. You iterate over all elements in a given context “
for i in range(10)“, and apply a certain expression, e.g., the identity expression
i, before adding the resulting values to the newly-created list.
In case you need to learn more about list comprehension, feel free to check out my explainer video:
Q: How do you tell an introverted computer scientist from an extroverted computer scientist? A: An extroverted computer scientist looks at your shoes when he talks to you.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.