HomeCoursesPython
Chapter 4 of 14

ইনপুট আউটপুট ও টাইপ কনভার্শন

input(), print(), f-string formatting & type casting techniques

print() ফাংশন

Python-এ কিছু আউটপুট দেখাতে print() ফাংশন ব্যবহার করা হয়। এটি সবচেয়ে বেশি ব্যবহৃত built-in function। আপনি একটি বা একাধিক মান একসাথে print করতে পারেন:

# বেসিক print
print("হ্যালো, পাইথন!")          # Output: হ্যালো, পাইথন!
print(42)                       # Output: 42
print(3.14)                     # Output: 3.14

# একাধিক মান print করা
name = "রহিম"
age = 25
print("নাম:", name, "বয়স:", age)  # Output: নাম: রহিম বয়স: 25

sep ও end প্যারামিটার

print() ফাংশনে দুটি গুরুত্বপূর্ণ optional parameter আছে — sep (separator) এবং end (ending character):

প্যারামিটারডিফল্ট মানকাজউদাহরণ
sep' ' (স্পেস)একাধিক মানের মাঝে separatorprint("a", "b", sep="-")a-b
end'\n' (নতুন লাইন)print শেষে কী যোগ হবেprint("Hello", end=" ") → পরবর্তী print একই লাইনে
filesys.stdoutআউটপুট কোথায় যাবেফাইলে লিখতে ব্যবহৃত
flushFalseতৎক্ষণাৎ output করবে কিনাReal-time output-এ ব্যবহৃত
# sep — separator পরিবর্তন
print("Python", "Java", "C++", sep=", ")
# Output: Python, Java, C++

print(2026, 3, 18, sep="/")
# Output: 2026/3/18

# end — শেষের character পরিবর্তন
print("Loading", end="...")
print("Done!")
# Output: Loading...Done!

# end দিয়ে একই লাইনে print
for i in range(1, 6):
    print(i, end=" ")
# Output: 1 2 3 4 5
🔑 মূল ধারণা — print()
  • print() ডিফল্টে প্রতিটি মানের মাঝে স্পেস এবং শেষে নতুন লাইন দেয়
  • sep দিয়ে মানগুলোর মধ্যবর্তী separator পরিবর্তন করা যায়
  • end দিয়ে শেষের newline সরিয়ে অন্য কিছু দেওয়া যায়
  • খালি print() শুধু একটি ফাঁকা লাইন দেয়

input() ফাংশন

ব্যবহারকারীর কাছ থেকে তথ্য নিতে input() ফাংশন ব্যবহার করা হয়। এটি সবসময় string হিসেবে মান রিটার্ন করে — যতই সংখ্যা লিখুন!

# বেসিক input
name = input("আপনার নাম লিখুন: ")
print("স্বাগতম,", name)

# input সবসময় string রিটার্ন করে!
age = input("আপনার বয়স: ")
print(type(age))   # <class 'str'>  ← সংখ্যা লিখলেও string!

input()-এর সাথে Type Conversion

যেহেতু input() সবসময় string দেয়, গাণিতিক কাজের জন্য int() বা float() দিয়ে রূপান্তর করতে হবে:

# সংখ্যা হিসেবে input নেওয়া
age = int(input("বয়স লিখুন: "))          # int-এ রূপান্তর
price = float(input("দাম লিখুন: "))       # float-এ রূপান্তর

# এক লাইনে দুটি মান নেওয়া
a, b = input("দুটি সংখ্যা দিন: ").split()
a, b = int(a), int(b)
print("যোগফল:", a + b)

# map ব্যবহার করে সহজে
x, y = map(int, input("দুটি সংখ্যা: ").split())
print("গুণফল:", x * y)
ইনপুট পদ্ধতিকোডব্যবহার
একটি strings = input("নাম: ")নাম, ঠিকানা ইত্যাদি
একটি intn = int(input("সংখ্যা: "))বয়স, সংখ্যা ইত্যাদি
একটি floatf = float(input("দাম: "))দাম, তাপমাত্রা ইত্যাদি
একাধিক মানa, b = map(int, input().split())স্পেস দিয়ে আলাদা মান
লিস্ট হিসেবেlst = list(map(int, input().split()))একাধিক সংখ্যার লিস্ট

f-String Formatting

Python 3.6 থেকে f-string (formatted string literal) চালু হয়েছে। এটি সবচেয়ে আধুনিক ও সুবিধাজনক formatting পদ্ধতি। String-এর আগে f বা F বসিয়ে curly braces {}-এর মধ্যে expression লিখলেই হয়:

# বেসিক f-string
name = "করিম"
age = 22
print(f"আমার নাম {name}, বয়স {age}")
# Output: আমার নাম করিম, বয়স 22

# Expression ব্যবহার
a, b = 10, 20
print(f"{a} + {b} = {a + b}")
# Output: 10 + 20 = 30

# Method call
text = "hello"
print(f"Uppercase: {text.upper()}")
# Output: Uppercase: HELLO

Format Specifiers

f-string-এ colon (:) দিয়ে formatting নির্দেশনা দেওয়া যায়:

SpecifierকাজউদাহরণOutput
:.2fদশমিক ২ ঘর পর্যন্তf"{3.14159:.2f}"3.14
:,হাজারের comma separatorf"{1000000:,}"1,000,000
:>10ডানে align (১০ ঘর)f"{'hi':>10}"        hi
:<10বামে align (১০ ঘর)f"{'hi':<10}"hi        
:^10মাঝে align (১০ ঘর)f"{'hi':^10}"    hi    
:%শতাংশে রূপান্তরf"{0.85:.1%}"85.0%
:bবাইনারি রূপf"{10:b}"1010
# দশমিক নিয়ন্ত্রণ
pi = 3.14159265
print(f"Pi = {pi:.2f}")       # Pi = 3.14
print(f"Pi = {pi:.4f}")       # Pi = 3.1416

# হাজারে comma
salary = 50000
print(f"বেতন: {salary:,} টাকা")  # বেতন: 50,000 টাকা

# Padding ও Alignment
for item, price in [("চাল", 60), ("ডাল", 120), ("তেল", 180)]:
    print(f"{item:<8} {price:>6.2f} টাকা")
# Output:
# চাল          60.00 টাকা
# ডাল         120.00 টাকা
# তেল         180.00 টাকা

str.format() ও % Formatting

f-string আসার আগে Python-এ দুটি formatting পদ্ধতি ব্যবহৃত হতো। পুরোনো কোডে এগুলো দেখতে পাবেন:

str.format() পদ্ধতি (Python 2.6+)

# Position-based
print("আমার নাম {}, বয়স {}".format("রহিম", 25))
# Output: আমার নাম রহিম, বয়স 25

# Index-based
print("{1} আর {0} বন্ধু".format("করিম", "রহিম"))
# Output: রহিম আর করিম বন্ধু

# Named placeholder
print("নাম: {name}, বয়স: {age}".format(name="রহিম", age=25))

# Format specifier
print("দাম: {:.2f} টাকা".format(99.5))
# Output: দাম: 99.50 টাকা

% Formatting (Old Style)

# %s = string, %d = integer, %f = float
print("নাম: %s, বয়স: %d" % ("রহিম", 25))
# Output: নাম: রহিম, বয়স: 25

print("Pi = %.2f" % 3.14159)
# Output: Pi = 3.14
পদ্ধতিসিনট্যাক্সPython Versionসুপারিশ
% formatting"Hello %s" % nameসকল❌ এড়িয়ে চলুন
str.format()"Hello {}".format(name)2.6+⚠️ পুরোনো কোডে আছে
f-stringf"Hello {name}"3.6+✅ সবসময় এটি ব্যবহার করুন
💡 মনে রাখার কৌশল — "F হলো Future"

f-string ব্যবহার করুন কারণ এটি Fast (দ্রুত), Flexible (নমনীয়), এবং Format-friendly (সহজে format করা যায়)। তিনটি F — তাই f-string!

Type Conversion (টাইপ কনভার্শন)

Python-এ এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে রূপান্তর করাকে Type Conversion বা Type Casting বলে। দুই ধরন আছে:

Implicit Conversion (স্বয়ংক্রিয়)

Python নিজে থেকে ছোট টাইপকে বড় টাইপে রূপান্তর করে — ডেটা হারায় না:

# int → float (স্বয়ংক্রিয়)
a = 10      # int
b = 3.5     # float
result = a + b
print(result)       # 13.5
print(type(result)) # <class 'float'>

# bool → int (স্বয়ংক্রিয়)
print(True + 5)     # 6 (True = 1)
print(False + 10)   # 10 (False = 0)

Explicit Conversion (ম্যানুয়াল)

প্রোগ্রামার নিজে built-in function ব্যবহার করে টাইপ পরিবর্তন করে:

Functionকাজউদাহরণফলাফলসতর্কতা
int()পূর্ণ সংখ্যায় রূপান্তরint("42")42দশমিকযুক্ত string দিলে ValueError
float()দশমিক সংখ্যায় রূপান্তরfloat("3.14")3.14সংখ্যা না হলে ValueError
str()string-এ রূপান্তরstr(100)"100"সবকিছুই string হতে পারে
bool()boolean-এ রূপান্তরbool(0)False0, "", [], None → False
list()list-এ রূপান্তরlist("abc")['a','b','c']iterable হতে হবে
tuple()tuple-এ রূপান্তরtuple([1,2])(1, 2)iterable হতে হবে
# string → int
num = int("100")
print(num + 50)     # 150

# string → float
price = float("49.99")
print(price * 2)    # 99.98

# int → string (concatenation-এর জন্য)
age = 25
print("বয়স: " + str(age) + " বছর")

# float → int (দশমিক কেটে যায়, round হয় না!)
print(int(9.9))     # 9  (10 নয়!)
print(int(-3.7))    # -3 (-4 নয়!)

# round() দিয়ে সঠিক rounding
print(round(9.9))   # 10
print(round(3.14159, 2))  # 3.14
🔑 টাইপ কনভার্শনের সতর্কতা
  • int("19.5")ValueError! আগে float() দিয়ে তারপর int() করুন
  • int() দশমিক কাটে, round করে না — int(9.9) = 9
  • input() সবসময় string দেয় — গণনার আগে অবশ্যই convert করুন
  • ভুল conversion-এ ValueError হয় — try-except দিয়ে handle করুন

ব্যবহারিক উদাহরণ

নিচে কিছু বাস্তব প্রোগ্রাম দেওয়া হলো যেখানে input, output ও type conversion একসাথে ব্যবহৃত হয়েছে:

সাধারণ Calculator

# সাধারণ যোগ-বিয়োগ ক্যালকুলেটর
num1 = float(input("প্রথম সংখ্যা: "))
num2 = float(input("দ্বিতীয় সংখ্যা: "))

print(f"\n{'='*30}")
print(f"যোগ:    {num1} + {num2} = {num1 + num2}")
print(f"বিয়োগ:  {num1} - {num2} = {num1 - num2}")
print(f"গুণ:    {num1} × {num2} = {num1 * num2}")
if num2 != 0:
    print(f"ভাগ:    {num1} ÷ {num2} = {num1 / num2:.2f}")
else:
    print("ভাগ:    শূন্য দিয়ে ভাগ করা সম্ভব নয়!")
print(f"{'='*30}")

তাপমাত্রা রূপান্তরক

# সেলসিয়াস ↔ ফারেনহাইট রূপান্তরক
celsius = float(input("সেলসিয়াস তাপমাত্রা দিন: "))
fahrenheit = (celsius * 9/5) + 32

print(f"{celsius}°C = {fahrenheit:.1f}°F")

# উল্টো রূপান্তর
fahr = float(input("ফারেনহাইট তাপমাত্রা দিন: "))
cel = (fahr - 32) * 5/9
print(f"{fahr}°F = {cel:.1f}°C")

বয়স পরীক্ষক

# বয়স পরীক্ষক প্রোগ্রাম
birth_year = int(input("আপনার জন্ম সাল দিন: "))
current_year = 2026
age = current_year - birth_year

print(f"\nআপনার বয়স প্রায় {age} বছর")
print(f"আপনি {'প্রাপ্তবয়স্ক ✅' if age >= 18 else 'অপ্রাপ্তবয়স্ক ❌'}")
🧠 Quick Check
এই অধ্যায়ের উপর ৫টি প্রশ্নের উত্তর দিন
Q1. print("a", "b", "c", sep="-") এর output কী হবে?
✅ সঠিক উত্তর: খ) a-b-csep="-" দিলে print() ফাংশন প্রতিটি মানের মাঝে ডিফল্ট স্পেসের বদলে হাইফেন (-) বসায়।
Q2. input() ফাংশন সবসময় কোন টাইপের মান রিটার্ন করে?
✅ সঠিক উত্তর: গ) str। Python 3-এ input() সবসময় string রিটার্ন করে — ব্যবহারকারী সংখ্যা লিখলেও সেটি string হিসেবে আসে। গাণিতিক কাজের জন্য int() বা float() দিয়ে রূপান্তর করতে হয়।
Q3. f"{3.14159:.2f}" এর output কী হবে?
✅ সঠিক উত্তর: ক) 3.14:.2f format specifier মানে দশমিকের পর ঠিক ২টি সংখ্যা দেখাও। তাই 3.14159 হয়ে যায় 3.14
Q4. int(9.9) এর ফলাফল কত?
✅ সঠিক উত্তর: খ) 9int() দশমিক অংশ কেটে ফেলে (truncate), round করে না। তাই int(9.9) = 9। সঠিক rounding-এর জন্য round(9.9) = 10 ব্যবহার করুন।
Q5. নিচের কোনটি Python-এ string formatting-এর সবচেয়ে আধুনিক পদ্ধতি?
✅ সঠিক উত্তর: গ) f"Hello {name}"। f-string (Python 3.6+) হলো সবচেয়ে আধুনিক ও দ্রুত formatting পদ্ধতি। % formatting সবচেয়ে পুরোনো, .format() মাঝামাঝি, এবং concatenation (+) formatting নয়।
← Previous: অপারেটর ও এক্সপ্রেশন Next: শর্তমূলক স্টেটমেন্ট →