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 | ' ' (স্পেস) | একাধিক মানের মাঝে separator | print("a", "b", sep="-") → a-b |
end | '\n' (নতুন লাইন) | print শেষে কী যোগ হবে | print("Hello", end=" ") → পরবর্তী print একই লাইনে |
file | sys.stdout | আউটপুট কোথায় যাবে | ফাইলে লিখতে ব্যবহৃত |
flush | False | তৎক্ষণাৎ 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()ডিফল্টে প্রতিটি মানের মাঝে স্পেস এবং শেষে নতুন লাইন দেয়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)
| ইনপুট পদ্ধতি | কোড | ব্যবহার |
|---|---|---|
| একটি string | s = input("নাম: ") | নাম, ঠিকানা ইত্যাদি |
| একটি int | n = int(input("সংখ্যা: ")) | বয়স, সংখ্যা ইত্যাদি |
| একটি float | f = 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 separator | f"{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-string | f"Hello {name}" | 3.6+ | ✅ সবসময় এটি ব্যবহার করুন |
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) | False | 0, "", [], 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)=9input()সবসময় 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 'অপ্রাপ্তবয়স্ক ❌'}")