সিএসএস৩ গোলাকৃতির কর্ণার (CSS3 Rounded Corners in Bangla)

সিএসএস৩ border-radius প্রোপার্টি সাহায্যে আপনি যেকোন এলিমেনন্ট এর “গোলাকৃতির কোর্ণার বা পার্শ্ব” তৈরি করতে পারেন।

ব্রাউজার সাপর্ট

টেবিলে উল্লেখিত সংখ্যা ব্রাউজার এর প্রথম ভার্সন যা এই প্রোপার্টি সম্পূর্ণভাবে সাপর্ট করে তা বোঝায়।

-webkit- বা -moz- দ্বারা প্রথম প্রিফিক্স ভার্সন বুঝায় যা এই প্রোপার্টি সাপর্ট করে।

Property  Internet Explorer Google Crome  Mozila Firefox  Safari Opera
border-radius 9.0 5.0
4.0 -webkit-
4.0
3.0 -moz-
5.0
3.1 -webkit-
10.5

 

সিএসএস৩ border-radius প্রোপার্টি

সিএসএস৩ এ এ border-radius  প্রোপার্টি এর সাহায্যে যেকোন এলিমেন্ট  এর “rounded corners” প্রদান করতে পারেন।

এখানে কিছু উদাহরণ দেয়া হলো:

নির্দিষ্ট ব্যাকগ্রাউন্ড রং বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব :

Rounded corners!

 

বর্ডার বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব:

Rounded corners!

 

নির্দিষ্ট ব্যাকগ্রাউন্ড ছবি বিশিষ্ট একটি এলিমেন্ট এর গোলাকৃতি পার্শ্ব :

Rounded corners!

 

এর কোড হচ্ছে:


#rcorners1 {
    border-radius: 25px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners2 {
    border-radius: 25px;
    border: 2px solid #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners3 {
    border-radius: 25px;
    background: url(paper.gif);
    background-position: left top;
    background-repeat: repeat;
    padding: 20px;
    width: 200px;
    height: 150px;
}

 

টিপস: border-radius হচ্ছে border-top-left-radius, border-top-right-radius, border-bottom-right-radius এবং border-bottom-left-radius এর সংক্ষিপ্ত প্রোপার্টি।

 

সিএসএস৩ border-radius প্রতিটি আলাদা পার্শ্ব পরিবর্তন

যদি আপনি border-radius প্রোপার্টি এর একটিমাত্র মান নির্ধারণ করেন তাহলে তা চারটি কর্ণারের উপরই কার্যকর হবে।

যদি আপনি চান তাহলে প্রতিটি আলাদা পার্শ্ব এর মান নির্ধারণ করে দিতে পারেন। এখানে তার নিয়ম দেয়া হলো:

  • চারটি মান: প্রথম মান উপরের বাম পাশের, দ্বিতীয় মান উপরের ডান পাশের, তৃতীয় মান নিচের ডান পাশের এবং চতুর্থ মান নিচের বাম পাশের কর্ণারের উপর প্রয়োগ হয়।
  • তিনটি মান: প্রথম মান উপরের বাম পাশে, দ্বিতীয় মান উপরের ডান পাশ ও নিচের বাম পাশে এবং তৃতীয় মান নিচের ডান পাশের কর্ণারের উপর কাজ করে।
  • দুইটি মান: প্রথম মান উপরের বাম পাশ ও নিচের ডান পাশ এবং দ্বিতীয় মান উপরের ডান পাশ ও নিচের বাম পাশের কর্ণারের উপর কাজ করে।
  • একটি মান: চারটি কর্ণরকেই সমানভাবে গোলাকৃতি করে।

 

এখানে তিনটি উদাহরণ দেয়া হলো:

১. চারটি মান – border-radius: 15px 50px 30px 5px:

Rounded corners!

২. তিনটি মান – border-radius: 15px 50px 30px:

Rounded corners!

৩. দুইটি মান – border-radius: 15px 50px:

Rounded corners!

 

এখানে এর কোড দেয়া হলো:


#rcorners4 {
    border-radius: 15px 50px 30px 5px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners5 {
    border-radius: 15px 50px 30px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners6 {
    border-radius: 15px 50px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

 

আপনি উপবৃত্তাকার কোণও তৈরি করতে পারেন:


#rcorners7 {
    border-radius: 50px/15px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners8 {
    border-radius: 15px/50px;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

#rcorners9 {
    border-radius: 50%;
    background: #8AC007;
    padding: 20px;
    width: 200px;
    height: 150px;
}

পাইথন প্রোগ্রামিং : সিদ্ধান্ত গ্রহণ (Python Decision Making)

1.7 Python Decision Making

Decision Making অর্থাৎ সিদ্ধান্ত নেয়াটা যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ এর একটি প্রচলিত অংশ, যেখানে প্রোগ্রামটি কিছু প্রদত্ত শর্তের উপর ভিত্তিতে কোন একটি প্রোসেস সত্য নাকি মিথ্যা সেটা যাচাই করে। প্রায় সব প্রোগ্রামিং ল্যাংগুয়েজেই Decision Making এর ব্যাপার আছে। নিচের চিত্রে Decision Making এর একটা ব্যাসিক ধারণা দেয়া হলঃ

Decision Making

কোন শর্ত যদি মিথ্যা হয়, তবে Python সেটার ফলাফল ধরে শূন্য (=০), আর যদি সত্য হয় তবে সেক্ষেত্রে ০ ছাড়া যেকোনো মান (সাধারণত = ১)। নিচে Python এ ব্যবহৃত Decision Making টাইপ গুলো বলা হলঃ

if statements

if statement এ অন্যান্য প্রোগ্রামিং ল্যাংগুয়েজের মতই একটি শর্ত থাকে যার সাহায্যে একাধিক ডাটার তুলনা করা হয়, এবং সিদ্ধান্ত নেয়া হয়। এই স্টেটমেন্টটি boolean expression অনুসরন করে (অর্থাৎ শর্তটি সত্য নাকি মিথ্যা সেটা যাচাই করে) শুধুমাত্র ২ ধরনের ফলাফল দিতে পারে।

Syntax


if expression:
   statement(s)

 

যদি If এর পরে ব্যবহৃত boolean expression টি TRUE হয়, তবে পরবর্তী statement(s) টি ঘটবে, আর যদি FALSE হয়, তবে if statement(s) টি শেষ হবে এবং এর পরের প্রথম code টি ঘটবে।

উদাহরণ


#!/usr/bin/python

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
print "Good bye!"

 

উপরের প্রোগ্রামটি রান করালে নিচের ফলাফল প্রিন্ট হবে।


1 - Got a true expression value
100
Good bye!

 

আবার, if statement এর পরে এক লাইনের শর্ত (স্টেটমেন্ট) থাকলে সেটি if statement এর পরেই একই লাইনে লেখা যেতে পারে। যেমন,


#!/usr/bin/python

var = 100

if ( var  == 100 ) : print "Value of expression is 100"

print "Good bye!"

 

উপরের প্রোগ্রামটি রান করালে নিচের ফলাফল প্রিন্ট হবে।


Value of expression is 100
Good bye!

 

if…else statements

এক্ষেত্রে if statement এর পরেই একটি else statement ও থাকে, যার ফলে যদি প্রথম if statement টি মিথ্যা হয় (মান=০) তবে পরবর্তী else statement এর কোডটি ঘটবে।

Syntax


if expression:
   statement(s)
else:
   statement(s)

 

উদাহরণ


#!/usr/bin/python

var1 = 100
if var1:
   print "1 - Got a true expression value"
   print var1
else:
   print "1 - Got a false expression value"
   print var1

var2 = 0
if var2:
   print "2 - Got a true expression value"
   print var2
else:
   print "2 - Got a false expression value"
   print var2

print "Good bye!"

 

উপরের প্রোগ্রামটি রান করালে নিচের ফলাফল প্রিন্ট হবে।


1 - Got a true expression value
100
2 - Got a false expression value
0
Good bye!

 

elif Statement

elif statement এর সাহায্যে একটি if statement এর পরে একসঙ্গে একাধিক এক্সপ্রেশন (elif statement) যাচাই করে দেখা যায় কোনটা সত্য, তারপর যেই স্টেটমেন্টটি সত্য (TRUE) সেটার কোড চালু হয়। else এর মত elif statement ও optional.

syntax


if expression1:
   statement(s)
elif expression2:
   statement(s)
elif expression3:
   statement(s)
else:
   statement(s)

 

Python এ switch কিংবা case statements নেই, তবে switch করার দরকার পরলে if..elif…statements দিয়ে কাজ চালানো যায়।

উদাহরণ


#!/usr/bin/python

var = 100
if var == 200:
   print "1 - Got a true expression value"
   print var
elif var == 150:
   print "2 - Got a true expression value"
   print var
elif var == 100:
   print "3 - Got a true expression value"
   print var
else:
   print "4 - Got a false expression value"
   print var

print "Good bye!"

 

উপরের প্রোগ্রামটি রান করালে নিচের ফলাফল প্রিন্ট হবে।


3 – Got a true expression value
100
Good bye!


nested if statements

একটি শর্ত পূরন হবার পরে আরেকটি ভিন্ন শর্ত পূরন হয়েছে কিনা সেটা দেখতে nested if  স্টেটমেন্ট ব্যবহার হয়। এই ধরনের Decision making অপেক্ষাকৃত জটিল, এবং এখানে একটি  if… elif… else এর অংশ হতে পারে।

Syntax:


if expression1:
   statement(s)
   if expression2:
      statement(s)
   elif expression3:
      statement(s)
   else
      statement(s)
elif expression4:
   statement(s)
else:
   statement(s)

 

উদাহরন:


#!/usr/bin/python

var = 100
if var < 200:
   print "Expression value is less than 200"
   if var == 150:
      print "Which is 150"
   elif var == 100:
      print "Which is 100"
   elif var == 50:
      print "Which is 50"
elif var < 50:
   print "Expression value is less than 50"
else:
   print "Could not find true expression"

print "Good bye!"

 

উপরের প্রোগ্রামটি রান করালে নিচের ফলাফল প্রিন্ট হবে।


Expression value is less than 200
Which is 100
Good bye!

 

পাইথন প্রোগ্রামিং : মৌলিক অপারেটরসমূহ (Python Basic Operators in Bangla)

1.6 Python Basic Operators

একটি সহজ সমীকরণ বিবেচনা করিঃ ৪ + ৫ = ৯; এখানে ৪ এবং ৫ সংখ্যাগুলোকে হচ্ছে ‘operands’ এবং ‘+’ হচ্ছে ‘operators’। Python এ নিম্নোক্ত operators গুলো ব্যবহৃত হয়।

  • Arithmetic Operators
  • Comparison (Relational) Operators
  • Assignment Operators
  • Logical Operators
  • Bitwise Operators
  • Membership Operators
  • Identity Operators

নিচে কিছু উদাহরণ দেয়া হয়েছে (এখানে, a = 10 এবং b = 20)।

Operator Description Example

Python Arithmetic Operators (যোগ, বিয়োগ, গুন, ভাগ ইত্যাদি)

+ যোগ Operator এর দুইপাশের মান গুলো যোগ করে। a + b = 30
– বিয়োগ Operator এর বাম পাশের মান থেকে ডান পাশের মান বিয়োগ করে। a – b = -10
* গুন Operator এর দুইপাশের মান গুলো গুন করে। a * b = 200
/ ভাগ Operator এর বাম পাশের মানকে ডান পাশের মান দিয়ে ভাগ করে। b / a = 2
% Modulus (ভাগশেষ) Operator এর বাম পাশের মানকে ডান পাশের মান দিয়ে ভাগ করে ভাগশেষ নির্নয় করে। b % a = 0
** Exponent (পাওয়ার) Operators এর পাওয়ার নির্নয় করে। a**b =1020
// Floor Division (পূর্ণ-সংখ্যার ভাগফল) Operator এর বাম পাশের মানকে ডান পাশের মান দিয়ে ভাগ করে ভাগফল বের করে এবং দশমিকের আগ পর্যন্ত (পূর্ণ-সংখ্যা) মান নির্নয় করে। 9//2 = 4 এবং 9.0//2.0 = 4.0

Python Comparison Operators (দুটি operand এর তুলনা ও সম্পর্ক স্থাপন)।

== সমান চিহ্ন। (a == b) সঠিক নয়।
!= অথবা <> অসমান চিহ্ন। (a != b) সঠিক।
>, <, >= এবং <= অসমতা’র চিহ্ন। (a > b) সঠিক নয়, আবার (a <= b) সঠিক।

Python Assignment Operators

= ডান দিকের operand এর মান বাম পাশের operand এ রেকর্ড করে। c = a + b অর্থ a + b এর মান c তে রেকর্ড করা
+= Add AND ডান দিকের operand এর মান বাম পাশের operand এর সাথে যোগ করে নতুন করে বাম দিকের operand এর মান হিসেবে রেকর্ড করে। c += a এর অর্থ c = c + a
-= Subtract AND ডান দিকের operand এর মান বাম পাশের operand থেকে বিয়োগ করে নতুন করে বাম দিকের operand এর মান হিসেবে রেকর্ড করে। c -= a এর অর্থ c = c – a
*= Multiply AND দুই পাশের operand গুন করে বাম দিকের operand এর নতুন মান হিসেবে রেকর্ড করে। c *= a এর অর্থ c = c * a
/= Divide AND বাম দিকের operand ডান পাশের operand দিয়ে ভাগ করে প্রাপ্ত ভাগফল বাম দিকের operand এর নতুন মান হিসেবে রেকর্ড করে। c /= a এর অর্থ c = c / a
%= Modulus AND দুই দিকের operands এর মডুলাস (ভাগশেষ) বাম পাশের operand এর মান হিসেবে রেকর্ড করে। c %= a এর অর্থ c = c % a
**= Exponent AND দুই দিকের operands এর পাওয়ার বাম পাশের operand এর মান হিসেবে রেকর্ড করে। c **= a এর অর্থ c = ca
//= Floor Division দুই দিকের operands এর Floor Division বাম পাশের operand এর মান হিসেবে রেকর্ড করে। c //= a এর অর্থ c = c // a

Python Bitwise Operators (বাইনারি হিসাব)

মনে a = 60; এবং b = 13 হয়, তবে বাইনারি ফরম্যাট এ a = 0011 1100 এবং b = 0000 1101
a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011

Python Membership Operators

in অথবা not in একটি ভেরিয়েবল একটি বিশেষ সিরিজ অথবা ধারার অংশ হিসেবে যথাক্রমে থাকা বা না থাকা নির্দেশ করে। x in y এর ফলাফল 1 হবে যদি x ভেরিয়েবলটি y ধারার অংশ হয়, তেমনই ভাবে x not in y এর মান 1 হবে যদি x ভেরিয়েবলটি y ধারার অংশ না হয়।

Python Identity Operators

is এই অপারেটর বুঝায় যে এর দুই পাশের ভেরিয়েবলগুলো একই বস্তু নির্দেশ করে। x is y এর ফলাফল 1 হবে যদি x ও y একই বস্তু বোঝায়।
is not এই অপারেটর বুঝায় যে এর দুই পাশের ভেরিয়েবলগুলো একই বস্তু নির্দেশ করে না। x is not y এর ফলাফল 1 হবে যদি x ও y একই বস্তু না বোঝায়।

Python Operators Precedence (অগ্রাধিকার)

নিচে Python এর অপারেটর এর সিরিয়াল/ অগ্রাধিকার (কোনটির কাজ আগে হবে) দেয়া হলঃ

  1. **
  2. ~ + –
  3. * / % //
  4. + –
  5. >> <<
  6. &
  7. ^ |
  8. <= < > >=
  9. <> == !=
  10. = %= /= //= -= += *= **=
  11. is is not
  12. in not in
  13. not or and

পাইথন প্রোগ্রামিং : ভেরিয়েবল টাইপ (Python Variable Types in bangla)

1.5 Python Variable Types

ভেরিয়েবল হচ্ছে মেমোরি তে নির্ধারিত জায়গা (স্পেস) যেখানে বিভিন্ন জিনিসের মান (value) স্টোর করে রাখা হয়। ভেরিয়েবল তৈরি করা মানেই কম্পিউটারের মেমোরিতে একটা নির্দৃষ্ট স্পেস সঞ্চয় করে রাখা। যেকোনো ভেরিয়েবল কি ধরনের ডাটা রেকর্ড/ স্টোর করবে সেটা নির্ভর করে ভেরিয়েবল উপর।

Python এ সমতা চিহ্নের (=) মাধ্যমে যেকোনো ধরনের মান (value) ভেরিয়েবল হিসেবে স্টোর করা যায়, এক্ষেত্রে আলাদা করে কোন ডিক্লারেশনের প্রয়োজন নেই। সমতা চিহ্নের বাম পাশে ব্যবহৃত শব্দটি ভেরিয়েবলের নাম এবং ডান পাশের সংখ্যাটি ভেরিয়েবলের মান নির্দেশ করে। যেমন,


#!/usr/bin/python

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string

print counter
print miles
print name

উপরের প্রোগ্রামটির ফলাফল হবে এমন,


1001000.0


 

Python এ একাধিক ভেরিয়েবলের জন্য একটি নির্দৃষ্ট মান স্টোর করা যায়। আবার একাধিক ভেরিয়েবলের জন্য যথাক্রমে একাধিক মানও একসাথে স্টোর করা যায়। যেমন,


a = b = c = 1


 

এবং


a, b, c = 1, 2, “john”


 

প্রথম প্রোগ্রামটিতে a, b এবং c এর মান 1 স্টোর করা হয়েছে, আর দ্বিতীয় প্রোগ্রামটিতে a, b এবং c এর মান যথাক্রমে 1, 2 এবং john স্টোর করা হয়েছে।

Python এ ৫ ধরনের স্ট্যান্ডার্ড ডাটা টাইপ আছে। যেমন,

  • Numbers
  • String
  • List
  • Tuple
  • Dictionary

Numbers

Numbers হচ্ছে যেকোনো প্রকারের সংখ্যা। Python ৪ ধরনের সংখ্যা (Numbers) সাপোর্ট করে। যেমন,

  • int (ছোট পূর্ণসংখ্যা)
  • long (বড় পূর্ণসংখ্যা, octal কিংবা hexadecimal আকারে প্রকাশ করা যায়)
  • float (বাস্তব সংখ্যার কাছাকাছি মান)
  • complex (জটিল সংখ্যা)

নিচের টেবিলে কিছু সংখ্যার উদাহরণ দেয়া হলঃ

int long float complex
10 51924361L 0.0 3.14j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J

 

Strings

Strings হচ্ছে কোটেশান মার্কের (“”) ভেতর ব্যবহৃত বর্ণ/ শব্দ সমূহ। বিভিন্ন রকমের slice operator ([ ] and [:]) এর সাহায্য নিয়ে নির্ধারিত string এর অংশবিশেষ অথবা বিভিন্ন পূনর্বিন্যাস আউটপুট হিসেবে দেখা যায়। যেমন,


#!/usr/bin/python

str = 'Hello World!'

print str          # Prints complete string
print str[0]       # Prints first character of the string
print str[2:5]     # Prints characters starting from 3rd to 5th
print str[2:]      # Prints string starting from 3rd character
print str * 2      # Prints string two times
print str + "TEST" # Prints concatenated string

 

উপরের প্রোগ্রামটির ফলাফল হবে,


Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

 

Lists

List হল তৃতীয় ব্র্যাকেট ([ ]) এ আবদ্ধ, ও কমা (commas) দিয়ে আলাদা করা আইটেম। যেমন,


#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd 
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists

 

উপরের প্রোগ্রামটির রেসাল্ট হবে,


['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

 

Tuples

Tuple আর List মূলত একই রকম, শুধু পার্থক্য হচ্ছে যে Tuple এ প্রথম ব্র্যাকেট ( ) ব্যবহৃত হয়, কিন্তু List এ তৃতীয় ব্র্যাকেট [ ] ব্যবহার হয়। এছাড়াও Tuple এর মান পরে পরিবর্তন করা যায়না (read-only values), কিন্তু List এর মান আপডেট করা যায়। Tuple এর উদাহরনঃ


#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print tuple           # Prints complete list
print tuple[0]        # Prints first element of the list
print tuple[1:3]      # Prints elements starting from 2nd till 3rd 
print tuple[2:]       # Prints elements starting from 3rd element
print tinytuple * 2   # Prints list two times
print tuple + tinytuple # Prints concatenated lists

 

উপরের প্রোগ্রামের ফলাফলঃ


('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

 

নিচের Tuple কোডটি ভুল, কারন এখানে Tuple এর মান পরিবর্তন/ আপডেট করার চেষ্টা করা হয়েছে। কিন্তু List এর জন্য কোডটি ঠিক আছে।


#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

 

Dictionary

Dictionary দিয়ে Key-Value জোড়ায় জোড়ায় থাকে। যেকোনো ডাটা টাইপ Key হতে পারে, যদিও সাধারণত numbers বা strings ই Key হিসেবে রেকর্ডেড হয়। অন্যদিকে, যেকোনো সংখ্যা/ অবজেক্টই Value হিসেবে রেকর্ড হতে পারে। Dictionary দ্বিতীয় ব্র্যাকেট { } এর সাহায্যে প্রকাশ করা হয় এবং তৃতীয় ব্র্যাকেটের সাহাজে Doctionary তে Value এসাইন করা হয়। যেমন,


#!/usr/bin/python

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

 

উপরের কোড এর রেসাল্ট হবে −


This is one
This is two
{‘dept’: ‘sales’, ‘code’: 6734, ‘name’: ‘john’}
[‘dept’, ‘code’, ‘name’]
[‘sales’, 6734, ‘john’]


এখানে উল্লেখ্য যে, Dictionary তে ক্রম, সিরিয়াল বা অর্ডার ঠিক রাখার কোন ব্যপার নেই।

 

Data Type Conversion

Python এ একধরনের ডাটা টাইপ থেকে আরেকটিতে রূপান্তর করার জন্য কিছু বিল্ট-ইন ফাংশন আছে, যেগুলো আউটপুট হিসেবে পরিবর্তিত মান সহ নতুন অবজেক্ট তৈরি করে। নিচে কিছু ফাংশন ও তাদের অর্থ দেয়া হলঃ

ফাংশন বর্ননা
int(x [,base]) x কে একটি পূর্ণসংখ্যায় রূপান্তর করে, এবং base লিখাটি বেস কে নির্দেশ (specify) করে যদি x একটি স্ট্রিং হয়।
long(x [,base] ) x কে একটি দীর্ঘ পূর্ণসংখ্যায় রূপান্তর করে, এবং base লিখাটি বেস কে নির্দেশ (specify) করে যদি x একটি স্ট্রিং হয়।
float(x) x কে একটি floating-point সংখ্যায় রূপান্তর করে।
complex(real [,imag]) জটিল সংখ্যা তৈরি করে।
str(x) x কে একটি string representation এ রূপান্তর করে।
repr(x) x কে একটি expression string এ রূপান্তর করে।
eval(str) একটি string কে এভালুয়েট করে এবং একটি নতুন অবজেক্ট সৃষ্টি করে।
tuple(s) s কে একটি tuple এ রূপান্তর করে।
list(s) s কে list এ রূপান্তর করে।
set(s) s কে set এ রূপান্তর করে।
dict(d) একটি dictionary তৈরি করে। তবে, d কে অবশ্যই (key,value) ফরম্যাট এর tuples হতে হবে.
frozenset(s) s কে frozen set এ রূপান্তর করে।
chr(x) একটি integer কে একটি character এ রূপান্তর করে।
unichr(x) একটি integer কে একটি Unicode character এ রূপান্তর করে।
ord(x) একটি single character কে এর পূর্ণ-সাঙ্খ্যিক (integar) মানে প্রকাশ করে।
hex(x) একটি integer কে একটি hexadecimal string এ রূপান্তর করে।
oct(x) একটি integer কে একটি octal string এ রূপান্তর করে।

 

পাইথন প্রোগ্রামিং : বেসিক সিনট্যাক্স (Python Basic Syntax in bangla)

1.4 Python Basic Syntax

আপনার Python প্রম্পট এ নিচের প্রোগ্রামটি লিখুন এবং Enter চাপুন।


>>> print “Hello, Python!”


 

অনেক সময় নতুন ভার্সনে কাজ করলে ব্র্যাকেটের ভেতর প্রিন্ট স্টেটমেন্ট দিতে হয় যেমন, print (“Hello, Python!”)। যাইহোক, 2.4.3 ভার্সনে রান উপরের স্ক্রিপ্টটি রান করলে নিচের ফলাফলটি আসবে।

Hello, Python!

 

Python Identifiers

Python এর ভেরিয়েবল, ফাংশন, ক্লাস, মোডিউল কিংবা অন্যান্য অবজেক্ট রেকর্ড করার জন্য যেসব নাম ব্যবহৃত হয় তাদের কে Python Identifiers বলে এসব নাম ‘A থেকে Z’ অথবা ‘a থেকে z’ অথবা underscore (_) দিয়ে শুরু হয় এবং এরপর যেকোনো অক্ষর, underscore কিংবা সংখ্যা (0-9) ব্যবহৃত হয়। Python এর Identifier হিসেবে @, $, % ব্যবহার করা যায় না। তাছাড়া, Python কেস সেন্সিটিভ, অর্থাৎ A এবং a এখানে আলাদা অর্থ বহন করে। যেমন, Python identifier এ Manpower এবং manpower এর দুটি আলাদা নাম। নিচে বিভিন্ন Python identifier এর নামকরণ পদ্ধতি বর্ণনা করা হল।

  • শুধুমাত্র Class name গুলো বড় হাতের অক্ষর দিয়ে শুরু হয়, অন্য সব নামকরণ শুরু হয় ছোট হাতের অক্ষর দিয়ে।
  • কোন identifier যদি শুধুমাত্র একটি underscore (_) দিয়ে শুরু হয় তবে তার অর্থ হচ্ছে এটি একটি ‘private identifier’.
  • যদি কোন identifier পর পর দুটি underscore (_) দিয়ে নামকরণ হয় তবে সেটি ‘strongly private identifier’.
  • যদি কোন identifier এর নাম পর পর দুটি underscore (_) দিয়ে শেষ হয়, তবে তাকে language-defined special name বলে।

নিচে Python এর কী-ওয়ার্ড গুলোর লিস্ট দেয়া হল। এই কী-ওয়ার্ড গুলোর বিশেষ অর্থ রয়েছে এবং Python এ কোন প্রকার কন্সট্যান্ট, ভেরিয়েবল অথবা আইডেন্টিফাইয়ার হিসেবে এই শব্দগুলো ব্যবহার করা যায়না। Python কী-ওয়ার্ড এ শুধুমাত্র ছোট হাতের অক্ষর ব্যবহৃত হয়।

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

লাইন ও মার্জিন

এছাড়াও, Python এর কোড কিংবা স্টেটমেন্ট এর একটি নির্দৃষ্ট ব্লক বোঝাতে লাইনের আগে সমান সংখ্যক/ পরিমাণ গ্যাপ (স্পেস) থাকে। অর্থাৎ স্ক্রিপ্টের দুটি continuous line যদি সমান পরিমাণ মার্জিনেই শুরু হয়, তার অর্থ হচ্ছে লাইন দুটো একই ব্লকের। কাজেই একই ব্লকের continuous line ভিন্ন ভিন্ন মার্জিনে শুরু হলে প্রোগ্রামিং এ error দেখা দিবে। উদাহরণস্বরূপ, নিচের কোডটি ঠিক আছে।


if True:
    print "True"
else:
  print "False"

 

কিন্তু, নিচের কোড টি ঠিক নয়। কারন এখানে একই ব্লকের পর পর দুটি স্টেটমেন্ট এর মার্জিন ভিন্ন। print “Answer” এবং print “False” এর মার্জিন দেখুন।


if True:
    print "Answer"
    print "True"
else:
    print "Answer"
  print "False"

 

নিচে আরেকটি জটিল স্টেটমেন্ট এর কোড দেখানো হল। এখানে বিভিন্ন ব্লক গুলো ধরতে পারার চেষ্টা করুন (আপাতত যুক্তি বোঝার দরকার নেই!)।


#!/usr/bin/python

import sys

try:
  # open file stream
  file = open(file_name, "w")
except IOError:
  print "There was an error writing to", file_name
  sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
  file_text = raw_input("Enter text: ")
  if file_text == file_finish:
    # close the file
    file.close
    break
  file.write(file_text)
  file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
  print "Next time please enter something"
  sys.exit()
try:
  file = open(file_name, "r")
except IOError:
  print "There was an error reading file"
  sys.exit()
file_text = file.read()
file.close()
print file_text

 

একাধিক লাইনের স্টেটমেন্ট

Python এর statement সাধারণত নতুন লাইন এ গিয়ে শেষ হয়। তবে কোন স্টেটমেন্টের শেষে continuation character (\) সেটা দিয়ে স্টেটমেন্টটি আরও চলবে (continued statement) সেটা বোঝানো হয়। যেমন,


total = item_one + \
        item_two + \
        item_three

 

কিন্তু, কোন স্টেটমেন্ট যদি [], {}, বা () ব্র্যাকেটের ভেতর থাকে তবে continuation character (\) দেয়ার দরকার নেই। যেমন,


days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

 

Python এ কোটেশান এর প্রয়োগ

Python এর string literal এ একটি (‘), দুটি (“) কিংবা তিনটি (”’ বা “””) কোটেশান চিহ্ন ব্যবহার করা যায়, তবে যেই কোটেশান দিয়ে বাক্য শুরু হয়েছে, সেটি দিয়েই শেষ করতে হবে। তিনটি কোট (”’ বা “””) দিয়ে দুটি দুই বা ততোধিক লাইনের string literal সম্পন্ন করা যায়। যেমন, নিচের সবকটি string সঠিক।


word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""

 

Python এ কমেন্ট

String literal এর বাইরে হ্যাশ চিহ্ন (#) টাইপ করে যদি কোন বাক্য লেখা হয়, তবে সেটি একটি ‘কমেন্ট’ হিসেবে গণ্য হবে। সহজ কথায়, # চিহ্নের পরে ব্যবহৃত একই লাইনের সকল অক্ষর একসাথে একটি কমেন্ট হিসেবে বিবেচিত হবে, এবং Python interpreter সব ধরনের কমেন্টকে ignore করবে। যেমন,


#!/usr/bin/python

# First comment
print "Hello, Python!" # second comment

 

এই স্ক্রিপ্টটি রান করলে নিচের রেসাল্টটি আসবে।


Hello, Python!


 

যেকোনো স্টেটমেন্ট, কিংবা এক্সপ্রেশন এর পরে কমেন্ট সংযোজন করা যায়।


name = "Madisetti" # This is again comment

 

দরকার পরলে একাধিক কমেন্টও যোগ করে নিতে পারেন।


# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

 

শূন্য লাইন (Blank Lines)

কোন লাইনে শুধুমাত্র স্পেস, অথবা কোন কমেন্ট থাকলে সেটাকে blank line বলে, এবং Python তাকে সম্পূর্ণরূপে ignore করে। Interactive interpreter session চলাকালীন blank line দিয়ে একাধিক বাক্যের স্টেটমেন্ট এর শেষ বোঝানো হয়।

এখন নিচের প্রোগ্রামটি লক্ষ্য করি।


#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

 

প্রোগ্রামটি রান করলে, ফলাফল হিসেবে প্রিন্ট হবে, “Press the enter key to exit” এবং তারপর কী-বোর্ডে কোন কিছু টাইপ করা মাত্রই প্রোগ্রামটি শেষ হবে। এখানে “\n\n” ব্যবহার করার জন্য আসল বাক্যটি দেখানোর আগে দুটি blank line আসবে। এই স্ক্রিপ্টটির সাহাজ্যে সহজেই এমন একটি প্রোগ্রাম তৈরি করা যায়, যেখানে কোন ইউসার নিজে কোন বাটনে চাপ দেয়ার আগ পর্যন্ত প্রোগ্রাম স্ক্রিন খোলা থাকবে।

 

একই লাইনে একাধিক স্টেটমেন্ট

একই লাইনে (অবশ্যই একই ব্লকে) একাধিক স্টেটমেন্ট বোঝাতে সেমি-কোলন (;) চিহ্ন ব্যবহার করা হয়। যেমন,


import sys; x = 'foo'; sys.stdout.write(x + '\n')

 

Suites (একাধিক স্টেটমেন্ট গ্রুপ)

আলাদা আলাদা স্টেটমেন্ট এর একটি মাত্র ‘গ্রুপ’ যখন একসাথে একটি কোড ব্লক তৈরি করে তখন তাকে Suites বলে। জটিল/ যৌগিক/ বড় স্টেটমেন্ট এর ক্ষেত্রে, if, while, def অথবা class এর ক্ষেত্রে একটি হেডার লাইন এবং পরে একটি suite এর প্রয়োজন হয়। হেডার লাইনের আগে একটি কী-ওয়ার্ড থাকে এবং পরে কোলন চিহ্ন (:) থাকে, যার পরে এক বা একাধিক লাইনের suite ব্যবহার করা হয়। যেমন,


if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

 

Command Line আর্গুমেন্টঃ

অনেক সময় একটা প্রোগ্রাম কিভাবে রান করানো উচিৎ, সেই তথ্যও অন্য একটি প্রোগ্রাম এ দেয়া হয়, যা কমান্ড লাইন আর্গুমেন্ট হিসেবে পরিচিত। Python এ –h- এর সাহায্যে এরকম প্রোগ্রাম কোড করা যায়। কমান্ড লাইন আর্গুমেন্টের কনসেপ্ট অপেক্ষাকৃত জটিল, যা এই টিউটোরিয়াল এর পরবর্তি অংশে আলোচনা করা হবে।

 

পাইথন প্রোগ্রামিং টিউটোরিয়াল : ইন্সটলেশন (Python – Environment Setup in bangla)

লিখেছেন: আবরার রেজওয়ান শুভ

 

1.3 Python – Environment Setup

Local Environment Setup

Local Environment Setup এর ক্ষেত্রে আপনার কম্পিউটার এর সার্চ ইঞ্জিনে টাইপ করুন ‘Python’ এবং দেখুন এটি আপনার কম্পিউটারে ইন্সটল করা আছে কিনা, এবং যদি থাকে তবে এর ভার্সনটি জেনে রাখুন। এছড়াও Python এর অফিশিয়াল ওয়েবসাইট (http://www.python.org/) থেকে এর সর্বশেষ আপডেট, সোর্স কোড, বাইনারিস, ডকুমেন্টস ইত্যাদি ডাওনলোড করা যাবে।

Python ইন্সটলেশন

http://www.python.org/download/ ওয়েবসাইটে বিভিন্ন অপারেটিং সিস্টেমের জন্য Python এর বিভিন্ন ভার্সন পাওয়া যাবে, সেখান থেকে আপনার অপারেটিং সিস্টেম অনুযায়ী উপযুক্ত ভার্সনটি ডাউনলোড করে ইন্সটল করুন। ডাউনলোড করা ফাইলটিতে ডাবল ক্লিক করলেই ইন্সটলেশন শুরু হয়ে যাবে, ডিফল্ট সেটিংস এই ইন্সটল করুন।

যদি আপনার অপারেটিং সিস্টেমের জন্য প্রযোজ্য বাইনারি কোড না পান, তবে আপনাকে আলাদা ভাবে এর জন্য সোর্স কোড কম্পাইল করতে হবে (C Compiler এর সাহায্যে)। অবশ্য এভাবে ম্যানুয়াল কম্পাইলেশনের একটি সুবিধা হচ্ছে আপনি আপনার সুবিধা মত বিভিন্ন ফিচার বাছাই করতে পারবেন।

PATH সেট আপ করা

Python প্রোগ্রাম ও এর এক্সেকিউটেবল ফাইল গুলো বিভিন্ন ডিরেক্টরি তে থাকতে পারে, তাই অপারেটিং সিস্টেমের একটি SEARCH PATH এর দরকার হয় যেখানে এমন সব ডিরেক্টরির নাম থাকবে যেখানে অপারেটিং সিস্টেম Python এর এক্সিকিউটেবল ফাইল গুলো সার্চ করবে। এই path টি একটি ভেরিয়েবল হিসেবে স্টোর করা হয়, এবং অপারেটিং সিস্টেম নিজে এই ভেরিয়েবল নিয়ন্ত্রন করে, এবং এতে command shell এর সব ইনফর্ম্যাশন থাকে। এই path ভেরিয়েবলের নাম PATH (Unix) অথবা Path (Windows). এখানে লক্ষণীয় যে Unix/ Linax কেস সেন্সিটিভ, কিন্তু windows তা নয়।

Unix/Linux অপারেটিং সিস্টেম এর ক্ষেত্রে

Python ডিরেক্টরিটি path ভেরিয়েবল এ এ সংযোজন করতে হলে নিচের কমান্ডগুলো টাইপ করতে হবেঃ

  • csh shell: setenv PATH “$PATH:/usr/local/bin/python” টাইপ করুন Enter চাপুন।
  • bash shell (Linux): export PATH=”$PATH:/usr/local/bin/python” টাইপ করুন Enter চাপুন।
  • sh অথবা ksh shell: PATH=”$PATH:/usr/local/bin/python” টাইপ করুন Enter চাপুন।

নোট: Unix/Linux অপারেটিং সিস্টেম এ Python এর ডিফল্ট ডিরেক্টরি হচ্ছে /usr/local/bin/python

Windows অপারেটিং সিস্টেম এর ক্ষেত্রে

  • command prompt path %path%;C:\Python টাইপ করুন Enter চাপুন।

নোট: Windows অপারেটিং সিস্টেম এ Python এর ডিফল্ট ডিরেক্টরি হচ্ছে C:\Python

Python এনভাইরনমেন্ট ভেরিয়েবলঃ

নিচে Python এর কিছু গুরুত্ত্বপূর্ণ এনভাইরনমেন্ট ভেরিয়েবল এর নাম ও সংক্ষিপ্ত বর্ণনা দেয়া হলঃ

ভেরিয়েবল বর্ণনা
PYTHONPATH এটি অনেকটাই PATH ভেরিয়েবলের মত। এই ভেরিয়েবলের কাজ হচ্ছে Python প্রোগ্রাম এ ইম্পোর্ট করা মোডিউল ফাইল গুলোর লোকেশন ঠিক করা এবং সেই অনুযায়ী Python interpreter কে দিক নির্দেশনা করা। PYTHONPATH ভেরিয়েবলটি Python সোর্স কোড ও এর লাইব্রেরির ডিরেক্টরি রেকর্ড করে। PYTHONPATH ভেরিয়েবলটি সাধারনত Python ইন্সটলেশনের সময় অটোম্যাটিক সেট হয়ে যাবে।
PYTHONSTARTUP এই ভেরিয়েবলটি Python সোর্স কোডের ইনিশিয়ালাইজেশন ফাইল এর লোকেশন রেকর্ড করে, এবং যখনি interpreter চালু করা হবে তখনই এই ভেরিয়েবলটিও রান হবে। Unix অপারেটিং সিস্টেমে ফাইলটির নাম .pythonrc.py, এবং এতে PYTHONPATH ভেরিয়েবল লোড ও মোডিফাই করার কমান্ড থাকে।
PYTHONCASEOK এই ভেরিয়েবলটি Windows এ ব্যবহৃত হয় এবং এর কাজ হচ্ছে Python কে ইন্সট্রাকশন দেয়া যাতে এটি যেকোনো ইম্পোর্ট স্টেটমেন্টের প্রথম কেস-ইনসেন্সিটিভ ম্যাচ খুজে বের করতে পারে। এই ভেরিয়েবল এ যেকোনো মান সেট করলেই ভেরিয়েবলটি একটিভেট হবে।
PYTHONHOME

এটি একটি alternative module search path, এটি সাধারণত PYTHONSTARTUP ও PYTHONPATH এর ডিরেক্টরিস এই সংযুক্ত থাকে, এবং এর কাজ হচ্ছে মোডিউল লাইব্রেরির স্থানান্তর সহজ করা।

Python রান করা

Python ৩ ভাবে রান করা যেতে পারে। যেমন,

  1. যেসব অপারেটিং সিস্টেমে কমান্ড-লাইন ইন্টারপ্রেটার থাকে অথবা শেল উইন্ডো থাকে সেসব ক্ষেত্রে সরাসরি Interactive Interpreter থেকে Python রান করা যায়। এসব ক্ষেত্রে, কমান্ড লাইনে python লেখে Enter চাপুন এবং সরাসরি Python এ কোডিং শুরু করুন।
  2. Python এপ্লিকেশনের সাথে ইন্টারপ্রেটার সংযুক্ত করে কমান্ড লাইনে স্ক্রিপ্ট রান করানো যায়।
  3. অপারেটিং সিস্টেমের Graphical User Interface (GUI) এপ্লিকেশন যদি Python সাপোর্ট করে তবে GUI environment থেকেও Python রান করানো যায়।

বিঃদ্রঃ এই টিউটোরিয়ালে যত উদাহরণ দেয়া হয়েছে সবগুলো Python 2.4.3 ভার্সনে রান করানো হয়েছে।

পাইথন প্রোগ্রামিং টিউটোরিয়াল : বেসিক (Python Tutorial in Bangla : Basic)

লিখেছেন: আবরার রেজওয়ান শুভ

1.1 Python – Tutorial

Python একটি general-purpose interpreted, সাধারণ, সহজবোধ্য, উদ্দেশ্য-কেন্দ্রিক এবং উচ্চমানের প্রোগ্রামিং ল্যাংগুয়েজ। ১৯৮৫-১৯৯০ সালের মধ্যে গুইদো ভ্যান রসাম (Guido van Rossum) এই প্রোগ্রামিং ল্যাংগুয়েজ সৃষ্টি করেন। এই টিউটোরিয়ালটি Python সম্পর্কে যথেষ্ট ধারণা দিবে।

কাদের জন্য

যারা একেবারে শুরু থেকে Python প্রোগ্রামিং শিখতে চান, মূলত তাদের জন্যই এই টিউটোরিয়ালটি তৈরি করা হয়েছে।

পূর্বশর্ত

কম্পিউটার প্রোগ্রামিং ল্যাংগুয়েজ এর ব্যাসিক কিছু শব্দের অর্থ জানা থাকলে ভাল হয়। অন্য কোন প্রোগ্রামিং ল্যাংগুয়েজ জানা থাকলে আরো ভাল।

1.2 Python Overview

Python ল্যাংগুয়েজটিকেই এমন ভাবে তৈরি করা হয়েছে যাতে সহজে বোঝা যায়। এটি অন্যান্য প্রোগ্রামিং ল্যাংগুয়েজ এর মত যতিচিহ্ন (কমা, ব্র্যাকেট ইত্যাদি)-নির্ভর নয়, বরং কিছু ইংরেজি কী-ওয়ার্ড প্রতিনিয়ত ব্যবহার করে ল্যাংগুয়েজটা তোইরি করা হয়েছে, এবং এখানে শব্দবিন্যাসও তুলনামূলক সহজ।

  • Python সরাসরি অনুবাদকৃত – অনেকটা PERL এবং PHP প্রোগ্রামিং এর মত, Python প্রোগ্রামও রান করাবার আগে আলাদা করে কম্পাইল করতে হয়না, সরাসরি রান দেয়ার সময়েই প্রোগ্রামটির প্রোসেস (অনুবাদ) হয়।
  • Python পারস্পরিক ক্রিয়াশীল- প্রোগ্রাম লেখার সময় Python prompt থেকে অনুবাদক (interpreter) এর সাথে সরাসরি মত বিনিময় করা যায়।
  • Python উদ্দেশ্য-কেন্দৃক- Python উদ্দেশ্য-কেন্দৃক পদ্ধতি অনুসরণ করে, যার মাধ্যমে একটি বিশেষ উদ্দেশ্যের ভেতর একাধিক কোড লিপিবদ্ধ করা হয়।
  • Python অনভিজ্ঞ দের ভাষা- নতুন প্রোগ্রামার দের জন্য Python দারুন একটি ভাষা, এবং পাশাপাশি এর নানাবিধ প্রয়োগ রয়েছে (সহজ টেক্সট প্রোসেসিং থেকে শুরু করে ওয়েব ব্রাউসার কিংবা গেমস ডেভেলাপমেন্টে)

ইতিহাস

আশির ও নব্বইয়ের দশকের মাঝামাঝি গুইদো ভ্যান রসাম (Guido van Rossum) নেদার্ল্যান্ড এর ন্যাশনাল রিসার্চ ইন্সটিটিউট ফর ম্যাথম্যাটিক্স এন্ড কম্পিউটার সাইন্স এ Python আবিষ্কার করেন।

ABC, Modula-3, C, C++, Algol-68, SmallTalk, Unix shell সহ অন্যান্য অনেকগুলো স্ক্রিপ্টিং ল্যাংগুয়েজ থেকে Python এর সূত্রপাত হয়েছে। Perl প্রোগ্রামিং ল্যাংগুয়েজ এর মত পাইথন এর সোর্স কোড ও GNU General Public License (GPL) এ পাওয়া যায়। Python এর সত্ত্বাধিকার Python software foundation রক্ষা করে। একটি কোর ডেভেলাপমেন্ট টীম পাইথনের অগ্রযাত্রা/ পরিচালনা নিয়ন্ত্রন করে, যেখানে Guido van Rossum, Python এর আবিষ্কারক গুরুত্বপূর্ণ ভূমিকা পালন করে।

বৈশিষ্ট্য

  • Python সহজবোধ্য। এখানে কী-ওয়ার্ড এর ব্যবহার তুলনামূলক কম। Python এর শব্দবিন্যাস এবং ভাষা-গঠনও অপেক্ষাকৃত সহজ, যে কারনে সবাই খুব সহজেই এই ভাষা আয়ত্ত করতে পারে।
  • Python সহজে পড়া যায়। এর কোডিং পদ্ধতি খুব সহজে বোঝা যায়।
  • Python এর সোর্স কোড সহজে মেইন্টেইন করা যায়।
  • Python এর লাইব্রেরী অনেক সমৃদ্ধ এবং স্বল্প সাইজের, যা UNIX, Windows, Macintosh ইত্যাদি অপারেটিং সিস্টেম সাপোর্ট করে।
  • Python এ interactive (পারস্পরিক) কোডিং এর সুবিধা রয়েছে, যার ফলে টুকিটাকি বিভিন্ন প্রকার কোড এর জন্য একই সাথে Testing ও Debugging করা যায়।
  • Python পোর্ট্যাবল, অর্থাৎ বিভিন্ন রকমের হার্ডওয়ার প্ল্যাটফর্মে এটি একই ভাবে কাজ করে।
  • Python প্রথমে কিছু low level module দিয়ে শুরু করা যায়, এবং পরে প্রয়োজন অনুযায়ী প্রোগ্রামার রা নানা রকম টুল সংযোজন করে সেই মোডিউল গুলো আরো সমৃদ্ধ করতে পারে।
  • প্রায় সব ধরনের বাণিজ্যিক ডাটাবেইজ এ Python এর ইন্টারফেস থাকে।
  • Python GUI applications সাপোর্ট করে, যার সাহাজ্যে বিভিন্ন system calls, libraries ও windows systems তৈরি অথবা স্থানান্তরিত করা যায়।
  • বড় সাইজের প্রোগ্রামের জন্য Shell স্ক্রিপ্টিং এর চেয়ে Python এর স্ক্রিপ্ট ভাল কাজ করে।

এগুলো ছাড়াও Python এর আরো কিছু ফিচার রয়েছে। যেমন, এটি Object-Oriented Programming (OOP) এর মত সুবিন্যস্ত; এটিকে স্ক্রিপ্টিং ল্যাংগুয়েজ এর মত ব্যবহারের পাশাপাশি অন্য বড় সাইজের এপ্লিকেশনের বাইট-কোড হিসেবে কম্পাইল করা যায়; এর দারা অত্যান্ত জটিল ও গতিশীল ডাটা তৈরি ও চেক করা যায়; Python গার্বেজ কালেক্ট করে, এবং একে সহজেই C, C++, COM, ActiveX, CORBA, ও Java’র সাথে ইণ্টেগ্রেট করা যায়।

 

একটি স্ক্র্যাপ পিসি তৈরি করুন

যেকেউ কম্পিউটার রেডি করতে পারে, আশ্চর্যজনক ব্যাপার এই যে, এটা যতটা না সাহসিকতার তার চেয়ে বেশি সঠিক পদ্ধতি অনুসরণ সাপেক্ষ।

এখানে একটি পিসি তৈরি করার রূপরেখা এবং সঠিক যন্ত্রাংশ নির্বাচন পিদ্ধতি সম্পর্কে আলোচনা করা হয়েছে। সঠিক পদ্ধতি অনুসরণ করলে যেকেউ একটি কম্পিউটার নির্মাণ করতে পারবে।

 

ধাপসমূহঃ

1. বন্ধুবান্ধব বা প্রতিবেশিদের মাধ্যমে একটি পুরাতন কম্পিউটার সংগ্রহ করুন। যদি আপনি সতর্কতা অবলম্বন করে যেকোন দাগ/ক্রাচ এড়াতে পারেন তাহলে আপনি একটি সাম্প্রতিক খারাপ হওয়া পিসি থেকে কিছু অক্ষত অংশ উদ্ধার করতে পারেন। (প্রতিবার একটি পরিবাহী ধাতু স্পর্শ করার ক্ষেত্রে কৌশল অবলম্বন করতে হবে)। কিছু পুরাতন পিসি থেকে আপনি শুধুমাত্র কেস এবং পিএসইউ উদ্ধার করতে সক্ষম হতে পারেন। অনেক পুরানো মাদারবোর্ড এ CPU- বিল্ড ইন অবস্থায় থাকে।

 

2. যন্ত্রাংশ সামঞ্জস্যপূর্ণ কিনা পরীক্ষা করুন। যদি আপনি একটি নতুন মাদারবোর্ড ও একটি পুরানো হার্ড ড্রাইভ ব্যবহার করার পরিকল্পনা করেন তাহলে আপনাকে একটি IDE নিয়ন্ত্রক অ্যাডাপ্টার কার্ড সংগ্রহ করতে হবে (যদি আপনার মাদারবোর্ডের একটি খালি পিসিআই এক্সপ্রেস স্লট থাকে)। $20 খরচ করে আপনি এটি পেতে পারেন। আরো পরীক্ষা করুন যে CPU ও মাদারবোর্ড একই সকেট রয়েছে কিনা (যেমন এএমডি FM2 অথবা Intel LGA1155)। আপনার পিএসইউ এ কম্পিউটার এর সকল যন্ত্রাংশ এর জন্য যথেষ্ট ওয়াট আছে কিনা নিশ্চিত হয়ে নিন। চেক করে নিন যে আপনি যে RAM ব্যবহার করতে চাচ্ছেন তা মাদারবোর্ড সমর্থন করে কিনা। নতুন মাদারবোর্ড DDR3 RAM ব্যবহারের উপযোগী এবং পুরাতন মাদারবোর্ড DDR2 RAM ব্যবহারের উপযোগী হতে পারে।

 

3. যন্ত্রাংশগুলো কিভাবে ইন্সটল করবেন। যন্ত্রাংশ ইন্সটল এর ক্ষেত্রে ভিডিও বা মাদারবোর্ড এর ম্যানুয়াল দেখতে পারেন (যদি আপনার কাছে থাকে)। সতর্কতার সাথে মাদারবোর্ডটি খুলুন এবং অপরিবাহী বস্তুর উপর রাখুন।

  1. যদি আপনার কাছে CPU cooler থাকে (থাকলে অনেক ভাল), আপনাকে এই যন্ত্রাংশটি ইন্সটল করার নির্দেশিকা পড়তে হবে, এটি AMD ও Intel এর ক্ষেত্রে ভিন্ন রকমের হয়ে থাকে।

 

4. সাবধানে আপনার CPU (প্রসেসর) ভিতর থেকে বাহির করুন। সতর্ক থাকুন পিনগুলোর সাথে যাতে আপনার স্পর্শ না লাগে। প্রসেসর এর লিভার উপরের দিকে উঠান। মাদারবোর্ড এর প্রসেসর এর সোনালী সকেট এর সাথে মিল রেখে প্রসেসর এর সোনালী এরো স্থাপন করুন। সতর্কতার সাথে চাপ দিয়ে বা পুল করে লেভেল নিচের দিকে নামিয়ে লক করে দিন।

 

5. RAM ইন্সটল করা। র‌্যাপ এর সকেট এর দুটি চিপ টান দিয়ে নিচের দিকে নামান। তারপর সকেটের সঙ্গে RAM সামঞ্জস্যপূর্ণ করে চাপ দিন যাতে দৃঢ়ভাবে RAM জায়গামত আটকিয়ে যায়। চিপ দুটি আটকে যাবে।

 

6. PSU যোগ করা। মাদারবোর্ড কেস এ স্থাপন করার পূর্বে আপনাকে PSU স্থাপন করতে হবে। ওপটিক্যাল ড্রাইভটি অপটিক্যাল বে (ড্রাইভ রাখার নির্দিষ্ট স্থান) এ রাখুন এবং হার্ড ড্রাইভটি বে (ড্রাইভ রাখার নির্দিষ্ট স্থান) এ রাখুন। নির্দেশাবলী মডেল এর উপর ভিন্নতর হতে পারে।

 

7. I/O শিল্ড স্থাপন করুন। কেস এর ভিতরে আয়তক্ষেত্রাকার স্থানে স্থাপন করে ধাক্কা দিন।

 

8. মাদারবোর্ডটি কেস এর মাদারবোর্ড রাখার স্থানে স্ত্রু দিয়ে লাগান। কোথায় লাগাতে হবে জানতে মাদারবোর্ডটি একটি কাগজের উপর রাখুন এবং কলম বা অন্যকিছু দিয়ে ছিদ্রগুলো চিহ্নিত করুন।

 

9. মাদারবোর্ডটি সস্থানে বসান। স্ত্রু দিয়ে মাদারবোর্ডটি আটকিয়ে দিন।

 

10. আপনার গ্রাফিক্স কার্ড বা অন্যান্য কার্ডগুলো স্লট এ স্থাপন করে চাপ দিয়ে বসিয়ে দিন। কেস এর পিছনের অংশের সাথে স্ত্রু দিয়ে কার্ডগুলো লাগিয়ে দিন।

 

11. PSU এবং মাদারবোর্ড এর সকল তার সঠিক জায়গায় সংযোগ স্থাপন করুন। কেস এর সাথের তারগুলোর প্লাগ মাদারবোর্ড এর প্লাগ করুন।

 

12. BIOS এর মাধ্যমে আপনার অপারেটিং সিস্টেম ইন্সটল করুন।

আপনি কিভাবে Asus Eee PC এর মেমোরি আপগ্রেড করবেন

আপনি যদি আপনার Asus Eee PC এর মেমোরি 512MB থেকে 1 বা 2GB এ আপগ্রেড করতে চান তাহলে এখানে আপনার জন্য 700 সিরিজের (4G or 8G) Eee PC এর মেমোরি আপগ্রেড করার দ্রুত এবং সহজ পদ্ধতি আলোচনা করা হলো।

 

  1. সঠিক মেমোরিটি ক্রয় করুন। স্ট্যান্ডার্ড DDR2 ল্যাপটপ মেমোরি খোঁজ করুন (ডেস্কটপ মেমোরি নয়) যার 200 পিন বিশিষ্ট কানেক্টর আছে। 533 বা 667MHz স্পিডের 1GB বা 2GB DDR2 মেমোরি নির্বাচন করুন। এগুলো যথাক্রমে পিসি-4200 বা পিসি-5300 হিসাবে উল্লেখ করা যেতে পারে। প্রস্তাবিত ব্রান্ডের মধ্যে রয়েছে Kingston, Corsair, Patriot এবং Viking কিন্তু এগুলো ছাড়াও অনেক ব্রান্ড রয়েছে।

 

 

2. আপনার Eee PC এর পাওয়ার বন্ধ করুন। সেইসাথে AC power adapter টি আনপ্লাগ করুন।

 

 

3. একটি উচু ও সমতল স্থানে রেখে আপনার Eee PC টি প্রস্তুত করুন। ল্যাপটপ এর উপরের সাইট আপনার সম্মুখে রাখুন। ল্যাপটপটি একটি নরম আরামদায়ক স্থানে রাখতে হবে।

 

 

4. ব্যাটারী খুলে ফেলুন। এটি দুর্ঘটনাবশত যেকোন শর্ট সার্কিট হওয়া থেকে রক্ষা করবে। ব্যাটারি খুলে ফেলতে:

a. চাপ দিতে এবং ধরতে সর্ব বামের ব্যাটারি লকটি ধরে আনলক পজিশনে নিয়ে যেতে আপনার বাম বৃদ্ধাঙ্গুল ব্যবহার করুন।

b. ডান দিকের ব্যাটারি লকটি আনলক করতে আপনার ডান হাত ব্যবহার করুন।

c. ল্যাপটপ থেকে ব্যাটারী আলাদা করতে আপনার ডান হাত মোলায়েমভাবে ব্যবহার করুন। উভয় পাশ সমান তালে একসাথে অল্প অল্প করে ঠেলা দিন। নতুন Eee PC এবং ব্যাটারী প্রথমদিকে একটিু বেশি টাইট থাকে।

 

 

5. Eee PC এর মেমোরী কভার খুলে ফেলুন।

a. যদি থাকে তবে Eee PC এর স্টিকারঢেকে রাখা একটি স্ত্রু খুলে ফেলুন।

b. একটি Phillips #0 jeweler’s স্ক্রুড্রাইভার দিয়ে দুটি স্ক্রুই ঢিলা করুন।

c. আঙ্গুল দিয়ে স্ক্রুগুলো খুলুন এবং একপাশে রাখুন।

d. আঙ্গুল বা আঙ্গুলের নখ দিয়ে কভারের উপরের অংশ উঠান। এখানে ছোট একটি স্লট থাকতে পারে আপনাকে খুলতে সহায়তা করার জন্য।

e. খুলে যাবার আগ পর্যন্ত টানতে থাকুন।

 

 

6. বিদ্যমান মডিউল সরান। এটি কিছুটা ল্যাপটপ এর সামনের দিকে থাকবে, নিচে কিছুটা ফাঁকা স্থান থাকবে। এটি দুটি ধাতু দ্বারা আটকানো অবস্থায় থাকবে।

a. ক্লিপ এর বাহিরের দিকে আপনার উভয় বৃদ্ধাঙ্গুল দ্বারা একইসাথে চাপ দিন। মডিউল একটি হালকা স্প্রিং দ্বারা ধাক্কা দেয়া অবস্থায় থাকবে। যখন ক্লিপ সম্পূর্ণভাবে খুলে যাবে তখন এটি নিজে নিজেই কৌনিকভাবে উপরের দিকে উঠে আসবে।

b. যখন মডিউল এর ক্লিপ খুলে যাবে, হালকাভাবে কর্ণার ধরে একই কৌনিকভাবে টান দিয়ে বাকি অংশটুকু বের করে আনতে হবে। এটি ল্যাপটপের সাথে 15 হতে 25 ডিগ্রি কৌণিকভাবে অবস্থান করবে।

c. একটি নিরাপদ, স্ট্যাটিকমুক্তঅবস্থানে, মডিউলটি সরিয়েরাখুন।

 

 

7. নতুন মডিউলটি প্যাকেট থেকে বের করুন। অধিকাংশ মেমোরী একটি শক্ত পরিস্কার প্লাস্টিকে মোড়ানো অবস্থায় বিক্রি করা হয়। প্লাস্টিকের পাশে হালকাভাবে চাপ দিয়ে প্যাকেট হতে বের করুন। বাকা করে বা অতিরিক্ত বল প্রয়োগ করা থেকে বিরত থাকুন।

 

 

8. নতুন মডিউল ইন্সটল করা। ইন্সটল করার জন্য বিচ্ছিন্নকরণ প্রক্রিয়ার বিপরীত পন্থা অনুসরণ করুন।

a. আগের কৌণিকভাবে নতুন মেমোরীটি ল্যাপটপের মেমোরী স্লট এ প্রবেশ করান। নিশ্চিত হয়ে নিন যে এটি সব দিক দিয়ে ফিট হয়। এটি করার জন্য তেমনকোন বল প্রয়োগ করতে হবে না।

b. মডিউল এর উপরে চাপ দিন যাতে এটি ল্যাপটপের সাথে সমান্তরাল হয়ে যায়। মেমোরী স্লটটি একটি শব্দ করবে যখন এটি পুরোপুরিভাবে সমান্তরাল হয়ে যাবে।

 

 

9. চেক করে নিন আপনার মেমোরীটি পিসি চিনতে পারছে কিনা। মেমোরী কভার আটকানোর পূর্বে মেমোরী কার্ডটি আপনার ল্যাপটপ এবং অপারেটিং সিস্টম চিনতে পারছে কিনা, তা নিশ্চিত হয়ে নিন।

a. হালকাভাবে ব্যাটারীটি পুনরায় স্থাপন করুন।

b. ল্যাপটপটি উল্টিয়ে (সোজা করে) পাওয়ার অন করুন।

c. Xandros দিয়ে – ডিফল্টলিনাক্স ডিস্ট্রিবিউশন – “Settings” ট্যাব এ ক্লিক করুন।

d. “System info এ ক্লিক করুন এবং যাচাই করুন “1024 MB” (1GB) কিনা।

e. 2GBমডিউল এর জন্য “Diagnostic Tools” এ ক্লিক করুন এবং যাচাই করুন “RAM Size” “2048 MB” (2GB) কিনা।

 

 

10. মেমোরী কভার পূর্বের স্থানে স্থাপন করুন এবং স্ক্রু লাগান। যদি আপনি Xandros Linux অপারেটিং সিস্টেম চালিত Eee পিসিতে 2GB RAM ইন্সটল করে থাকেন এখন সময় হচ্ছে কার্নেল পুনর্নির্মাণের। এটি সিস্টেমের মেমরি পূর্ণ 2GB চিনতে পারবে।

 

 

11. 2GB মেমরি এর সদব্যবহার করার জন্য Xandros operating system নিন। Kernel ইন্সটল কুরুন।

সিএসএস লেআউট – width এবং max-width (বাংলায়) (CSS Layout – width and max-width in Bangla)

width, max-width এবং margin: auto এর ব্যবহার

 

পূর্ববর্তী অধ্যায় এ উল্লেখ করা হয়েছিল যে, block-level এলিমেন্ট সবসময়ই ব্যবহারযোগ্য পূর্ণ প্রসস্থ জায়গা দখল করে (ডানে ও বায়ে যতটা সম্ভব প্রসারিত হয়)

block-level এলিমেন্ট এর প্রসস্থতা নির্ধারণ করে দিলে ধারক এর প্রসারিত হওয়া বন্ধ করে দেয়া যেতে পারে। তারপর, আপনি মার্জিন auto হিসেবে সেট করে দিতে পারেন, এর ধারক এর মধ্যে এলিমেন্ট হরিজেন্টালি সেন্টার হিসেবে। এলিমেন্টটি নির্দিষ্ট করা প্রসস্ততা পর্যন্তিই জায়গা দখল করতে পারবে এবং বাকি খালি জায়গা দুই মার্জিন এর মধ্যে সমানভাবে ভাগ হবে।

যখন ব্রাউজার উইন্ডো এর আকার এলিমেন্ট এর প্রসস্থতা থেকে ছোট হবে তখন <div> সমস্যা সৃষ্টি করবে। তখন ব্রাউজার একটি horizontal scrollbar যোগ করবে।

এর সমাধান হচ্ছে max-width ব্যবহার করা, এটি ছোট উইন্ডোতে ব্রাউজার হ্যান্ডলিং সহজ করে। যখন ছোট কোন ডিভাইস এ সাইট ভিজিট করা হয় তখন এটি খুবই গুরুত্বপূর্ণ।

টিপস: দুটি div এর মধ্যে পার্থক্য বোজার জন্য ব্রাউজার উইন্ডোকে 500px এর চেয়ে ছোট করুন।

এখানে দুটি div এর উদাহরণ দেয়া হলো:


div.ex1 {
     width: 500px;
     margin: auto;
     border: 3px solid #8AC007;
 }
 
 div.ex2 {
     max-width: 500px;
     margin: auto;
     border: 3px solid #8AC007;
 }