Saturday, December 8, 2012

আরও লুপ এবং ফাংশন (পর্ব-৬)

আরও লুপ এবং ফাংশন (পর্ব-৬)
গতকাল প্রকাশিত পর্ব-৫-এর while লুপের উদাহরণটি আমরা অন্যভাবেও করতে পারি। নিচে সেটা দেওয়া হলো—
res=0
for counteৎ in [0,1,2,3,4,5,6,7,8,9]:
i=input(“Enter the values: “)
n=int(i)
res+=n
দেখুন, তৃতীয় বন্ধনীর মধ্যে ০ থেকে ৯ পর্যন্ত ১০টি সংখ্যা লেখা হয়েছে। ডেটার এ ধরনের অনুক্রমিক সংগ্রহকে পাইথনে list বলা হয়। লুপের শুরুতে counter ভ্যারিয়েবল দেওয়া হয়েছে, যেটি list-এ যতসংখ্যক ডেটা রয়েছে, ততবার লুপের মধ্যের সংকেতগুলো ব্যবহার করবে। গুরুত্বপূর্ণ বিষয় হচ্ছে, res ভ্যারিয়েবলটি প্রথমে ০ দ্বারা শুরু করা হয়েছে। সর্বশেষ লাইনটি ব্যাখ্যা করলেই বুঝতে পারবেন এর কারণ। res+=n হচ্ছে res=res+n-এর সংক্ষিপ্ত রূপ। যার মানে হচ্ছে, res ভ্যারিয়েবলের পূর্ব মানের সঙ্গে n ভ্যারিয়েবলের মান পযাগ করে আবার res ভ্যারিয়েবলেই রাখা হচ্ছে। res ভ্যারিয়েবলটিতে যদি কোনো প্রারম্ভিক মান না দেওয়া থাকে, তাহলে সংকেতটি কাজ করবে না। প্রারম্ভিক মানের ক্ষেত্রে ০ দেওয়া হয়েছে, ০ ছাড়া অন্য কোনো মান ব্যবহার করলে যোগফলে ওই মানটি যোগ হয়ে যাবে, এতে যোগফল ভুল আসবে। এখন আসা যাক ফাংশনের ধারণায়। ফাংশনের দুটি মূল উপাদান হচ্ছে প্যারামিটার ও রিটার্ন ভ্যালু। উদাহরণ:
def oddorevennum(num):
if num%2==0:
print(“It¤s an even numbeৎ”)
else:
print(“It¤s an odd numbeৎ”)
এখন আপনি যখনই oddorevennum()-এর ভেতরে একটি নম্বর দেবেন, তখনই এটি আউটপুট দেবে যে এটি জোড় না বিজোড় সংখ্যা। পরখ করে দেখুন oddorevennum(15) বা oddorevennum(4568)-এর জন্য কী আউটপুট আসে। শেষ করার আগে বলে নিই, % হচ্ছে মডুলাস অপারেটর। অপারেটরটির বাঁ পাশের নম্বরটিকে ডান পাশেরটি দিয়ে ভাগ করার পর ভাগশেষ কী থাকে, তা নির্ণয় করে এই অপারেটরটি। (চলবে)
—মাহ্দী ইসলাম
mahdi@prothom-alo.info

প্রোগ্রামিং কর্নারব্যবহারকারীর ইনপুট এবং লুপ (পর্ব-৫)

প্রোগ্রামিং কর্নারব্যবহারকারীর ইনপুট এবং লুপ (পর্ব-৫)
ব্যবহারকারীর ইনপুট নিয়ে পাইথনে কীভাবে কাজ করতে হয়, তার একটি উদাহরণ থাকছে আজকের পর্বে।
input(“Enter where you live: “)
নিচের লাইনে আসবে: Enter where you live: (এখানে Bangladesh লিখে এন্টার করুন) দেখবেন ‘Bangladesh’ আউটপুট এসেছে। লক্ষ করুন, আউটপুট একক উদ্ধৃতি চিহ্নের (‘’) মধ্যে দেখালেও, এটি একটি স্ট্রিং। ভ্যারিয়েবলে স্ট্রিং রাখার সময় আপনি চাইলে (‘’) বা (“”) ব্যবহার করতে পারেন। এখন ধরুন, আপনি একটি প্রোগ্রাম বানাতে চান, যেটি ব্যবহারকারীর কাছ থেকে একটি সংখ্যা নেবে এবং তার বর্গ করে দেখাবে। সংকেতটি হবে এ রকম—
userinput=input(“Enter the number: ”)
Enter the number: (এখানে 2800 লিখে এন্টার চাপুন)
num=int(userinput)
result=num**2
print(result)
ইনপুটের মাধ্যমে যে ডেটা নেওয়া হয়েছে, তা userinput ভ্যারিয়েবলে রাখা হয়েছে এবং ডেটা টাইপ হচ্ছে স্ট্রিং। গাণিতিক কাজ করার জন্য ডেটা টাইপ হতে হবে নম্বর। তাই num ভ্যারিয়েবলে ডেটাকে ইন্ট টাইপে রূপান্তর করে রাখা হয়েছে। শেষে result ভ্যারিয়েবলে সংখ্যাটির বর্গ রাখা হয়েছে। সংখ্যার ঘাত নির্ণয়ের জন্য ** অপারেটর ব্যবহূত হয়। আজ শেষ করব লুপের একটি ছোট ধারণা দিয়ে। ধরুন আপনি ব্যবহারকারীর কাছ থেকে ১০টি নম্বর নিয়ে তার যোগফল দেখাবেন। দশবার তাহলে আপনাকে ইনপুট, ডেটা টাইপ কনভার্ট ও ডেটা ভ্যারিয়েবলে যোগ করার কোড লিখতে হবে। তা না করে আপনি এভাবে করে দেখুন:
res=0
counter=1
while(counteৎ

প্রোগ্রামের মধ্যে সিদ্ধান্ত নেওয়া (পর্ব-৪)

প্রোগ্রামের মধ্যে সিদ্ধান্ত নেওয়া (পর্ব-৪)
কম্পিউটার প্রোগ্রামের একটি গুরুত্বপূর্ণ বিষয় হচ্ছে কোনো শর্তের ওপর ভিত্তি করে সিদ্ধান্ত নেওয়ার ব্যবস্থা। পাইথনে এ জন্য if, else, elif স্টেটমেন্ট ব্যবহার করা হয়ে থাকে। এই স্টেটমেন্টগুলো নিয়ে বিস্তারিত আলোচনার আগে স্টেটমেন্ট, এক্সপ্রেশন ও অপারেটর কী, তা জানা দরকার। স্টেটমেন্ট হচ্ছে একটি স্বয়ংসম্পূর্ণ বাক্য, যা ইন্টারপ্রেটারের বোধগম্য। এক্সপ্রেশন হচ্ছে ভ্যারিয়েবল, অপারেটর, ভ্যালু ইত্যাদির সমন্বয়ে গঠিত একটি অংশ। অপারেটর হচ্ছে গাণিতিক ও যৌক্তিক কিছু প্রতীক। নিচের উদাহরণটি দেখুন:
value=5
if(value*2==10):
print(“Value is 10”)
(দুবার এন্টার করুন আউটপুট দেখার জন্য)
ওপরের কোডে দুটি স্টেটমেন্ট আছে। একটি হচ্ছে value=5, যা অ্যাসাইনমেন্ট স্টেটমেন্ট। কারণ, এটি value ভ্যারিয়েবলে একটি ভ্যালু অ্যাসাইন করছে। পরের দুই লাইন মিলে হচ্ছে একটি if স্টেটমেন্ট, যার মধ্যে রয়েছে একটি এক্সপ্রেশন value*2==10। যদি এক্সপ্রেশনটি সত্যি হয়, তাহলে ভেতরের স্টেটমেন্টটি কাজ করবে। == (দুবার সমান চিহ্ন) হচ্ছে একটি অপারেটর। এটি দুটি ভ্যালু সমান কি না, তা তুলনা করে। এখানে দেখুন, তৃতীয় লাইনে কিছু জায়গা খালি রেখে দেওয়া হয়েছে। যেসব স্টেটমেন্ট এক লাইনের বেশি লিখতে হয়, সেসব ক্ষেত্রে প্রথম লাইনের পরের লাইনগুলো চারটি স্পেস বেশি দিয়ে লিখতে হয়। চারটি স্পেস না দিয়ে একবার ট্যাব দিতে পারেন; কিন্তু একই কোডে একই সঙ্গে ট্যাব ও স্পেস ব্যবহার করা যাবে না, যেকোনো একটি ব্যবহার করতে হবে। ওপরের কোডে value*2==10 এক্সপ্রেশনে ১০-এর জায়গায় অন্য কোনো সংখ্যা লিখে দেখুন, কোনো কিছুই আসবে না। এবার নিচের কোডটি দেখুন:
value=5
if(value*2==8):
print(“If condition TRUE”)
else:
print(“Else condition TRUE”)
(দুবার এন্টার করুন আউটপুট দেখার জন্য)
এবার আউটপুট আসবে দ্বিতীয় else স্টেটমেন্ট থেকে। দুইয়ের বেশি শর্ত থাকলে if এবং else এর মাঝে elif ব্যবহার করতে পারেন। (চলবে) —মাহ্দী ইসলাম
mahdi@prothom-alo.info

ডেটা টাইপ নিয়ে আরও কিছু কথা-পর্ব-৩

ডেটা টাইপ নিয়ে আরও কিছু কথা-পর্ব-৩

দ্বিতীয় পর্বের লেখায় ডেটা টাইপ নিয়ে আলোচনা শুরু করা হয়েছিল। সেখান থেকেই আজ আলোচনা শুরু হচ্ছে। নম্বর ডেটা টাইপ বেশ কয়েক প্রকারের রয়েছে, যার মধ্যে দুটি হচ্ছে গুরুত্বপূর্ণ: ইন্ট (int) বা ইন্টিজার, যা পূর্ণসংখ্যা নির্দেশ করে এবং ফ্লোট (float) যা দশমিক যুক্ত সংখ্যা নির্দেশ করে। ডেটা টাইপের মধ্যে এ ধরনের বিভিন্ন শ্রেণীবিভাগ থাকার কারণ হচ্ছে, একেক ধরনের টাইপের ওপর একেক ধরনের কাজ সম্পাদন করা যায়। এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে পরিবর্তনসংক্রান্ত কিছু সংকেত (কোড) নিচে দেখানো হলো।
var1=100
var2=10.66
var3=int(var2)
var4=“100”
var5=var1*4
var6=var4*4
var7=int(var6)
var8=var7/4
print(var1, var2, var3, var4, var5, var6, var7, var8)
আউটপুট: 100 10.66 10 100 400 100100100100 100100100100 25025025025.0
দেখুন, প্রথম ভ্যারিয়েবলটির টাইপ হচ্ছে ইন্ট, দ্বিতীয়টি ফ্লোট, তৃতীয় ভ্যারিয়েবলে দ্বিতীয় ভ্যারিয়েবলের টাইপ পরিবর্তন (কনভারশন) করে ফ্লোট থেকে ইন্ট করা হয়েছে। চতুর্থ ভ্যারিয়েবলটি সংখ্যা হলেও এটির ডেটা টাইপ কিন্তু স্ট্রিং (সংক্ষেপে str)। এর কারণ, উদ্ধৃতি চিহ্নের মধ্যে লেখা সংখ্যাও স্ট্রিং হিসেবে বিবেচিত হয়। পরের দুটি ভ্যারিয়েবলে যথাক্রমে ইন্ট এবং স্ট্রিং ডেটা টাইপের দুটি গুণন রাখা হয়েছে। পরেরটিতে স্ট্রিংকে ইন্ট ডেটা টাইপে নেওয়া হয়েছে এবং তার পরেরটিতে আরেকটি গুণ করা হয়েছে। আউটপুট খেয়াল করুন, var5 দুটি সংখ্যার গুণফল দেখালেও, var6 পর পর চারবার প্রিন্ট করে দেখিয়েছে var4-এর স্ট্রিংকে।
(চলবে) —মাহ্দী ইসলাম

পাইথনে ডেটা টাইপ এবং ভ্যারিয়েবল-পর্ব-২

পাইথনে ডেটা টাইপ এবং ভ্যারিয়েবল-পর্ব-২
যেকোনো প্রোগ্রামিং ভাষায় কাজ করার জন্য ডেটা টাইপ এবং ভ্যারিয়েবলের ধারণা থাকা জরুরি। ডেটা টাইপ হচ্ছে যে তথ্য বা উপাত্ত নিয়ে কাজ করা হচ্ছে, তার প্রকারভেদ। সহজে ব্যাপারটি এভাবে দেখা যায়, আমি একজন বাংলাদেশি, এটি হচ্ছে কতগুলো অক্ষরের সমন্বয়ে তৈরি একটি বাক্য, আবার ১০০০, ২৫০০০ ইত্যাদি হচ্ছে সংখ্যা। পাইথন প্রোগ্রামিংয়ের ক্ষেত্রে বাক্য বা অক্ষরের ডেটা টাইপ হচ্ছে স্ট্রিং এবং সংখ্যার জন্য তা হচ্ছে নম্বর। এ ছাড়া রয়েছে বুলিয়ান, যেটা দিয়ে কোনো শর্ত সত্য না মিথ্যা তা নির্ণয় করা হয়। ভ্যারিয়েবল হচ্ছে তথ্য (ডেটা) সংরক্ষণ করার একটি অস্থায়ী ব্যবস্থা। ভ্যারিয়েবলে ডেটা রেখে আপনি বিভিন্ন গাণিতিক এবং যৌক্তিক কাজ সম্পাদন করতে পারবেন। তাহলে পাইথন চালু করে লিখে ফেলুন নিচের লাইনগুলো (প্রতি লাইনের পর এন্টার করুন)।
num1 = 5600
num2 = 6500
num1+num2
(এখানে আউটপুট দেখাবে)
country = “Bangladesh”
print(“I live in ” + country)
(এখানে আউটপুট দেখাবে)
ভ্যারিয়েবল নামকরণের ক্ষেত্রে সতর্ক থাকতে হবে। নাম অবশ্যই কোনো অক্ষর দিয়ে শুরু করতে হবে, সংখ্যা বা অন্য কিছু দিয়ে শুরু করা যাবে না এবং ভ্যারিয়েবলের নামে অক্ষর কিংবা সংখ্যা বা আন্ডারস্কোর (-) ছাড়া অন্য কিছু ব্যবহার করা যাবে না। এ ছাড়া লক্ষণীয় যে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরে লেখা ভ্যারিয়েবল এক নয়। যেমন— num1, Num1 এবং NUM1 তিনটি আলাদা ভ্যারিয়েবল নির্দেশ করে। লক্ষ করুন, ডেটা টাইপ স্ট্রিং হলে তা উদ্ধৃতি চিহ্নের (“ ”) ভেতরে লিখতে হবে। যাঁদের জাভার মতো প্রোগ্রামিং ভাষায় কাজ করার অভিজ্ঞতা রয়েছে, তাঁরা লক্ষ করুন, পাইথনে ভ্যারিয়েবলের টাইপ ডিক্লেয়ার করার কোনো প্রয়োজন নেই। (চলবে) —মাহ্দী ইসলাম

পাইথনে হাতেখড়ি (Day One)

পাইথনে হাতেখড়ি (Day One)
পাইথন প্রোগ্রামিং ভাষা দিয়ে সব ধরনের প্রোগ্রামই করা যায়। আবার কেউ প্রোগ্রামিং শুরু করতে চাইলে পাইথনই আদর্শ। কম্পিউটার প্রতিদিনের পাঠকদের জন্য আজ থেকে থাকছে পাইথনের ধারাবাহিক প্রশিক্ষণ। আজ থাকছে প্রথম পর্ব।
আমাদের অনেকেরই কম্পিউটার প্রোগ্রামিং নিয়ে আগ্রহ রয়েছে। কিন্তু অনেক সময় দেখা যায়, জনপ্রিয় প্রোগ্রামিং ভাষাগুলো নতুনদের কাছে বেশ জটিল মনে হয়। এ কারণে আর বেশি দূর এগোনো হয় না। নতুনদের জন্য প্রোগ্রামিং শুরু করার একটি ভালো মাধ্যম হতে পারে পাইথন। সাধারণ যোগ-বিয়োগের প্রোগ্রাম থেকে শুরু করে মাল্টিমিডিয়া প্রোগ্রামিং—সবই সম্ভব পাইথনে।
পাইথন একটি উচ্চ স্তরের এবং ইন্টারপ্রেটেড প্রোগ্রামিং ভাষা। সহজে বলতে গেলে, ধরুন, আপনি পাইথনে প্রোগ্রামিং সংকেত (কোড) লিখলেন। কোড যতটুকু পর্যন্ত সঠিক, ততটুকু পর্যন্ত তার কাজ করবে। অর্থাৎ, আউটপুট দেবে। সি কিংবা জাভার মতো পুরো কোডের কোনো জায়গায় সামান্য ভুলের জন্য পুরো আউটপুট একদম বন্ধ থাকবে না। এতে নতুন ব্যবহারকারীরা উৎসাহ পাবেন। পাইথনের দুটি প্রধান সংস্করণ রয়েছে। একটি সংস্করণ ২, অপরটি ৩। পাইথন ২ এখনো চললেও নতুনদের জন্য পাইথন ৩ বেশি ব্যবহারের উপযোগী। তো, এখনই নামিয়ে ফেলুন আপনার কম্পিউটারের জন্য উপযুক্ত সংস্করণটি www.python.org/download ঠিকানার ওয়েবসাইট থেকে।
ইনস্টল করার কাজটা একদমই সোজা। ডিফল্ট অপশনগুলো সিলেক্ট করাই থাকে। ইনস্টলেশনের পর C:/Python33 ফোল্ডারে গিয়ে python.exe-এ দুই ক্লিক করুন। যদি অন্য কোনো ফোল্ডারে ইনস্টল করা হয়ে থাকে, তাহলে ওই ফোল্ডারে গিয়ে python.exe ফাইলে দুই ক্লিক করুন। তারপর লিখে ফেলুন print(“Welcome to Python”) এবং এন্টার করুন। নিচের লাইনে লেখা আসবে Welcome to Python। ছোট আরেকটি লাইন লিখুন print(“First Line/nSecond Line”)। এন্টার করলে প্রথম লাইনে আসবে First Line এবং দ্বিতীয় লাইনে আসবে Second Line। দেখে নিশ্চয় বোঝা যাচ্ছে, লেখার আউটপুটের জন্য print এবং নতুন লাইনে আউটপুট চাইলে print-এর ভেতর /n ব্যবহার করা হচ্ছে। (চলবে) —মাহ্দী ইসলাম
islam.mahdi@gmail.com

Wednesday, October 31, 2012

What Is SEO / Search Engine Optimization?

What Is SEO / Search Engine Optimization?
SEO stands for “search engine optimization.” It is the process of getting traffic from the “free,” “organic,” “editorial” or “natural” listings on search engines. All major search engines such as GoogleYahoo and Bing have such results, where web pages and other content such as videos or local listings are shown and ranked based on what the search engine considers most relevant to users. Payment isn’t involved, as it is with paid search ads.
=========================================================================