Tag Archives: সিনট্যাক্স

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

Huge Sell on Popular Electronics

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- এর সাহায্যে এরকম প্রোগ্রাম কোড করা যায়। কমান্ড লাইন আর্গুমেন্টের কনসেপ্ট অপেক্ষাকৃত জটিল, যা এই টিউটোরিয়াল এর পরবর্তি অংশে আলোচনা করা হবে।

 

জাভাস্ক্রিপ্ট অবজেক্ট নটেশন সিনট্যাক্স (JSON Syntax)

Huge Sell on Popular Electronics

জেএসওএন সিনট্যাক্স

রিদওয়ান বিন শামীম

 

জেএসওএন সিনট্যাক্স, জাভাস্ক্রিপ্ট সিনট্যাক্সের একটি সাবসেট।

জেএসওএন সিনট্যাক্সের নিয়মাবলী

জেএসওএন সিনট্যাক্স, জাভাস্ক্রিপ্টের অবজেক্ট নোটেশন সিনট্যাক্স থেকে উদ্ভূত ।

  • ডাটা নাম ও মানের জোড়ায় থাকে
  • ডাটা কমা দ্বারা আলাদা করা থাকে
  • কুঁকড়ানো ব্র্যাকেট {} দ্বারা অবজেক্ট আবদ্ধ থাকে
  • স্কয়ার ব্র্যাকেট [ ] দ্বারা শ্রেণীবিন্যাস আবদ্ধ থাকে।

 

জেএসওএন ডাটা - একটি নাম ও একটি মান

জেএসওএন ডাটাকে নাম ও মানের জোড়ায় লেখা হয়ে থাকে। নাম ও মানের জোড়া ডাবল কোটে আবদ্ধ ফিল্ড নেম, একটি কোলন চিহ্ন ও একটি মান নিয়ে গঠিত হয়।

উদাহরণ,


"firstName":"John"


নোট : জেএসওএন নামে ডাবল কোটের দরকার হয়, জাভাস্ক্রিপ্টের নামের বেলায় দরকার হয় না।

 

জেএসওএন মান

জেএসওএন মান যেরকম হতে পারে

  • সংখ্যা (পূর্ণসংখ্যা বা ফ্লোটিং পয়েন্ট )
  • স্ট্রিং (ডাবল কোটে থাকবে )
  • Boolean (সত্য বা মিথ্যা)
  • শ্রেণীবিন্যাস (স্কয়ার ব্র্যাকেট দ্বারা আবদ্ধ)
  • অবজেক্ট (কুঁকড়ানো ব্র্যাকেট দ্বারা আবদ্ধ)

 

জেএসওএন অবজেক্ট

জেএসওএন অবজেক্ট কুঁকড়ানো ব্র্যাকেট দ্বারা আবদ্ধ থাকে। জাভাস্ক্রিপ্টের মত জেএসওএন অবজেক্ট মাল্টিপল নাম ও মানের জোড়া সংরক্ষণ করে,

উদাহরণ,


{"firstName":"John", "lastName":"Doe"}


 

 

জেএসওএন অ্যারে

স্কয়ার ব্র্যাকেট দ্বারা অ্যারে আবদ্ধ থাকে। জাভাস্ক্রিপ্টের মত জেএসওএন অ্যারে মাল্টিপল অবজেক্ট সংরক্ষণ করতে পারে।

উদাহরণ,


"employees":[
     {"firstName":"John", "lastName":"Doe"},
     {"firstName":"Anna", "lastName":"Smith"},
     {"firstName":"Peter","lastName":"Jones"}
]

 

উপরের উদাহরণে "employees" হল একটি শ্রেণীবিন্যাস যা তিনটি অবজেক্টকে ধরে রেখেছে, যাদের প্রত্যেকটি এক একজন ব্যক্তির নাম, (ফার্স্ট নেম ও লাস্ট নেম)।

 

জেএসওএন জাভাস্ক্রিপ্টের সিনট্যাক্স ব্যবহার করে

যেহেতু জেএসওএন সিনট্যাক্স, জাভাস্ক্রিপ্টের অবজেক্ট নোটেশন সিনট্যাক্স থেকে উদ্ভূত তাই জাভাস্ক্রিপ্টে জেএসওএন নিয়ে কাজ করলে খুব কম সংখ্যক অতিরিক্ত সফটওয়ার প্রয়োজন হয়। জাভাস্ক্রিপ্টের মাধ্যমে অবজেক্টের শ্রেণীবিন্যাস তৈরি করে তাতে ডাটা সন্নিবেশ করা যায়, যেমন,


var employees = [
      {"firstName":"John", "lastName":"Doe"},
      {"firstName":"Anna", "lastName":"Smith"},
      {"firstName":"Peter","lastName": "Jones"}
];

 

 

জাভাস্ক্রিপ্ট অবজেক্টের শ্রেণীবিন্যাসের প্রথম সত্ত্বাকে যেভাবে দেখানো যায়,


// returns John Doe
 employees[0].firstName + " " + employees[0].lastName;

 

 

এটিকে এভাবেও দেখানো যেতে পারে,


// returns John Doe
 employees[0]["firstName"] + " " + employees[0]["lastName"];

 

 

ডাটা এভাবে পরিবর্তিত হতে পারে,


employees[0].firstName = "Gilbert";


 

 

এটি এভাবেও পরিবর্তিত হতে পারে,


employees[0]["firstName"] = "Gilbert";


 

 

পরবর্তী অধ্যায়ে দেখানো হবে কীভাবে জেএসওএন টেক্সটকে জাভাস্ক্রিপ্ট অবজেক্টে পরিনত করা হয়।

 

জেএসওএন ফাইল

  • জেএসওএন ফাইলের ফাইল টাইপ হল ".json"
  • জেএসওএন টেক্সটের MIME টাইপ হল "application/json"

জাভাস্ক্রিপ্ট সিনট্যাক্স (JavaScript Syntax)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট সিনট্যাক্স

জাভাস্ক্রিপ্ট সিনট্যাক্স হলো কিছু নিয়মের সমষ্টি, এই প্রোগ্রাম কিভাবে কাজ করে সিনট্যাক্সের মাধ্যমে তাই নির্দেশ করা হয়।

 

জাভাস্ক্রিপ্ট প্রোগ্রাম

কম্পিউটার প্রোগ্রাম হলো কম্পিউটারের মাধ্যমে কোন কাজ সম্পাদন করার জন্য প্রয়োজনীয় নির্দেশসমূহের লিস্ট। প্রোগ্রামিং লেঙ্গুয়েজের এ সকল নির্দেশসমূহকে বলা হয় স্টেটমেন্ট।
জাভাস্ক্রিপ্টও একটি প্রোগ্রামিং লেঙ্গুয়েজ।
জাভাস্ক্রিপ্টের স্টেটমেন্টগুলোকে সেমিকোলন দ্বারা একটি থেকে অন্যটিকে আলাদা করা হয়।
উদাহরণ:
var x = 5;
var y = 6;
var z = x + y;

জাভাস্ক্রিপ্ট স্টেটমেন্টস

জাভাস্ক্রিপ্ট স্টেটমেন্টে নিম্নের বিষয়গুলো অন্তর্ভূক্ত রয়েছে।
ভেলু, অপারেটর, এক্সপ্রেসন, কীওয়ার্ড এবং কমেন্ট।

জাভাস্ক্রিপ্ট ভেলু

জাভাস্ক্রিপ্টে দুই ধরনের ভেলু রয়েছে: ফিক্সড ভেলু এবং ভেরিয়েবল ভেলু।
ফিক্সড ভেলুকে লিটারেল বলা হয় এবং ভেরিযবল ভেলুকে ভেরিয়েবল বলা হয়।

জাভাস্ক্রিপ্ট লিটারেলস

ফিক্সড ভেলু লেখার সবচেয়ে গুরুত্বপূর্ণ নিয়মটি হচ্ছে:
দশমিকসহ অথবা দশমিক ছাড়া শুধু নাম্বার লিখা।
10.50
1001
স্ট্রিংকে ডাবল কোটেশন অথবা সিঙ্গেল কোটেশনের মধ্যে লেখা।
"John Doe"
'John Doe'
এক্সপ্রেসনে শুধুমাত্র ফিক্সড ভেলু ব্যবহার করা।
5 + 6
5 * 10

জাভাস্ক্রিপ্ট ভেরিযবল

প্রোগ্রামিং লেঙ্গুয়েজে ডাটাকে স্টোর করার জন্য ভেরিযবল ব্যবহার করা হয়।
জাভাস্ক্রিপ্টে ভেরিযবলকে ডিফাইন করার জন্য var কীওয়ার্ড ব্যবহার করা হয়।
ভেরিযবলে ভেলু এসাইন করার জন্য সমান (=) চিহ্ন ব্যবহার করা হয়।
নিচের উদাহরণে x কে ভেরিযবল হিসেবে ডিফাইন করা হয়েছে এবং পরে x ভেরিযবলে ভেলু 6 এসাইন করা হয়েছে।
var x;
x = 6;

জাভাস্ক্রিপ্ট অপারেটর

কোনো ভেলুকে ভেরিযবলে এসাইন করার জন্য জাভাস্ক্রিপ্ট এসাইনমেন্ট অপারেটর ব্যবহার করে।
var x = 5;
var y = 6;
ভেলুর হিসাব করার জন্য জাভাস্ক্রিপ্ট এরেথমেটিক অপারেটর ব্যবহার করে।
(5 + 6) * 10

জাভাস্ক্রিপ্ট কীওয়ার্ডস

কি ধরনের কাজ সম্পাদন করতে হবে তা জাভাস্ক্রিপ্ট কীওয়ার্ডসের মাধ্যমে ডিফাইন করা হয়।
var কীওয়ার্ডের মাধ্যমে নতুন ভেরিযবল তৈরির নির্দেশনা দেয়া হয়।
var x = 5 + 6;
var y = x * 10

জাভাস্ক্রিপ্ট কমেন্টস

জাভাস্ক্রিপ্টের সকল স্টেটমেন্টই সম্পাদিত হয় না। // এর পরের কোড অথবা /* এবং */ এর ভেতরের কোডগুলো কমেন্ট হিসেবে নির্ধারিত হয়। যে কোনো কমেন্টকে বাতিল বলে গন্য করা হয় এবং তা সম্পাদিত হয় না।
var x = 5; // I will be executed
// var x = 6; I will NOT be executed

জাভাস্ক্রিপ্ট একটি কেস সেনসেটিভ লেঙ্গুয়েজ

জাভাস্ক্রিপ্টের সকল আইডেনটিফায়ার কেস সেনসেটিভ। lastName এবং lastname এই ভেরিযবল দুটি সম্পূর্ণ আলাদা।
lastName = "Doe";
lastname = "Peterson";
জাভাস্ক্রিপ্ট কখনোই কীওয়ার্ড var এর পরিবর্তে VAR অথবা Var কে গ্রহণ করবে না।

জাভাস্ক্রিপ্ট কারেক্টার সেট

জাভাস্ক্রিপ্ট ইউনিকোড কারেক্টার সেট ব্যবহার করে যার মধ্যে পৃথিবীর সকল কারেক্টার, পানচুয়েশন, সিম্বল রয়েছে।

jQuery সিনট্যাক্স (Syntax)

Huge Sell on Popular Electronics

jQuery এইচটিএমএল এলিমেন্ট নির্বাচন করুন এবং তাদের উপর কিছু “কার্য” সম্পাদন করুন।

jQuery সিনট্যাক্স

jQuery সিনট্যাক্স হল এইচটিএমএল এলিমেন্ট নির্বাচক এবং উক্ত এলিমেন্ট এর উপর কিছু কার্য সম্পাদন করা।

মৌলিক সিনট্যাক্স হচ্ছে : $(selector).action()

  • $ চিহ্ন হচ্ছে jQuery কে সঙ্গায়িত বা jQuery এ প্রবেশ করার জন্য
  • (selector) হচ্ছে এইচটিএমএল এলিমেন্ট এর "কুয়েরি (বা খোজার জন্য)"
  • jQuery action() হচ্ছে এলিমেন্ট এর উপর কার্য সম্পাদনের জন্য

 

উদাহরন

$(this).hide() – বর্তমান এলিমেন্ট লুকায়

$("p").hide() – সকল <p> এলিমেন্ট লুকায়

$(".test").hide() – class="test" আছে এমন সকল এলিমেন্ট লুকায়

$("#test").hide() – id="test" আছে এমন সকল এলিমেন্ট লুকায়

 

আপনি কি সিএসএস সেক্টর এর সাথে পরিচিত ?

jQuery নির্বাচন করার জন্য সিএসএস সিনট্যাক্স ব্যাবহার করে। আপনি পরবর্তী টিউটরিয়াল এ সিলেক্টর সিনট্যাক্স সম্বন্ধে আরও জানতে পারবেন ।

 

Document Ready ইভেন্ট

আমাদের সকল উদাহরণে jQuery মেথড document ready ইভেন্ট এর ভিতরে লেখা হয়েছে:


$(document).ready(function(){

   // jQuery methods go here...

});

এটি ডকুমেন্ট লোড হওয়ার পূর্বে jQuery কোড রান হওয়া থেকে রক্ষা করে।

ভাল অভ্যাস হচ্ছে jQuery নিয়ে কাজ করার পূর্বে ডকুমেন্ট পুরোপুরি লোড হওয়া পর্যন্ত অপেক্ষা করা। এটি ডকুমেন্ট প্রদর্শনের পূর্বেই হেড সেকশনে আপনার জাভাস্ক্রিপ্ট কোড পাওয়ার জন্য সহায়তা করে।

ডকুমেন্ট পুরোপুরি লোড হওয়ার পূর্বেই jQuery মেথড নিয়ে কাজ করলে কোন কার্য ব্যর্থ হতে পারে এখানে তার কিছু উদাহরণ দেখানো হলো:

  • একটি এলিমেন্টকে লুকানর চেষ্টা করে যা এখনও তৈরি হয়নিি
  • একটি ছবির আকার পেতে চেষ্টা করে যা এখনও লোড হয়নি

 

টিপস : jQuery টিম document ready এর জন্য সংক্ষিপ্ত পদ্ধতি তৈরি করেছে:


$(function(){

   // jQuery methods go here...

});