f-strings — embedding expressions
1.2.13· Coding › Introduction to Programming (Python)
f-strings KYUN exist karte hain?
F-strings se pehle, variables se string banana kaafi clumsy tha:
name = "Ada"
age = 36
# Old way 1: concatenation — must manually convert ints to str
msg = "Hi " + name + ", you are " + str(age)
# Old way 2: .format() — placeholders separated from values
msg = "Hi {}, you are {}".format(name, age)Dono error-prone hain: aap str() bhool jaate ho, {} aur arguments ka order galat ho jaata hai, aur values waahan se door padhni padti hain jahan use ho rahi hain.
f-string KYA hota hai?
f"text {expression} more text"fprefix magic on karta hai.- Braces ke bahar sab kuch literal text hai.
- Braces ke andar sab kuch code hai jo run hota hai.
Evaluation KAISE kaam karta hai? (first principles se samjho)
Socho interpreter string ko ek baar, left se right scan kar raha hai:
- Literal characters seedhe output mein copy karo.
{milne par, matching}tak padhte jao. Woh chunk current scope mein ek Python expression ki tarah parse aur execute hota hai.- Result text mein convert hota hai (default:
str(...)jaisa) aur append hota hai. - String khatam hone tak yahi chalta raho.
Toh braces mein koi bhi expression ho sakta hai — variables, arithmetic, function calls, method calls, indexing — sirf plain variable names nahi.

Worked examples
Common mistakes
Recall Feynman: 12-saal ke bacche ko samjhao
Ek fill-in-the-blank story socho: "Mera kutta ___ saal ka hai." Ek normal Python string woh story hai jisme blank khaali chhoot jaata hai — bas ___ print hoga. Ek f-string woh story hai jisme aap blank ke andar ek chhota instruction likhte ho, jaise {2 + 3}, aur computer secretly use solve karke sentence dikhane se pehle 5 likh deta hai. f woh magic stamp hai jo kehta hai "hey, blanks fill karo!"
Recall checkpoint
Kaunsa prefix ek string ko f-string banata hai?
f (ya F) jo opening quote se bilkul pehle rakha jaata hai, jaise f"...".Ek f-string mein { } ke beech kya ho sakta hai?
7 + 5 ko f-string mein kaise embed karein aur result dikhayein?
f"{7 + 5}" → 12 (expression evaluate hota hai, phir text mein convert hota hai).F-string ke andar literal { aur } kaise print karein?
{{ se { milta hai aur }} se } milta hai.f"{pi:.2f}" mein colon ke baad wale part ka kya matlab hai?
.2f value ko 2 decimal places wale float ki tarah format karta hai.f"{x=}" kya karta hai (Python 3.8+)?
x=9 — debugging ke liye bahut kaam ka.F-string ka conceptual substitution rule kya hai?
{expr} ko format(expr, spec) se replace kiya jaata hai (default str(expr)), aur sab literal/converted pieces order mein join ho jaate hain.print("Hi {name}") {name} literally kyun print karta hai?
f prefix ke bina yeh ek ordinary string hai, toh braces sirf characters hain, expression markers nahi.f"{42:05d}" kya produce karta hai aur kyun?
00042 — 05d integer ko leading zeros ke saath width 5 tak pad karta hai.Connections
- Strings — literals and quotes — f-strings ek tarah ke string literal hain.
- str() and type conversion — braces implicitly
str()/format()call karte hain. - str.format() method —
{}placeholders wala purana sibling. - Format specification mini-language —
:ke baad kya aata hai. - Variables and scope — braces mein expressions current scope use karte hain.
- print() function — f-strings ka sabse common consumer.