[{"data":1,"prerenderedAt":1953},["ShallowReactive",2],{"doc-\u002Fhow-to\u002Fhow-to-format-strings-in-python":3},{"id":4,"title":5,"body":6,"description":1946,"extension":1947,"meta":1948,"navigation":300,"path":1949,"seo":1950,"stem":1951,"__hash__":1952},"content\u002Fhow-to\u002Fhow-to-format-strings-in-python.md","How to Format Strings in Python",{"type":7,"value":8,"toc":1913},"minimark",[9,13,17,20,28,33,134,139,170,173,177,180,193,196,223,226,243,252,256,263,269,340,344,363,366,455,459,486,489,503,506,510,513,516,555,559,576,582,600,603,617,620,659,663,678,686,693,701,781,785,810,813,816,877,881,906,917,921,927,996,1000,1009,1012,1015,1063,1067,1081,1100,1103,1107,1110,1132,1135,1163,1166,1210,1214,1263,1267,1318,1321,1325,1328,1335,1341,1384,1388,1408,1413,1459,1465,1468,1508,1518,1521,1565,1568,1610,1617,1623,1626,1678,1681,1684,1692,1695,1738,1742,1755,1762,1765,1830,1834,1838,1841,1845,1851,1858,1861,1870,1878,1882,1909],[10,11,5],"h1",{"id":12},"how-to-format-strings-in-python",[14,15,16],"p",{},"String formatting in Python means putting values into text.",[14,18,19],{},"This is useful when you want to build messages, labels, filenames, or printed output. For example, you might want to combine text with variables like a name, price, or age.",[14,21,22,23,27],{},"For most beginners, the best option is an ",[24,25,26],"strong",{},"f-string"," because it is simple and easy to read.",[29,30,32],"h2",{"id":31},"quick-answer","Quick answer",[34,35,40],"pre",{"className":36,"code":37,"language":38,"meta":39,"style":39},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","name = \"Sam\"\nage = 25\nmessage = f\"My name is {name} and I am {age} years old.\"\nprint(message)\n","python","",[41,42,43,67,79,116],"code",{"__ignoreMap":39},[44,45,48,52,56,60,64],"span",{"class":46,"line":47},"line",1,[44,49,51],{"class":50},"su5hD","name ",[44,53,55],{"class":54},"smGrS","=",[44,57,59],{"class":58},"sjJ54"," \"",[44,61,63],{"class":62},"s_sjI","Sam",[44,65,66],{"class":58},"\"\n",[44,68,70,73,75],{"class":46,"line":69},2,[44,71,72],{"class":50},"age ",[44,74,55],{"class":54},[44,76,78],{"class":77},"srdBf"," 25\n",[44,80,82,85,87,91,94,97,100,103,106,108,111,113],{"class":46,"line":81},3,[44,83,84],{"class":50},"message ",[44,86,55],{"class":54},[44,88,90],{"class":89},"sbsja"," f",[44,92,93],{"class":62},"\"My name is ",[44,95,96],{"class":77},"{",[44,98,99],{"class":50},"name",[44,101,102],{"class":77},"}",[44,104,105],{"class":62}," and I am ",[44,107,96],{"class":77},[44,109,110],{"class":50},"age",[44,112,102],{"class":77},[44,114,115],{"class":62}," years old.\"\n",[44,117,119,123,127,131],{"class":46,"line":118},4,[44,120,122],{"class":121},"sptTA","print",[44,124,126],{"class":125},"sP7_E","(",[44,128,130],{"class":129},"slqww","message",[44,132,133],{"class":125},")\n",[14,135,136],{},[24,137,138],{},"Output:",[34,140,142],{"className":36,"code":141,"language":38,"meta":39,"style":39},"My name is Sam and I am 25 years old.\n",[41,143,144],{"__ignoreMap":39},[44,145,146,149,152,155,158,161,164,167],{"class":46,"line":47},[44,147,148],{"class":50},"My name ",[44,150,151],{"class":54},"is",[44,153,154],{"class":50}," Sam ",[44,156,157],{"class":54},"and",[44,159,160],{"class":50}," I am ",[44,162,163],{"class":77},"25",[44,165,166],{"class":50}," years old",[44,168,169],{"class":125},".\n",[14,171,172],{},"Use an f-string for the simplest and most readable way to insert values into text.",[29,174,176],{"id":175},"what-string-formatting-means","What string formatting means",[14,178,179],{},"String formatting means:",[181,182,183,187,190],"ul",{},[184,185,186],"li",{},"Putting values into a string",[184,188,189],{},"Combining text and variables",[184,191,192],{},"Creating clear output for users or for yourself",[14,194,195],{},"For example, if you have variables like this:",[34,197,199],{"className":36,"code":198,"language":38,"meta":39,"style":39},"name = \"Mia\"\nage = 30\n",[41,200,201,214],{"__ignoreMap":39},[44,202,203,205,207,209,212],{"class":46,"line":47},[44,204,51],{"class":50},[44,206,55],{"class":54},[44,208,59],{"class":58},[44,210,211],{"class":62},"Mia",[44,213,66],{"class":58},[44,215,216,218,220],{"class":46,"line":69},[44,217,72],{"class":50},[44,219,55],{"class":54},[44,221,222],{"class":77}," 30\n",[14,224,225],{},"You may want to create a message like:",[34,227,229],{"className":36,"code":228,"language":38,"meta":39,"style":39},"\"Mia is 30 years old.\"\n",[41,230,231],{"__ignoreMap":39},[44,232,233,237,241],{"class":46,"line":47},[44,234,236],{"class":235},"s2W-s","\"",[44,238,240],{"class":239},"sithA","Mia is 30 years old.",[44,242,66],{"class":235},[14,244,245,246,251],{},"If you are new to strings, see ",[247,248,250],"a",{"href":249},"\u002Flearn\u002Fpython-strings-explained-basics-and-examples","Python strings explained with basics and examples",".",[29,253,255],{"id":254},"use-f-strings-for-most-cases","Use f-strings for most cases",[14,257,258,259,262],{},"An f-string is a string with an ",[41,260,261],{},"f"," before the opening quote.",[14,264,265,266,251],{},"Inside the string, put variables or expressions in curly braces ",[41,267,268],{},"{}",[34,270,272],{"className":36,"code":271,"language":38,"meta":39,"style":39},"name = \"Alex\"\nage = 19\n\nmessage = f\"{name} is {age} years old.\"\nprint(message)\n",[41,273,274,287,296,302,329],{"__ignoreMap":39},[44,275,276,278,280,282,285],{"class":46,"line":47},[44,277,51],{"class":50},[44,279,55],{"class":54},[44,281,59],{"class":58},[44,283,284],{"class":62},"Alex",[44,286,66],{"class":58},[44,288,289,291,293],{"class":46,"line":69},[44,290,72],{"class":50},[44,292,55],{"class":54},[44,294,295],{"class":77}," 19\n",[44,297,298],{"class":46,"line":81},[44,299,301],{"emptyLinePlaceholder":300},true,"\n",[44,303,304,306,308,310,312,314,316,318,321,323,325,327],{"class":46,"line":118},[44,305,84],{"class":50},[44,307,55],{"class":54},[44,309,90],{"class":89},[44,311,236],{"class":62},[44,313,96],{"class":77},[44,315,99],{"class":50},[44,317,102],{"class":77},[44,319,320],{"class":62}," is ",[44,322,96],{"class":77},[44,324,110],{"class":50},[44,326,102],{"class":77},[44,328,115],{"class":62},[44,330,332,334,336,338],{"class":46,"line":331},5,[44,333,122],{"class":121},[44,335,126],{"class":125},[44,337,130],{"class":129},[44,339,133],{"class":125},[14,341,342],{},[24,343,138],{},[34,345,347],{"className":36,"code":346,"language":38,"meta":39,"style":39},"Alex is 19 years old.\n",[41,348,349],{"__ignoreMap":39},[44,350,351,354,356,359,361],{"class":46,"line":47},[44,352,353],{"class":50},"Alex ",[44,355,151],{"class":54},[44,357,358],{"class":77}," 19",[44,360,166],{"class":50},[44,362,169],{"class":125},[14,364,365],{},"You can also use simple expressions inside the braces:",[34,367,369],{"className":36,"code":368,"language":38,"meta":39,"style":39},"item = \"notebook\"\nprice = 2.5\nquantity = 4\n\nmessage = f\"Total for {item}: ${price * quantity}\"\nprint(message)\n",[41,370,371,385,395,405,409,444],{"__ignoreMap":39},[44,372,373,376,378,380,383],{"class":46,"line":47},[44,374,375],{"class":50},"item ",[44,377,55],{"class":54},[44,379,59],{"class":58},[44,381,382],{"class":62},"notebook",[44,384,66],{"class":58},[44,386,387,390,392],{"class":46,"line":69},[44,388,389],{"class":50},"price ",[44,391,55],{"class":54},[44,393,394],{"class":77}," 2.5\n",[44,396,397,400,402],{"class":46,"line":81},[44,398,399],{"class":50},"quantity ",[44,401,55],{"class":54},[44,403,404],{"class":77}," 4\n",[44,406,407],{"class":46,"line":118},[44,408,301],{"emptyLinePlaceholder":300},[44,410,411,413,415,417,420,422,425,427,430,432,434,437,440,442],{"class":46,"line":331},[44,412,84],{"class":50},[44,414,55],{"class":54},[44,416,90],{"class":89},[44,418,419],{"class":62},"\"Total for ",[44,421,96],{"class":77},[44,423,424],{"class":50},"item",[44,426,102],{"class":77},[44,428,429],{"class":62},": $",[44,431,96],{"class":77},[44,433,389],{"class":50},[44,435,436],{"class":54},"*",[44,438,439],{"class":50}," quantity",[44,441,102],{"class":77},[44,443,66],{"class":62},[44,445,447,449,451,453],{"class":46,"line":446},6,[44,448,122],{"class":121},[44,450,126],{"class":125},[44,452,130],{"class":129},[44,454,133],{"class":125},[14,456,457],{},[24,458,138],{},[34,460,462],{"className":36,"code":461,"language":38,"meta":39,"style":39},"Total for notebook: $10.0\n",[41,463,464],{"__ignoreMap":39},[44,465,466,469,473,476,479,483],{"class":46,"line":47},[44,467,468],{"class":50},"Total ",[44,470,472],{"class":471},"sVHd0","for",[44,474,475],{"class":50}," notebook",[44,477,478],{"class":125},":",[44,480,482],{"class":481},"srjyR"," $",[44,484,485],{"class":77},"10.0\n",[14,487,488],{},"Why f-strings are usually the best choice:",[181,490,491,494,497,500],{},[184,492,493],{},"Easy to read",[184,495,496],{},"Short and clear",[184,498,499],{},"Good for beginners",[184,501,502],{},"Common in modern Python code",[14,504,505],{},"f-strings work in Python 3.6 and later.",[29,507,509],{"id":508},"format-numbers-inside-f-strings","Format numbers inside f-strings",[14,511,512],{},"You can control how numbers appear inside an f-string.",[14,514,515],{},"A common example is showing 2 decimal places:",[34,517,519],{"className":36,"code":518,"language":38,"meta":39,"style":39},"price = 3.456\nprint(f\"Price: ${price:.2f}\")\n",[41,520,521,530],{"__ignoreMap":39},[44,522,523,525,527],{"class":46,"line":47},[44,524,389],{"class":50},[44,526,55],{"class":54},[44,528,529],{"class":77}," 3.456\n",[44,531,532,534,536,538,541,543,546,549,551,553],{"class":46,"line":69},[44,533,122],{"class":121},[44,535,126],{"class":125},[44,537,261],{"class":89},[44,539,540],{"class":62},"\"Price: $",[44,542,96],{"class":77},[44,544,545],{"class":129},"price",[44,547,548],{"class":89},":.2f",[44,550,102],{"class":77},[44,552,236],{"class":62},[44,554,133],{"class":125},[14,556,557],{},[24,558,138],{},[34,560,562],{"className":36,"code":561,"language":38,"meta":39,"style":39},"Price: $3.46\n",[41,563,564],{"__ignoreMap":39},[44,565,566,569,571,573],{"class":46,"line":47},[44,567,568],{"class":50},"Price",[44,570,478],{"class":125},[44,572,482],{"class":481},[44,574,575],{"class":77},"3.46\n",[14,577,578,579,581],{},"Here, ",[41,580,548],{}," means:",[181,583,584,589,595],{},[184,585,586,588],{},[41,587,478],{}," starts the format part",[184,590,591,594],{},[41,592,593],{},".2"," means 2 digits after the decimal point",[184,596,597,599],{},[41,598,261],{}," means format as a floating-point number",[14,601,602],{},"This is useful for:",[181,604,605,608,611,614],{},[184,606,607],{},"Money",[184,609,610],{},"Averages",[184,612,613],{},"Percentages",[184,615,616],{},"Scores",[14,618,619],{},"Another example:",[34,621,623],{"className":36,"code":622,"language":38,"meta":39,"style":39},"average = 87.1289\nprint(f\"Average score: {average:.2f}\")\n",[41,624,625,635],{"__ignoreMap":39},[44,626,627,630,632],{"class":46,"line":47},[44,628,629],{"class":50},"average ",[44,631,55],{"class":54},[44,633,634],{"class":77}," 87.1289\n",[44,636,637,639,641,643,646,648,651,653,655,657],{"class":46,"line":69},[44,638,122],{"class":121},[44,640,126],{"class":125},[44,642,261],{"class":89},[44,644,645],{"class":62},"\"Average score: ",[44,647,96],{"class":77},[44,649,650],{"class":129},"average",[44,652,548],{"class":89},[44,654,102],{"class":77},[44,656,236],{"class":62},[44,658,133],{"class":125},[14,660,661],{},[24,662,138],{},[34,664,666],{"className":36,"code":665,"language":38,"meta":39,"style":39},"Average score: 87.13\n",[41,667,668],{"__ignoreMap":39},[44,669,670,673,675],{"class":46,"line":47},[44,671,672],{"class":50},"Average score",[44,674,478],{"class":125},[44,676,677],{"class":77}," 87.13\n",[29,679,681,682,685],{"id":680},"use-strformat-if-needed","Use ",[41,683,684],{},"str.format()"," if needed",[14,687,688,689,692],{},"Another way to format strings is with the ",[41,690,691],{},".format()"," method.",[14,694,695,696,698,699,251],{},"You place ",[41,697,268],{}," inside the string, then pass values to ",[41,700,691],{},[34,702,704],{"className":36,"code":703,"language":38,"meta":39,"style":39},"name = \"Lena\"\nage = 22\n\nmessage = \"My name is {} and I am {} years old.\".format(name, age)\nprint(message)\n",[41,705,706,719,728,732,771],{"__ignoreMap":39},[44,707,708,710,712,714,717],{"class":46,"line":47},[44,709,51],{"class":50},[44,711,55],{"class":54},[44,713,59],{"class":58},[44,715,716],{"class":62},"Lena",[44,718,66],{"class":58},[44,720,721,723,725],{"class":46,"line":69},[44,722,72],{"class":50},[44,724,55],{"class":54},[44,726,727],{"class":77}," 22\n",[44,729,730],{"class":46,"line":81},[44,731,301],{"emptyLinePlaceholder":300},[44,733,734,736,738,740,743,745,747,749,752,754,756,759,761,763,766,769],{"class":46,"line":118},[44,735,84],{"class":50},[44,737,55],{"class":54},[44,739,59],{"class":58},[44,741,742],{"class":62},"My name is ",[44,744,268],{"class":77},[44,746,105],{"class":62},[44,748,268],{"class":77},[44,750,751],{"class":62}," years old.",[44,753,236],{"class":58},[44,755,251],{"class":125},[44,757,758],{"class":129},"format",[44,760,126],{"class":125},[44,762,99],{"class":129},[44,764,765],{"class":125},",",[44,767,768],{"class":129}," age",[44,770,133],{"class":125},[44,772,773,775,777,779],{"class":46,"line":331},[44,774,122],{"class":121},[44,776,126],{"class":125},[44,778,130],{"class":129},[44,780,133],{"class":125},[14,782,783],{},[24,784,138],{},[34,786,788],{"className":36,"code":787,"language":38,"meta":39,"style":39},"My name is Lena and I am 22 years old.\n",[41,789,790],{"__ignoreMap":39},[44,791,792,794,796,799,801,803,806,808],{"class":46,"line":47},[44,793,148],{"class":50},[44,795,151],{"class":54},[44,797,798],{"class":50}," Lena ",[44,800,157],{"class":54},[44,802,160],{"class":50},[44,804,805],{"class":77},"22",[44,807,166],{"class":50},[44,809,169],{"class":125},[14,811,812],{},"This style is older than f-strings, but you will still see it in many examples and existing code.",[14,814,815],{},"You can also use numbered placeholders:",[34,817,819],{"className":36,"code":818,"language":38,"meta":39,"style":39},"message = \"First: {0}, Second: {1}\".format(\"apple\", \"banana\")\nprint(message)\n",[41,820,821,867],{"__ignoreMap":39},[44,822,823,825,827,829,832,835,838,841,843,845,847,849,851,854,856,858,860,863,865],{"class":46,"line":47},[44,824,84],{"class":50},[44,826,55],{"class":54},[44,828,59],{"class":58},[44,830,831],{"class":62},"First: ",[44,833,834],{"class":77},"{0}",[44,836,837],{"class":62},", Second: ",[44,839,840],{"class":77},"{1}",[44,842,236],{"class":58},[44,844,251],{"class":125},[44,846,758],{"class":129},[44,848,126],{"class":125},[44,850,236],{"class":58},[44,852,853],{"class":62},"apple",[44,855,236],{"class":58},[44,857,765],{"class":125},[44,859,59],{"class":58},[44,861,862],{"class":62},"banana",[44,864,236],{"class":58},[44,866,133],{"class":125},[44,868,869,871,873,875],{"class":46,"line":69},[44,870,122],{"class":121},[44,872,126],{"class":125},[44,874,130],{"class":129},[44,876,133],{"class":125},[14,878,879],{},[24,880,138],{},[34,882,884],{"className":36,"code":883,"language":38,"meta":39,"style":39},"First: apple, Second: banana\n",[41,885,886],{"__ignoreMap":39},[44,887,888,891,893,896,898,901,903],{"class":46,"line":47},[44,889,890],{"class":50},"First",[44,892,478],{"class":125},[44,894,895],{"class":50}," apple",[44,897,765],{"class":125},[44,899,900],{"class":50}," Second",[44,902,478],{"class":125},[44,904,905],{"class":50}," banana\n",[14,907,908,909,251],{},"If you want a method-focused explanation, see ",[247,910,912,913,916],{"href":911},"\u002Freference\u002Fpython-string-format-method","Python string ",[41,914,915],{},"format()"," method",[29,918,920],{"id":919},"use-concatenation-only-for-simple-cases","Use concatenation only for simple cases",[14,922,923,924,251],{},"Concatenation means joining strings with ",[41,925,926],{},"+",[34,928,930],{"className":36,"code":929,"language":38,"meta":39,"style":39},"first_name = \"Sam\"\nlast_name = \"Lee\"\n\nfull_name = first_name + \" \" + last_name\nprint(full_name)\n",[41,931,932,945,959,963,985],{"__ignoreMap":39},[44,933,934,937,939,941,943],{"class":46,"line":47},[44,935,936],{"class":50},"first_name ",[44,938,55],{"class":54},[44,940,59],{"class":58},[44,942,63],{"class":62},[44,944,66],{"class":58},[44,946,947,950,952,954,957],{"class":46,"line":69},[44,948,949],{"class":50},"last_name ",[44,951,55],{"class":54},[44,953,59],{"class":58},[44,955,956],{"class":62},"Lee",[44,958,66],{"class":58},[44,960,961],{"class":46,"line":81},[44,962,301],{"emptyLinePlaceholder":300},[44,964,965,968,970,973,975,977,979,982],{"class":46,"line":118},[44,966,967],{"class":50},"full_name ",[44,969,55],{"class":54},[44,971,972],{"class":50}," first_name ",[44,974,926],{"class":54},[44,976,59],{"class":58},[44,978,59],{"class":58},[44,980,981],{"class":54}," +",[44,983,984],{"class":50}," last_name\n",[44,986,987,989,991,994],{"class":46,"line":331},[44,988,122],{"class":121},[44,990,126],{"class":125},[44,992,993],{"class":129},"full_name",[44,995,133],{"class":125},[14,997,998],{},[24,999,138],{},[34,1001,1003],{"className":36,"code":1002,"language":38,"meta":39,"style":39},"Sam Lee\n",[41,1004,1005],{"__ignoreMap":39},[44,1006,1007],{"class":46,"line":47},[44,1008,1002],{"class":50},[14,1010,1011],{},"This works well for very small string joins.",[14,1013,1014],{},"But if one value is not already a string, you must convert it first:",[34,1016,1018],{"className":36,"code":1017,"language":38,"meta":39,"style":39},"age = 25\nmessage = \"Age: \" + str(age)\nprint(message)\n",[41,1019,1020,1028,1053],{"__ignoreMap":39},[44,1021,1022,1024,1026],{"class":46,"line":47},[44,1023,72],{"class":50},[44,1025,55],{"class":54},[44,1027,78],{"class":77},[44,1029,1030,1032,1034,1036,1039,1041,1043,1047,1049,1051],{"class":46,"line":69},[44,1031,84],{"class":50},[44,1033,55],{"class":54},[44,1035,59],{"class":58},[44,1037,1038],{"class":62},"Age: ",[44,1040,236],{"class":58},[44,1042,981],{"class":54},[44,1044,1046],{"class":1045},"sZMiF"," str",[44,1048,126],{"class":125},[44,1050,110],{"class":129},[44,1052,133],{"class":125},[44,1054,1055,1057,1059,1061],{"class":46,"line":81},[44,1056,122],{"class":121},[44,1058,126],{"class":125},[44,1060,130],{"class":129},[44,1062,133],{"class":125},[14,1064,1065],{},[24,1066,138],{},[34,1068,1070],{"className":36,"code":1069,"language":38,"meta":39,"style":39},"Age: 25\n",[41,1071,1072],{"__ignoreMap":39},[44,1073,1074,1077,1079],{"class":46,"line":47},[44,1075,1076],{"class":50},"Age",[44,1078,478],{"class":125},[44,1080,78],{"class":77},[14,1082,1083,1084,1087,1088,1095,1096,251],{},"The ",[41,1085,1086],{},"str()"," function converts a value to a string. If needed, read ",[247,1089,1091,1092,1094],{"href":1090},"\u002Freference\u002Fpython-str-function-explained","Python ",[41,1093,1086],{}," function explained"," or ",[247,1097,1099],{"href":1098},"\u002Fhow-to\u002Fhow-to-convert-int-to-string-in-python\u002F","how to convert an int to a string in Python",[14,1101,1102],{},"For larger messages, concatenation is usually less readable than f-strings.",[29,1104,1106],{"id":1105},"choose-the-right-method","Choose the right method",[14,1108,1109],{},"A simple rule:",[181,1111,1112,1118,1125],{},[184,1113,681,1114,1117],{},[24,1115,1116],{},"f-strings"," for most new Python code",[184,1119,681,1120,1124],{},[24,1121,1122],{},[41,1123,691],{}," when reading or updating older code",[184,1126,681,1127,1131],{},[24,1128,1129],{},[41,1130,926],{}," only for very small string joins",[14,1133,1134],{},"Here is the same message written all 3 ways:",[34,1136,1138],{"className":36,"code":1137,"language":38,"meta":39,"style":39},"name = \"Nora\"\nscore = 95\n",[41,1139,1140,1153],{"__ignoreMap":39},[44,1141,1142,1144,1146,1148,1151],{"class":46,"line":47},[44,1143,51],{"class":50},[44,1145,55],{"class":54},[44,1147,59],{"class":58},[44,1149,1150],{"class":62},"Nora",[44,1152,66],{"class":58},[44,1154,1155,1158,1160],{"class":46,"line":69},[44,1156,1157],{"class":50},"score ",[44,1159,55],{"class":54},[44,1161,1162],{"class":77}," 95\n",[1164,1165,26],"h3",{"id":26},[34,1167,1169],{"className":36,"code":1168,"language":38,"meta":39,"style":39},"message = f\"{name} scored {score} points.\"\nprint(message)\n",[41,1170,1171,1200],{"__ignoreMap":39},[44,1172,1173,1175,1177,1179,1181,1183,1185,1187,1190,1192,1195,1197],{"class":46,"line":47},[44,1174,84],{"class":50},[44,1176,55],{"class":54},[44,1178,90],{"class":89},[44,1180,236],{"class":62},[44,1182,96],{"class":77},[44,1184,99],{"class":50},[44,1186,102],{"class":77},[44,1188,1189],{"class":62}," scored ",[44,1191,96],{"class":77},[44,1193,1194],{"class":50},"score",[44,1196,102],{"class":77},[44,1198,1199],{"class":62}," points.\"\n",[44,1201,1202,1204,1206,1208],{"class":46,"line":69},[44,1203,122],{"class":121},[44,1205,126],{"class":125},[44,1207,130],{"class":129},[44,1209,133],{"class":125},[1164,1211,1212],{"id":758},[41,1213,691],{},[34,1215,1217],{"className":36,"code":1216,"language":38,"meta":39,"style":39},"message = \"{} scored {} points.\".format(name, score)\nprint(message)\n",[41,1218,1219,1253],{"__ignoreMap":39},[44,1220,1221,1223,1225,1227,1229,1231,1233,1236,1238,1240,1242,1244,1246,1248,1251],{"class":46,"line":47},[44,1222,84],{"class":50},[44,1224,55],{"class":54},[44,1226,59],{"class":58},[44,1228,268],{"class":77},[44,1230,1189],{"class":62},[44,1232,268],{"class":77},[44,1234,1235],{"class":62}," points.",[44,1237,236],{"class":58},[44,1239,251],{"class":125},[44,1241,758],{"class":129},[44,1243,126],{"class":125},[44,1245,99],{"class":129},[44,1247,765],{"class":125},[44,1249,1250],{"class":129}," score",[44,1252,133],{"class":125},[44,1254,1255,1257,1259,1261],{"class":46,"line":69},[44,1256,122],{"class":121},[44,1258,126],{"class":125},[44,1260,130],{"class":129},[44,1262,133],{"class":125},[1164,1264,1266],{"id":1265},"concatenation","Concatenation",[34,1268,1270],{"className":36,"code":1269,"language":38,"meta":39,"style":39},"message = name + \" scored \" + str(score) + \" points.\"\nprint(message)\n",[41,1271,1272,1308],{"__ignoreMap":39},[44,1273,1274,1276,1278,1281,1283,1285,1287,1289,1291,1293,1295,1297,1300,1302,1304,1306],{"class":46,"line":47},[44,1275,84],{"class":50},[44,1277,55],{"class":54},[44,1279,1280],{"class":50}," name ",[44,1282,926],{"class":54},[44,1284,59],{"class":58},[44,1286,1189],{"class":62},[44,1288,236],{"class":58},[44,1290,981],{"class":54},[44,1292,1046],{"class":1045},[44,1294,126],{"class":125},[44,1296,1194],{"class":129},[44,1298,1299],{"class":125},")",[44,1301,981],{"class":54},[44,1303,59],{"class":58},[44,1305,1235],{"class":62},[44,1307,66],{"class":58},[44,1309,1310,1312,1314,1316],{"class":46,"line":69},[44,1311,122],{"class":121},[44,1313,126],{"class":125},[44,1315,130],{"class":129},[44,1317,133],{"class":125},[14,1319,1320],{},"All 3 work, but the f-string version is usually the easiest to read.",[29,1322,1324],{"id":1323},"common-errors-when-formatting-strings","Common errors when formatting strings",[14,1326,1327],{},"Here are some common mistakes beginners make.",[1164,1329,1331,1332,1334],{"id":1330},"forgetting-the-f-before-an-f-string","Forgetting the ",[41,1333,261],{}," before an f-string",[14,1336,1337,1338,1340],{},"If you forget the ",[41,1339,261],{},", Python does not replace the values.",[34,1342,1344],{"className":36,"code":1343,"language":38,"meta":39,"style":39},"name = \"Sam\"\nmessage = \"Hello, {name}\"\nprint(message)\n",[41,1345,1346,1358,1374],{"__ignoreMap":39},[44,1347,1348,1350,1352,1354,1356],{"class":46,"line":47},[44,1349,51],{"class":50},[44,1351,55],{"class":54},[44,1353,59],{"class":58},[44,1355,63],{"class":62},[44,1357,66],{"class":58},[44,1359,1360,1362,1364,1366,1369,1372],{"class":46,"line":69},[44,1361,84],{"class":50},[44,1363,55],{"class":54},[44,1365,59],{"class":58},[44,1367,1368],{"class":62},"Hello, ",[44,1370,1371],{"class":77},"{name}",[44,1373,66],{"class":58},[44,1375,1376,1378,1380,1382],{"class":46,"line":81},[44,1377,122],{"class":121},[44,1379,126],{"class":125},[44,1381,130],{"class":129},[44,1383,133],{"class":125},[14,1385,1386],{},[24,1387,138],{},[34,1389,1391],{"className":36,"code":1390,"language":38,"meta":39,"style":39},"Hello, {name}\n",[41,1392,1393],{"__ignoreMap":39},[44,1394,1395,1398,1400,1403,1405],{"class":46,"line":47},[44,1396,1397],{"class":50},"Hello",[44,1399,765],{"class":125},[44,1401,1402],{"class":125}," {",[44,1404,99],{"class":50},[44,1406,1407],{"class":125},"}\n",[14,1409,1410,1411,478],{},"Fix it by adding the ",[41,1412,261],{},[34,1414,1416],{"className":36,"code":1415,"language":38,"meta":39,"style":39},"name = \"Sam\"\nmessage = f\"Hello, {name}\"\nprint(message)\n",[41,1417,1418,1430,1449],{"__ignoreMap":39},[44,1419,1420,1422,1424,1426,1428],{"class":46,"line":47},[44,1421,51],{"class":50},[44,1423,55],{"class":54},[44,1425,59],{"class":58},[44,1427,63],{"class":62},[44,1429,66],{"class":58},[44,1431,1432,1434,1436,1438,1441,1443,1445,1447],{"class":46,"line":69},[44,1433,84],{"class":50},[44,1435,55],{"class":54},[44,1437,90],{"class":89},[44,1439,1440],{"class":62},"\"Hello, ",[44,1442,96],{"class":77},[44,1444,99],{"class":50},[44,1446,102],{"class":77},[44,1448,66],{"class":62},[44,1450,1451,1453,1455,1457],{"class":46,"line":81},[44,1452,122],{"class":121},[44,1454,126],{"class":125},[44,1456,130],{"class":129},[44,1458,133],{"class":125},[1164,1460,1462,1463],{"id":1461},"trying-to-join-a-string-and-an-integer-with","Trying to join a string and an integer with ",[41,1464,926],{},[14,1466,1467],{},"This causes an error:",[34,1469,1471],{"className":36,"code":1470,"language":38,"meta":39,"style":39},"age = 25\nmessage = \"Age: \" + age\nprint(message)\n",[41,1472,1473,1481,1498],{"__ignoreMap":39},[44,1474,1475,1477,1479],{"class":46,"line":47},[44,1476,72],{"class":50},[44,1478,55],{"class":54},[44,1480,78],{"class":77},[44,1482,1483,1485,1487,1489,1491,1493,1495],{"class":46,"line":69},[44,1484,84],{"class":50},[44,1486,55],{"class":54},[44,1488,59],{"class":58},[44,1490,1038],{"class":62},[44,1492,236],{"class":58},[44,1494,981],{"class":54},[44,1496,1497],{"class":50}," age\n",[44,1499,1500,1502,1504,1506],{"class":46,"line":81},[44,1501,122],{"class":121},[44,1503,126],{"class":125},[44,1505,130],{"class":129},[44,1507,133],{"class":125},[14,1509,1510,1511,1514,1515,1517],{},"Python will raise a ",[41,1512,1513],{},"TypeError"," because ",[41,1516,110],{}," is an integer, not a string.",[14,1519,1520],{},"Fix it like this:",[34,1522,1523],{"className":36,"code":1017,"language":38,"meta":39,"style":39},[41,1524,1525,1533,1555],{"__ignoreMap":39},[44,1526,1527,1529,1531],{"class":46,"line":47},[44,1528,72],{"class":50},[44,1530,55],{"class":54},[44,1532,78],{"class":77},[44,1534,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553],{"class":46,"line":69},[44,1536,84],{"class":50},[44,1538,55],{"class":54},[44,1540,59],{"class":58},[44,1542,1038],{"class":62},[44,1544,236],{"class":58},[44,1546,981],{"class":54},[44,1548,1046],{"class":1045},[44,1550,126],{"class":125},[44,1552,110],{"class":129},[44,1554,133],{"class":125},[44,1556,1557,1559,1561,1563],{"class":46,"line":81},[44,1558,122],{"class":121},[44,1560,126],{"class":125},[44,1562,130],{"class":129},[44,1564,133],{"class":125},[14,1566,1567],{},"Or better:",[34,1569,1571],{"className":36,"code":1570,"language":38,"meta":39,"style":39},"age = 25\nmessage = f\"Age: {age}\"\nprint(message)\n",[41,1572,1573,1581,1600],{"__ignoreMap":39},[44,1574,1575,1577,1579],{"class":46,"line":47},[44,1576,72],{"class":50},[44,1578,55],{"class":54},[44,1580,78],{"class":77},[44,1582,1583,1585,1587,1589,1592,1594,1596,1598],{"class":46,"line":69},[44,1584,84],{"class":50},[44,1586,55],{"class":54},[44,1588,90],{"class":89},[44,1590,1591],{"class":62},"\"Age: ",[44,1593,96],{"class":77},[44,1595,110],{"class":50},[44,1597,102],{"class":77},[44,1599,66],{"class":62},[44,1601,1602,1604,1606,1608],{"class":46,"line":81},[44,1603,122],{"class":121},[44,1605,126],{"class":125},[44,1607,130],{"class":129},[44,1609,133],{"class":125},[14,1611,1612,1613,251],{},"If you see this error, read ",[247,1614,1616],{"href":1615},"\u002Ferrors\u002Ftypeerror-can-only-concatenate-str-not-int-to-str-fix","TypeError: can only concatenate str (not \"int\") to str",[1164,1618,1620,1621],{"id":1619},"using-the-wrong-number-of-placeholders-in-format","Using the wrong number of placeholders in ",[41,1622,691],{},[14,1624,1625],{},"If your string has placeholders, make sure you provide enough values.",[34,1627,1629],{"className":36,"code":1628,"language":38,"meta":39,"style":39},"message = \"{} is {} years old\".format(\"Mia\", 30)\nprint(message)\n",[41,1630,1631,1668],{"__ignoreMap":39},[44,1632,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1666],{"class":46,"line":47},[44,1634,84],{"class":50},[44,1636,55],{"class":54},[44,1638,59],{"class":58},[44,1640,268],{"class":77},[44,1642,320],{"class":62},[44,1644,268],{"class":77},[44,1646,166],{"class":62},[44,1648,236],{"class":58},[44,1650,251],{"class":125},[44,1652,758],{"class":129},[44,1654,126],{"class":125},[44,1656,236],{"class":58},[44,1658,211],{"class":62},[44,1660,236],{"class":58},[44,1662,765],{"class":125},[44,1664,1665],{"class":77}," 30",[44,1667,133],{"class":125},[44,1669,1670,1672,1674,1676],{"class":46,"line":69},[44,1671,122],{"class":121},[44,1673,126],{"class":125},[44,1675,130],{"class":129},[44,1677,133],{"class":125},[14,1679,1680],{},"This is correct.",[14,1682,1683],{},"But if the number of placeholders and values does not match, your code may fail or produce the wrong result.",[1164,1685,1687,1688,1691],{"id":1686},"confusing-print-arguments-with-actual-string-formatting","Confusing ",[41,1689,1690],{},"print()"," arguments with actual string formatting",[14,1693,1694],{},"This prints multiple values:",[34,1696,1698],{"className":36,"code":1697,"language":38,"meta":39,"style":39},"name = \"Sam\"\nage = 25\n\nprint(name, age)\n",[41,1699,1700,1712,1720,1724],{"__ignoreMap":39},[44,1701,1702,1704,1706,1708,1710],{"class":46,"line":47},[44,1703,51],{"class":50},[44,1705,55],{"class":54},[44,1707,59],{"class":58},[44,1709,63],{"class":62},[44,1711,66],{"class":58},[44,1713,1714,1716,1718],{"class":46,"line":69},[44,1715,72],{"class":50},[44,1717,55],{"class":54},[44,1719,78],{"class":77},[44,1721,1722],{"class":46,"line":81},[44,1723,301],{"emptyLinePlaceholder":300},[44,1725,1726,1728,1730,1732,1734,1736],{"class":46,"line":118},[44,1727,122],{"class":121},[44,1729,126],{"class":125},[44,1731,99],{"class":129},[44,1733,765],{"class":125},[44,1735,768],{"class":129},[44,1737,133],{"class":125},[14,1739,1740],{},[24,1741,138],{},[34,1743,1745],{"className":36,"code":1744,"language":38,"meta":39,"style":39},"Sam 25\n",[41,1746,1747],{"__ignoreMap":39},[44,1748,1749,1752],{"class":46,"line":47},[44,1750,1751],{"class":50},"Sam ",[44,1753,1754],{"class":77},"25\n",[14,1756,1757,1758,1761],{},"This is useful, but it does ",[24,1759,1760],{},"not"," create one formatted string.",[14,1763,1764],{},"If you want a single string, do this:",[34,1766,1768],{"className":36,"code":1767,"language":38,"meta":39,"style":39},"name = \"Sam\"\nage = 25\n\nmessage = f\"{name} is {age} years old.\"\nprint(message)\n",[41,1769,1770,1782,1790,1794,1820],{"__ignoreMap":39},[44,1771,1772,1774,1776,1778,1780],{"class":46,"line":47},[44,1773,51],{"class":50},[44,1775,55],{"class":54},[44,1777,59],{"class":58},[44,1779,63],{"class":62},[44,1781,66],{"class":58},[44,1783,1784,1786,1788],{"class":46,"line":69},[44,1785,72],{"class":50},[44,1787,55],{"class":54},[44,1789,78],{"class":77},[44,1791,1792],{"class":46,"line":81},[44,1793,301],{"emptyLinePlaceholder":300},[44,1795,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818],{"class":46,"line":118},[44,1797,84],{"class":50},[44,1799,55],{"class":54},[44,1801,90],{"class":89},[44,1803,236],{"class":62},[44,1805,96],{"class":77},[44,1807,99],{"class":50},[44,1809,102],{"class":77},[44,1811,320],{"class":62},[44,1813,96],{"class":77},[44,1815,110],{"class":50},[44,1817,102],{"class":77},[44,1819,115],{"class":62},[44,1821,1822,1824,1826,1828],{"class":46,"line":331},[44,1823,122],{"class":121},[44,1825,126],{"class":125},[44,1827,130],{"class":129},[44,1829,133],{"class":125},[29,1831,1833],{"id":1832},"faq","FAQ",[1164,1835,1837],{"id":1836},"what-is-the-best-way-to-format-strings-in-python","What is the best way to format strings in Python?",[14,1839,1840],{},"For most beginners and modern code, use f-strings because they are simple and easy to read.",[1164,1842,1844],{"id":1843},"can-i-put-numbers-inside-a-string","Can I put numbers inside a string?",[14,1846,1847,1848,1850],{},"Yes. Use an f-string or convert the number with ",[41,1849,1086],{}," before concatenating.",[1164,1852,1854,1855,1857],{"id":1853},"what-does-2f-mean-in-an-f-string","What does ",[41,1856,548],{}," mean in an f-string?",[14,1859,1860],{},"It formats a number as a float with 2 digits after the decimal point.",[1164,1862,1864,1865,1095,1867,1869],{"id":1863},"should-i-use-or-format","Should I use ",[41,1866,926],{},[41,1868,691],{},"?",[14,1871,681,1872,1874,1875,1877],{},[41,1873,926],{}," only for very simple joins. Use ",[41,1876,691],{}," mainly when working with older code. Prefer f-strings for new code.",[29,1879,1881],{"id":1880},"see-also","See also",[181,1883,1884,1888,1894,1900,1905],{},[184,1885,1886],{},[247,1887,250],{"href":249},[184,1889,1890],{},[247,1891,912,1892,916],{"href":911},[41,1893,915],{},[184,1895,1896],{},[247,1897,1091,1898,1094],{"href":1090},[41,1899,1086],{},[184,1901,1902],{},[247,1903,1904],{"href":1098},"How to convert an int to a string in Python",[184,1906,1907],{},[247,1908,1616],{"href":1615},[1910,1911,1912],"style",{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2W-s, html code.shiki .s2W-s{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#032F62;--shiki-default-font-style:inherit;--shiki-dark:#9ECBFF;--shiki-dark-font-style:inherit}html pre.shiki code .sithA, html code.shiki .sithA{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#032F62;--shiki-default-font-style:inherit;--shiki-dark:#9ECBFF;--shiki-dark-font-style:inherit}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":39,"searchDepth":69,"depth":69,"links":1914},[1915,1916,1917,1918,1919,1921,1922,1927,1937,1945],{"id":31,"depth":69,"text":32},{"id":175,"depth":69,"text":176},{"id":254,"depth":69,"text":255},{"id":508,"depth":69,"text":509},{"id":680,"depth":69,"text":1920},"Use str.format() if needed",{"id":919,"depth":69,"text":920},{"id":1105,"depth":69,"text":1106,"children":1923},[1924,1925,1926],{"id":26,"depth":81,"text":26},{"id":758,"depth":81,"text":691},{"id":1265,"depth":81,"text":1266},{"id":1323,"depth":69,"text":1324,"children":1928},[1929,1931,1933,1935],{"id":1330,"depth":81,"text":1930},"Forgetting the f before an f-string",{"id":1461,"depth":81,"text":1932},"Trying to join a string and an integer with +",{"id":1619,"depth":81,"text":1934},"Using the wrong number of placeholders in .format()",{"id":1686,"depth":81,"text":1936},"Confusing print() arguments with actual string formatting",{"id":1832,"depth":69,"text":1833,"children":1938},[1939,1940,1941,1943],{"id":1836,"depth":81,"text":1837},{"id":1843,"depth":81,"text":1844},{"id":1853,"depth":81,"text":1942},"What does :.2f mean in an f-string?",{"id":1863,"depth":81,"text":1944},"Should I use + or .format()?",{"id":1880,"depth":69,"text":1881},"Master how to format strings in python in our comprehensive Python beginner guide.","md",{},"\u002Fhow-to\u002Fhow-to-format-strings-in-python",{"title":5,"description":1946},"how-to\u002Fhow-to-format-strings-in-python","MpzTVrqsiFJljevyD6hvCW0o4xwBQCbhOOWGetzT71M",1777585506326]