পাইথনের বেসিকস
এই প্রবন্ধটি পাইথনের বেসিকস ব্যাখ্যা করে।
YouTube Video
"হ্যালো ওয়ার্ল্ড!" চালানো
1print("Hello World!")
পাইথনের ভেরিয়েবল
পাইথনে, ভেরিয়েবল হল প্রোগ্রামের মধ্যে ডেটা এবং তথ্য সংরক্ষণ ও ব্যবহারের জন্য সংরক্ষিত নামযুক্ত স্থান। ভেরিয়েবল বিভিন্ন ধরণের ডেটা ধরে রাখতে পারে এবং প্রয়োজন অনুযায়ী পুনরায় নিযুক্ত করা যেতে পারে। নিম্নে আমরা পাইথনে ভেরিয়েবলের প্রাথমিক ব্যবহারের জন্য কয়েকটি নমুনা কোড প্রদান করেছি।
1# 1. Assigning values to variables
2# Integer type variable
3age = 25
4print("Age:", age) # Output: Age: 25
5
6# Floating-point type variable
7height = 175.5
8print("Height:", height, "cm") # Output: Height: 175.5 cm
9
10# String type variable
11name = "John"
12print("Name:", name) # Output: Name: John
13
14# Boolean type variable
15is_student = True
16print("Are you a student?", is_student) # Output: Are you a student? True
17
18# 2. Assigning values to multiple variables simultaneously
19# You can assign multiple variables at once
20x, y, z = 5, 10, 15
21print("x =", x, ", y =", y, ", z =", z) # Output: x = 5 , y = 10 , z = 15
22
23# 3. Updating the value of a variable
24# The value of a variable can be updated by reassignment
25age = 26
26print("Updated age:", age) # Output: Updated age: 26
27
28# 4. Updating multiple variables at once
29# Example of swapping values between variables
30a, b = 1, 2
31a, b = b, a
32print("a =", a, ", b =", b) # Output: a = 2 , b = 1
33
34# 5. Type conversion
35# Type conversion allows operations between different types
36count = "5" # String "5"
37count = int(count) # Convert to integer type
38print("Handling count as an integer:", count * 2) # Output: Handling count as an integer: 10
39
40# Conversion to floating-point number
41pi_approx = "3.14"
42pi_approx = float(pi_approx)
43print("Approximation of pi:", pi_approx) # Output: Approximation of pi: 3.14
যেমনটা দেখানো হয়েছে, পাইথনে ভেরিয়েবল নমনীয়ভাবে ব্যবহার করা যেতে পারে। ভেরিয়েবল তাদের টাইপ উল্লেখ না করেই ব্যবহার করা যায় এবং প্রয়োজন অনুযায়ী পুনরায় নিযুক্ত করা যায়। তাছাড়া, টাইপ পরিবর্তন আপনাকে বিভিন্ন ধরনের ডেটার মধ্যে সহজে পরিবর্তন করতে সাহায্য করে।
পাইথনে ডেটা টাইপ
পাইথনে কয়েকটি মৌলিক ডেটা টাইপ রয়েছে। নিম্নে, আমরা প্রতিটি ডেটা টাইপের জন্য ব্যাখ্যা এবং নমুনা কোড প্রদান করেছি।
ইন্টিজার টাইপ
ইন্টিজার টাইপ ব্যবহৃত হয় একটি পূর্ণ সংখ্যা পরিচালনার জন্য যেখানে দশমিক পয়েন্ট থাকে না।
1# Example of integer type
2x = 10
3print(x) # Output: 10
4print(type(x)) # Output: <class 'int'>
ফ্লোটিং-পয়েন্ট টাইপ
ফ্লোটিং-পয়েন্ট টাইপ ব্যবহৃত হয় দশমিক পয়েন্ট সম্বলিত সংখ্যাগুলি পরিচালনার জন্য।
1# Floating Point Number Example
2y = 3.14
3print(y) # Output: 3.14
4print(type(y)) # Output: float
স্ট্রিং টাইপ
স্ট্রিং টাইপ চরিত্রগুলির একটি ক্রম উপস্থাপন করে। স্ট্রিংগুলি সিঙ্গল কোটস '
অথবা ডাবল কোটস "
এর মধ্যে আবদ্ধ করা যেতে পারে।
1# Example of String
2s = "Hello, World!"
3print(s) # Output: Hello, World!
4print(type(s)) # Output: <class 'str'>
বুলিয়ান টাইপ
বুলিয়ান টাইপের দুটি মান রয়েছে: সত্য (True
) এবং মিথ্যা (False
)।
1# Example of Boolean
2b = True
3print(b) # Output: True
4print(type(b)) # Output: <class 'bool'>
লিস্ট টাইপ
লিস্ট টাইপ একটি পরিবর্তনযোগ্য ক্রম যা একাধিক উপাদান সংরক্ষণ করতে পারে, এবং উপাদানগুলি বিভিন্ন ডেটা টাইপের হতে পারে।
1# Example of List
2lst = [1, 2, 3, "four", 5.0]
3print(lst) # Output: [1, 2, 3, 'four', 5.0]
4print(type(lst)) # Output: <class 'list'>
টuple টাইপ
টuple একটি ক্রম যা একাধিক উপাদান ধারণ করতে পারে, এবং এটি তৈরি হওয়ার পর এর বিষয়বস্তু সম্পাদনা করা যায় না।
1# Example of Tuple
2tup = (1, "two", 3.0)
3print(tup) # Output: (1, 'two', 3.0)
4print(type(tup)) # Output: <class 'tuple'>
ডিকশনারি টাইপ
ডিকশনারি টাইপ একটি সংগ্রহ যা কী-মূল্য জোড়া ধারণ করে। কীগুলি অনন্য হতে হবে।
1# Example of Dictionary
2dct = {"one": 1, "two": 2, "three": 3}
3print(dct) # Output: {'one': 1, 'two': 2, 'three': 3}
4print(type(dct)) # Output: <class 'dict'>
সেট টাইপ
সেট টাইপ একটি সংগ্রহ যা অনন্য উপাদান ধারণ করে। প্রতিলিপি মান যোগ করা যাবে না।
1# Example of Set
2st = {1, 2, 2, 3}
3print(st) # Output: {1, 2, 3}
4print(type(st)) # Output: <class 'set'>
এই ডেটা টাইপগুলি মৌলিক, যা পাইথনে ডেটা পরিচালনার জন্য সাধারণভাবে ব্যবহৃত হয়। সেগুলিকে সঠিকভাবে ব্যবহার করে, আপনি আপনার প্রোগ্রামগুলির বিভিন্ন প্রয়োজন মেটাতে পারেন।
পাইথন ওভারভিউ
পাইথন একটি উচ্চ-স্তরের প্রোগ্রামিং ভাষা, যা 1991 সালে গুইডো ভ্যান রাসম দ্বারা উন্নত করা হয়েছিল। এটির ডিজাইন দর্শন 'সরলতা,' 'স্বচ্ছতা' এবং 'পাঠযোগ্যতা' এর উপর জোর দেয়, যার ফলে কোডটি স্বতঃসিদ্ধ, সহজে লেখা এবং সহজে পড়া যায়। নিম্নে পাইথনের প্রধান বৈশিষ্ট্যগুলির একটি ওভারভিউ দেওয়া হল।
-
**ELast পড়তে সমস্যা:
- একটি পরিষ্কার কাঠামো এবং প্রাকৃতিক ভাষার নিকটবর্তী প্রকাশের মাধ্যমে, এটি শিক্ষার্থীদের জন্য একটি সহজ ভাষা শেখার উপযোগী।
- ব্লকগুলি ইনডেন্টেশনের মাধ্যমে সংজ্ঞায়িত করা হয়, যা স্বয়ংক্রিয়ভাবে কোড ফরম্যাট করে এবং পাঠযোগ্যতা বাড়ায়।
-
সমৃদ্ধ লাইব্রেরি এবং ফ্রেমওয়ার্ক:
- এর একটি সমৃদ্ধ স্ট্যান্ডার্ড লাইব্রেরি রয়েছে, যা অনেক কাজ সহজে সম্পাদন করতে সক্ষম করে।
- নানা ক্ষেত্রে যেমন সংখ্যাতাত্ত্বিক গণনা (NumPy), ডেটা বিশ্লেষণ (Pandas), মেশিন লার্নিং (scikit-learn, TensorFlow) এবং ওয়েব ডেভেলপমেন্ট (Django, Flask)-এর জন্য বিশেষায়িত লাইব্রেরি এবং ফ্রেমওয়ার্ক উপলব্ধ রয়েছে।
-
বহুমুখিতা:
- Python একটি স্ক্রিপ্টিং ভাষা এবং পূর্ণ বৈশিষ্ট্যের অ্যাপ্লিকেশন ডেভেলপমেন্ট উভয়ের জন্য উপযোগী। এটি বিভিন্ন অ্যাপ্লিকেশনে যেমন ওয়েব অ্যাপ্লিকেশন, ডেক্সটপ অ্যাপ্লিকেশন, বৈজ্ঞানিক গণনা, মেশিন লার্নিং, ডেটা বিশ্লেষণ, এবং IoT-তে ব্যবহৃত হয়।
-
ক্রস-প্ল্যাটফর্ম:
- এটি প্ল্যাটফর্ম-স্বাধীন এবং Windows, macOS এবং Linux সহ বহু অপারেটিং সিস্টেমে চালানো যায়।
-
ওপেন সোর্স এবং কমিউনিটি:
- Python একটি ওপেন সোর্স প্রোজেক্ট যা সক্রিয় কমিউনিটির দ্বারা সমর্থিত। এর জন্য, প্রায়ই আপডেট, লাইব্রেরি ডেভেলপমেন্ট এবং সাপোর্ট প্রদান করা হয়।
-
ডায়নামিক টাইপিং এবং স্বয়ংক্রিয় মেমরি ম্যানেজমেন্ট:
- ডায়নামিক টাইপিং চলক টাইপ ঘোষণার প্রয়োজনীয়তা দূর করে, যা দ্রুত উন্নয়নকে সক্রিয় করে।
- গারবেজ কালেকশন স্বয়ংক্রিয় মেমরি ম্যানেজমেন্ট কার্যকর করে, যা মেমরি ম্যানেজমেন্টকে সহজ করে তোলে।
এই বৈশিষ্ট্যগুলির সাথে, Python শিক্ষা, শিল্প, এবং একাডেমিক ক্ষেত্রসহ বিভিন্ন ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়।
পাইথনে এস্কেপ ক্যারেক্টার
পাইথনে, এস্কেপ ক্যারেক্টার ব্যবহার করে স্ট্রিংয়ের মধ্যে নির্দিষ্ট নিয়ন্ত্রণ ক্যারেক্টার অথবা বিশেষ অর্থবোধক ক্যারেক্টার অন্তর্ভুক্ত করা হয়। এস্কেপ ক্যারেক্টার হল বিশেষ প্রতীক যা সাধারণ স্ট্রিংয়ে নির্দিষ্ট অর্থ যোগ করতে ব্যবহৃত হয়। আসুন পাইথনে এস্কেপ ক্যারেক্টার সম্পর্কে আরও গভীরভাবে জানি।
এস্কেপ ক্যারেক্টারের মৌলিক ধারণা
পাইথনে, ব্যাকস্ল্যাশ (\
) ব্যবহার করে এস্কেপ ক্যারেক্টার নির্ধারিত হয়। এস্কেপ ক্যারেক্টার সাধারণ স্ট্রিংয়ের মধ্যে নির্দিষ্ট আচরণ নির্দেশ করে। উদাহরণস্বরূপ, \n
একটি নতুন লাইন নির্দেশ করে এবং \t
একটি ট্যাব স্পেস নির্দেশ করে।
আপনি নিচের মতো করে এস্কেপ ক্যারেক্টার সম্বলিত একটি স্ট্রিং নির্ধারণ করতে পারেন:।
1# Example of escape characters
2print("Hello\nWorld") # A newline is inserted after "Hello"
3
4# Output:
5# Hello
6# World
মূল এস্কেপ ক্যারেক্টারের তালিকা
পাইথনে ব্যবহৃত প্রধান এস্কেপ ক্যারেক্টারের তালিকা নিচে দেয়া হলোঃ।
\\
: নিজেই একটি ব্যাকস্ল্যাশকে উপস্থাপন করে।\'
: একটি স্ট্রিংয়ের মধ্যে একক উদ্ধৃতি চিহ্ন অন্তর্ভুক্ত করে।\"
: একটি স্ট্রিংয়ের মধ্যে দ্বৈত উদ্ধৃতি চিহ্ন অন্তর্ভুক্ত করে।\n
: নতুন লাইন\t
: ট্যাব\r
: ক্যারেজ রিটার্ন\b
: ব্যাকস্পেস\f
: ফর্ম ফিড\a
: এলার্ট সাউন্ড (বেল)\v
: ভার্টিকাল ট্যাব\N{name}
: ইউনিকোড ডাটাবেস থেকে নাম দ্বারা ক্যারেক্টার\uXXXX
: ১৬-বিট ইউনিকোড ক্যারেক্টার (৪টি হেক্সাডেসিমাল ডিজিট দিয়ে নির্ধারিত)\UXXXXXXXX
: ৩২-বিট ইউনিকোড ক্যারেক্টার (৮টি হেক্সাডেসিমাল ডিজিট দিয়ে নির্ধারিত)\xXX
: হেক্সাডেসিমাল পদ্ধতিতে নির্ধারিত ক্যারেক্টার
সাধারণত ব্যবহৃত এস্কেপ চরিত্রগুলির উদাহরণ
এখানে এস্কেপ চরিত্রগুলি কীভাবে ব্যবহার করবেন তার কিছু নির্দিষ্ট উদাহরণ রয়েছে।
ডাবল কোটস এবং সিঙ্গেল কোটস
স্ট্রিং-এর মধ্যে ডাবল কোট বা সিঙ্গেল কোট অন্তর্ভুক্ত করতে, এস্কেপ চরিত্রগুলি ব্যবহার করুন।
1# String containing double quotes
2quote = "He said, \"Python is amazing!\""
3print(quote)
4
5# String containing single quotes
6single_quote = 'It\'s a beautiful day!'
7print(single_quote)
8
9# Output:
10# He said, "Python is amazing!"
11# It's a beautiful day!
নিউলাইন এবং ট্যাব
টেক্সট ফরম্যাট করার জন্য সাধারণত নিউলাইন এবং ট্যাব ব্যবহার করা হয়।
1# Example using newline
2multiline_text = "First line\nSecond line"
3print(multiline_text)
4
5# Example using tab
6tabbed_text = "Column1\tColumn2\tColumn3"
7print(tabbed_text)
8
9# Output:
10# First line
11# Second line
12# Column1 Column2 Column3
ইউনিকোড এস্কেপ চরিত্র
পাইথনে, ইউনিকোড অক্ষরগুলি \u
অথবা \U
ব্যবহার করে উপস্থাপিত হয়। এটি বিশেষত অ-ইংরেজি অক্ষর পরিচালনার সময় কার্যকর।
1# Example of Unicode escape
2japanese_text = "\u3053\u3093\u306B\u3061\u306F" # Hello in Japanese
3print(japanese_text)
4# Output:
5# こんにちは(Hello in Japanese)
বিশেষ এস্কেপ চরিত্রগুলির সঙ্গে সাবধানতা
এস্কেপ ক্যারেক্টার ব্যবহার করার সময় কয়েকটি সতর্কতা মাথায় রাখা দরকার।
- Raw Strings: যদি আপনি স্ট্রিংগুলিকে ব্যাকস্ল্যাশ সহ সঠিকভাবে প্রদর্শন করতে চান, তাহলে রো স্ট্রিং ব্যবহার করতে পারেন। রো স্ট্রিংগুলি স্ট্রিংয়ের শুরুতে একটি
r
প্রিফিক্স যোগ করার মাধ্যমে নির্ধারিত হয়।
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents
রো স্ট্রিং-এ, ব্যাকস্ল্যাশটিকে এস্কেপ চরিত্র হিসাবে গণ্য করা হয় না এবং এটি আসল অবস্থায় আউটপুট হয়।
- ইউনিকোড ব্যবহার: ইউনিকোড এস্কেপ চরিত্র ব্যবহার করার সময়, নির্দিষ্ট হেক্সাডেসিমাল কোডটি সঠিক তা নিশ্চিত করুন। ভুল স্পেসিফিকেশন ভুল অক্ষরের প্রদর্শন ঘটাবে।
ব্যাকস্ল্যাশ এস্কেপ করা
স্ট্রিং-এর মধ্যে ব্যাকস্ল্যাশ নিজেই অন্তর্ভুক্ত করতে, ডাবল ব্যাকস্ল্যাশ ব্যবহার করুন।
1# Example containing backslash
2path = "C:\\Program Files\\Python"
3print(path)
4# Output:
5# C:\Program Files\Python
উন্নত উদাহরণ: জটিল স্ট্রিং ফরম্যাটিং
জটিল স্ট্রিং ফরম্যাট করতে এস্কেপ চরিত্রগুলি মিশ্রিত করাও সম্ভব।
1# Example of formatting a message
2message = "Dear User,\n\n\tThank you for your inquiry.\n\tWe will get back to you shortly.\n\nBest Regards,\nCustomer Support"
3print(message)
4# Output:
5# Dear User,
6#
7# Thank you for your inquiry.
8# We will get back to you shortly.
9#
10# Best Regards,
11# Customer Support
সারসংক্ষেপ
পাইথনের এস্কেপ চরিত্রগুলি স্ট্রিংয়ের মধ্যে নির্দিষ্ট নিয়ন্ত্রণ বা বিশেষ অক্ষর অন্তর্ভুক্ত করার জন্য একটি শক্তিশালী টুল। কীভাবে সেগুলি ব্যবহার করতে হয় তা বোঝা এবং প্রয়োজন অনুসারে সঠিকভাবে ব্যবহার করা আরও নমনীয় স্ট্রিং প্রক্রিয়াকরণ সক্ষম করে।
Python সংস্করণ
Python এর প্রধান সংস্করণগুলি এবং তাদের বৈশিষ্ট্যগুলি সংক্ষেপে পর্যালোচনা করি।
- Python 1.0 (1994)
1# Simple code that works in Python 1.0
2def greet(name):
3 print "Hello, " + name # print was a statement
4
5greet("World")
প্রথম অফিসিয়াল রিলিজ। Python-এর মৌলিক সিনট্যাক্স এবং স্ট্যান্ডার্ড লাইব্রেরি প্রতিষ্ঠিত হয়েছিল।
- Python 2.0 (2000)
1# List comprehension
2squares = [x * x for x in range(5)]
3print squares
4
5# Unicode string (u"...")
6greet = u"Hello"
7print greet
গুরুত্বপূর্ণ বৈশিষ্ট্য যেমন লিস্ট কম্প্রিহেনশন, পূর্ণ গারবেজ কালেকশন এবং ইউনিকোড সাপোর্টের সূচনা যোগ করা হয়েছিল। Python 2 দীর্ঘদিন ব্যবহৃত হয়েছে কিন্তু ২০২০ সালে এর সাপোর্ট শেষ হয়েছে।
- Python 3.0 (2008)
1# print is now a function
2print("Hello, world!")
3
4# Unicode text is handled natively
5message = "Hello"
6print(message)
একটি প্রধান আপডেট যা পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয়। print
একটি ফাংশনে রূপান্তরিত হয়েছে, Unicode
ডিফল্ট স্ট্রিং টাইপ হয়েছে এবং পূর্ণসংখ্যা একীভূত হয়েছে, যা Python-এর সামঞ্জস্যতা এবং ব্যবহারযোগ্যতাকে অনেক উন্নত করেছে। Python 3.x ধারাই বর্তমান মূলধারার সংস্করণ।
- Python 3.5 (২০১৫)
1import asyncio
2
3async def say_hello():
4 await asyncio.sleep(1)
5 print("Hello, async world!")
6
7asyncio.run(say_hello())
async
/await
সিনট্যাক্স প্রবর্তিত হয়েছিল, যা অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং আরও সহজ করে তোলে।
- Python 3.6 (২০১৬)
1name = "Alice"
2age = 30
3print(f"{name} is {age} years old.") # f-string makes formatting simple
Format করা String Literals (f-strings) যোগ করা হয়েছিল, যা স্ট্রিং ফরম্যাটিং আরও সুবিধাজনক করেছে। তদ্ব্যতীত, টাইপ হিন্টগুলিকে প্রসারিত করা হয়েছে।
- Python 3.7 (২০১৮)
1from dataclasses import dataclass
2
3@dataclass
4class Person:
5 name: str
6 age: int
7
8p = Person("Bob", 25)
9print(p)
Dataclasses প্রবর্তিত হয়েছিল, যা স্ট্রাকচার-সদৃশ ক্লাস সংজ্ঞায়িত করা সহজ করে। async
/await
এর জন্য সাপোর্ট আরও উন্নত করা হয়েছিল।
- Python 3.8 (২০১৯)
1# Assignment inside an expression
2if (n := len("hello")) > 3:
3 print(f"Length is {n}")
Walrus Operator (:=) যোগ করা হয়েছিল, যা অ্যাসাইনমেন্ট এক্সপ্রেশনের ব্যবহার মঞ্জুর করে। Positional-only parameters
ও প্রবর্তিত হয়েছিল, যা ফাংশন আর্গুমেন্টে নমনীয়তা বাড়ায়।
- Python 3.9 (২০২০)
1a = {"x": 1}
2b = {"y": 2}
3c = a | b # merge two dicts
4print(c) # {'x': 1, 'y': 2}
টাইপ হিন্টগুলির উন্নতি এবং তালিকা ও ডিকশনারি মিশ্রণের জন্য একটি মার্জ অপারেটর (|
) যোগ করা হয়েছিল। স্ট্যান্ডার্ড লাইব্রেরিও পুনর্গঠিত করা হয়েছিল।
- Python 3.10 (২০২১)
1def handle(value):
2 match value:
3 case 1:
4 return "One"
5 case 2:
6 return "Two"
7 case _:
8 return "Other"
9
10print(handle(2))
Pattern matching যোগ করা হয়েছিল, যা আরও শক্তিশালী শর্তযুক্ত বিবৃতি মঞ্জুর করে। এরর বার্তাগুলি উন্নত করা হয়েছিল এবং টাইপ সিস্টেম আরও শক্তিশালী করা হয়েছে।
- Python 3.11 (২০২২)
1# Improved performance (up to 25% faster in general)
2# More informative error messages
3try:
4 eval("1/0")
5except ZeroDivisionError as e:
6 print(f"Caught an error: {e}")
**উল্লেখযোগ্য কার্যক্ষমতা উন্নতি** সাধিত হয়েছিল, যার ফলে পূর্ববর্তী সংস্করণগুলির তুলনায় দ্রুত কার্যকারিতা সম্ভব হয়েছে। তদ্ব্যতীত, এক্সসেপশন হ্যান্ডলিং এবং টাইপ চেকিংয়ে উন্নতি করা হয়েছিল।
- Python 3.12 (২০২৩)
1# Automatically shows exception chains with detailed traceback
2def f():
3 raise ValueError("Something went wrong")
4
5def g():
6 try:
7 f()
8 except Exception:
9 raise RuntimeError("Higher level error") # Automatically chained
10
11try:
12 g()
13except Exception as e:
14 import traceback
15 traceback.print_exception(type(e), e, e.__traceback__)
এরর বার্তাগুলি আরও উন্নত করা হয়েছে এবং কার্যক্ষমতা বাড়ানো হয়েছে। তদ্ব্যতীত, এক্সসেপশন চেইনিং স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়, যার মাধ্যমে আরও বিস্তারিত ডিবাগিং সম্ভব হয়। নতুন সিনট্যাক্স সুবিধা এবং স্ট্যান্ডার্ড লাইব্রেরিতে উন্নতি যোগ করা হয়েছে, যা ডেভেলপারের উত্পাদনশীলতা বাড়ায়।
Python 3.x সিরিজটি উন্নত হচ্ছে, যেখানে সাম্প্রতিক সংস্করণগুলি পারফরম্যান্স, টাইপ সিস্টেম এবং নতুন বৈশিষ্ট্য যোগ করেছে।
আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।