{"id":38223,"date":"2025-08-15T09:52:49","date_gmt":"2025-08-15T16:52:49","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=38223"},"modified":"2025-08-22T12:13:29","modified_gmt":"2025-08-22T19:13:29","slug":"how-to-concatenate-strings-in-python","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/","title":{"rendered":"How to Concatenate Strings in Python"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Question:<\/h3>\n\n\n\n<p>Hi everyone,<\/p>\n\n\n\n<p>I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task involves merging parts of strings, like image names, folder paths, or tags.<\/p>\n\n\n\n<p>Can someone explain how to concatenate strings in Python in a clean and simple way? Bonus points if you can relate it to image filenames or web URLs!<\/p>\n\n\n\n<p>Thanks in advance!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Answer:<\/h3>\n\n\n\n<p>Great question, and very relevant if you&#8217;re working with image paths, filenames, or public URLs!<\/p>\n\n\n\n<p>In Python, concatenating strings just means combining them together into one. There are multiple ways to do it, depending on your use case, and some methods are more efficient or readable than others.<\/p>\n\n\n\n<p>Let\u2019s explore the best techniques with examples tailored to tasks like building Cloudinary image URLs, folder paths, and tags.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: Using the + Operator<\/h2>\n\n\n\n<p>The simplest way to concatenate (join) strings in Python is with the + operator.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">folder = <span class=\"hljs-string\">\"images\/\"<\/span>\n\nfilename = <span class=\"hljs-string\">\"sunset.jpg\"<\/span>\n\nfull_path = folder + filename\n\n<span class=\"hljs-keyword\">print<\/span>(full_path)\n\n<span class=\"hljs-comment\"># Output: images\/sunset.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This method works well when joining a small number of strings. Just make sure all values are actually strings; numbers won\u2019t concatenate directly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common Mistake:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">id = <span class=\"hljs-number\">42<\/span>\ntext = <span class=\"hljs-string\">\"image\"<\/span> + id  <span class=\"hljs-comment\"># This causes an error!<\/span>\n<span class=\"hljs-comment\"># Fix: text = \"image\" + str(id)<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Method 2: Using <code>f-strings<\/code> (Formatted String Literals)<\/h2>\n\n\n\n<p>Introduced in Python 3.6, f-strings are one of the most popular and readable ways to concatenate strings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">image_id = <span class=\"hljs-number\">2025<\/span>\n\nfilename = f<span class=\"hljs-string\">\"cloudinary_image_{image_id}.jpg\"<\/span>\n\n<span class=\"hljs-keyword\">print<\/span>(filename)\n\n<span class=\"hljs-comment\"># Output: cloudinary_image_2025.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can insert variables directly into your string using <code>{}<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real-World Use: Cloudinary URL<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">cloud_name = <span class=\"hljs-string\">\"my-cloud\"<\/span>\n\npublic_id = <span class=\"hljs-string\">\"hero-banner\"<\/span>\n\nurl = f<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/{cloud_name}\/image\/upload\/{public_id}.jpg\"<\/span>\n\n<span class=\"hljs-keyword\">print<\/span>(url)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Method 3: Using <code>.join()<\/code> for Multiple Strings<\/h2>\n\n\n\n<p>If you\u2019re combining a list of strings, use the <code>.join()<\/code> method. It&#8217;s more efficient and cleaner than repeated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">tags = &#91;<span class=\"hljs-string\">\"summer\"<\/span>, <span class=\"hljs-string\">\"beach\"<\/span>, <span class=\"hljs-string\">\"clouds\"<\/span>]\n\ntag_string = <span class=\"hljs-string\">\",\"<\/span>.join(tags)\n\n<span class=\"hljs-keyword\">print<\/span>(tag_string)\n\n<span class=\"hljs-comment\"># Output: summer,beach,clouds<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Use Case: Send Tags to Cloudinary Upload API<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">upload_options = {\n\n\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-string\">\"tags\"<\/span>: <span class=\"hljs-string\">\",\"<\/span>.join(&#91;<span class=\"hljs-string\">\"portrait\"<\/span>, <span class=\"hljs-string\">\"hdr\"<\/span>, <span class=\"hljs-string\">\"profile\"<\/span>]),\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Method 4: Using <code>format()<\/code><\/h2>\n\n\n\n<p>The older <code>.format()<\/code> method still works and is useful when you can\u2019t use f-strings (e.g., Python &lt;3.6).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">file = <span class=\"hljs-string\">\"{}_{}.{}\"<\/span>.format(<span class=\"hljs-string\">\"holiday\"<\/span>, <span class=\"hljs-number\">2024<\/span>, <span class=\"hljs-string\">\"jpg\"<\/span>)\n\n<span class=\"hljs-keyword\">print<\/span>(file)\n\n<span class=\"hljs-comment\"># Output: holiday_2024.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Combine With Other Data Types<\/h2>\n\n\n\n<p>If you&#8217;re working with image metadata like resolution, timestamp, or user ID, you often need to merge strings with numbers.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">width = <span class=\"hljs-number\">1080<\/span>\n\nheight = <span class=\"hljs-number\">720<\/span>\n\nfilename = f<span class=\"hljs-string\">\"image_{width}x{height}.jpg\"<\/span>\n\n<span class=\"hljs-keyword\">print<\/span>(filename)\n\n<span class=\"hljs-comment\"># Output:\u00a0 image_1080x720.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Bonus: Concatenate Strings in a Loop<\/h2>\n\n\n\n<p>If you\u2019re generating a batch of filenames:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-keyword\">for<\/span> i in range(<span class=\"hljs-number\">3<\/span>):\n\n\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"photo_{i}.jpg\"<\/span>)\n\n<span class=\"hljs-comment\"># Output:\u00a0<\/span>\n\nphoto_0.jpg\u00a0\u00a0\n\nphoto_1.jpg\u00a0\u00a0\n\nphoto_2.jpg<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Or collect them into a list:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">image_list = &#91;f<span class=\"hljs-string\">\"img_{i}.jpg\"<\/span> <span class=\"hljs-keyword\">for<\/span> i in range(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">6<\/span>)]\n\n<span class=\"hljs-keyword\">print<\/span>(image_list)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Advanced Use Case: Build Transformation URLs for Cloudinary<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">cloud_name = <span class=\"hljs-string\">\"mycloud\"<\/span>\n\npublic_id = <span class=\"hljs-string\">\"product123\"<\/span>\n\ntransformation = <span class=\"hljs-string\">\"w_800,h_600,c_fill\"<\/span>\n\nurl = f<span class=\"hljs-string\">\"https:\/\/res.cloudinary.com\/{cloud_name}\/image\/upload\/{transformation}\/{public_id}.jpg\"<\/span>\n\n<span class=\"hljs-keyword\">print<\/span>(url)\n\n<span class=\"hljs-comment\"># Output: https:\/\/res.cloudinary.com\/mycloud\/image\/upload\/w_800,h_600,c_fill\/product123.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>String concatenation is at the heart of building dynamic URLs like this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Clean Concatenation Tips<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Task<\/strong><\/td><td><strong>Best Method<\/strong><\/td><\/tr><tr><td>Combine a few strings<\/td><td><code>+<\/code>or f-strings<\/td><\/tr><tr><td>Build dynamic filenames<\/td><td>f-strings<\/td><\/tr><tr><td>Join list of tags<\/td><td><code>\",\".join(tags)<\/code><\/td><\/tr><tr><td>Add numbers to strings<\/td><td>f-strings or <code>str()<\/code><\/td><\/tr><tr><td>Older Python compatibility<\/td><td><code>.format()<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pitfalls to Avoid<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mixing strings with integers without casting <\/strong><code>.str()<\/code> is your friend.<\/li>\n\n\n\n<li><strong>Using + in loops with lots of strings. <\/strong>Use <code>.join()<\/code> instead.<\/li>\n\n\n\n<li><strong>Forgetting to include separators <\/strong>like slashes or commas<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary: Python Concatenate Strings<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Method<\/strong><\/td><td><strong>Example Code<\/strong><\/td><td><strong>Best For<\/strong><\/td><\/tr><tr><td><code>+<\/code><\/td><td><code>\"image_\" + str(id) + \".jpg\"<\/code><\/td><td>Quick joins<\/td><\/tr><tr><td><code>f-string<\/code><\/td><td><code>f\"image_{id}.jpg\"<\/code><\/td><td>Readable dynamic strings<\/td><\/tr><tr><td><code>.join()<\/code><\/td><td><code>\",\".join([\"tag1\", \"tag2\"])<\/code><\/td><td>Joining lists<\/td><\/tr><tr><td><code>.format()<\/code><\/td><td><code>\"{}-{}.jpg\".format(name, size)<\/code><\/td><td>Compatibility with older Python<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Final Thoughts<\/h2>\n\n\n\n<p>Whether you\u2019re uploading images to Cloudinary, naming files, generating URLs, or formatting data, string concatenation is a fundamental skill in Python. For modern, readable code, we recommend f-strings. They\u2019re fast, clear, and perfect for working with filenames, tags, or even full asset URLs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task involves merging parts of strings, like image names, folder paths, or tags. Can someone explain how to concatenate strings in Python in a clean and simple way? Bonus points if you can [&hellip;]<\/p>\n","protected":false},"author":112,"featured_media":38341,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[423],"class_list":["post-38223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-questions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Concatenate Strings in Python<\/title>\n<meta name=\"description\" content=\"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Concatenate Strings in Python\" \/>\n<meta property=\"og:description\" content=\"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-15T16:52:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-22T19:13:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"jeromehidalgosanz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\"},\"author\":{\"name\":\"jeromehidalgosanz\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/87d542a9f3b665a624072d59748ecce1\"},\"headline\":\"How to Concatenate Strings in Python\",\"datePublished\":\"2025-08-15T16:52:49+00:00\",\"dateModified\":\"2025-08-22T19:13:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\"},\"wordCount\":467,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA\",\"keywords\":[\"Questions\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\",\"url\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\",\"name\":\"How to Concatenate Strings in Python\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA\",\"datePublished\":\"2025-08-15T16:52:49+00:00\",\"dateModified\":\"2025-08-22T19:13:29+00:00\",\"description\":\"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Concatenate Strings in Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/87d542a9f3b665a624072d59748ecce1\",\"name\":\"jeromehidalgosanz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/21bd8bba3087dbeff42280210669b975ea98b59ca9f427e828f4b59c4bae58dd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/21bd8bba3087dbeff42280210669b975ea98b59ca9f427e828f4b59c4bae58dd?s=96&d=mm&r=g\",\"caption\":\"jeromehidalgosanz\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Concatenate Strings in Python","description":"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How to Concatenate Strings in Python","og_description":"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task","og_url":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/","og_site_name":"Cloudinary Blog","article_published_time":"2025-08-15T16:52:49+00:00","article_modified_time":"2025-08-22T19:13:29+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","type":"image\/jpeg"}],"author":"jeromehidalgosanz","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/"},"author":{"name":"jeromehidalgosanz","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/87d542a9f3b665a624072d59748ecce1"},"headline":"How to Concatenate Strings in Python","datePublished":"2025-08-15T16:52:49+00:00","dateModified":"2025-08-22T19:13:29+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/"},"wordCount":467,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","keywords":["Questions"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/","url":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/","name":"How to Concatenate Strings in Python","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","datePublished":"2025-08-15T16:52:49+00:00","dateModified":"2025-08-22T19:13:29+00:00","description":"Question: Hi everyone, I\u2019m learning Python while working on a project that involves generating dynamic image URLs using Cloudinary. Part of my task","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/questions\/how-to-concatenate-strings-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Concatenate Strings in Python"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/87d542a9f3b665a624072d59748ecce1","name":"jeromehidalgosanz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/21bd8bba3087dbeff42280210669b975ea98b59ca9f427e828f4b59c4bae58dd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21bd8bba3087dbeff42280210669b975ea98b59ca9f427e828f4b59c4bae58dd?s=96&d=mm&r=g","caption":"jeromehidalgosanz"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1756252703\/blog-generic_python\/blog-generic_python.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/112"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=38223"}],"version-history":[{"count":2,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38223\/revisions"}],"predecessor-version":[{"id":38433,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38223\/revisions\/38433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/38341"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=38223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=38223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=38223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}