Shahed Talukder
3 min readApr 8, 2021

--

জাভা vs পাইথন: তফাৎ ও ফিচার

  • পাইথন ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ — আর তাই, যেকোনো মেথড কোথাও ব্যবহার করতে হলে বা কল করতে হলে মেথডের বডি হয় আগে (অর্থাৎ, ফাইলে কল করার আগেই) লিখে রাখতে হবে, অথবা ইম্পোর্ট করে আগেই ইন্টারপ্রেটারের কাছে চিনিয়ে রাখতে হবে।
  • পাইথন জাভার মতো ‘Strongly Typed’ ল্যাংগুয়েজ না। ভ্যারিয়েবল -র টাইপ বলে দিতে হয় না, পাইথন নিজে থেকেই এসাইনমেন্ট -এর উপর ভিত্তি করে ভ্যারিয়েবলের টাইপ ঠিক করে নেয়। যেমন, myVar = 5
  • পাইথনে ক্যার্লি ব্রেইস (‘{‘, ‘}’) -র কিংবা কোডের শেষে সেমিকোলনের (
  • বালাই নেই। পাইথন কোডের ইন্ডেন্টেশন উপর ভিত্তি করে নিজে থেকেই কোডের স্কোপ বুঝে নেয়। অবশ্য ‘for’ লুপ কিংবা ‘if’, ‘else’ এর শুরুটা কোলন) চিহ্ন দিয়ে বোঝাতে হয়।
  • ‘else if’ কে পাইথন সংক্ষেপে elif বলে!
  • পাইথনে Array বলে কিছু নেই। তার বদলে যা আছে, তা Array, Linked List আর Stack -এর মিশেল! একে List বলে। যেমন: myList = [1, 2, 3, “Cat”, False]
  • Array -র মতো ইনডেক্স বেসড এলিমেন্ট একসেস করা যায়
  • LinkedList -র মতো দুটো এলিমেন্টের মাঝে আবার নতুন এলিমেন্ট ইন্সার্ট করার উপায়ও আছে।
  • Stack -এর পুশ, পপ -এর মতো পাইথনের লিস্টের শেষ এলিমেন্টের পর এপেন্ড বা শেষ এলিমেন্ট পপ করা যায়।
  • লিস্টে একটা ভ্যালু কয়বার আছে, তাও কাউন্ট করার মেথড আছে।
  • পাইথনের লিস্টে একই টাইপ ভ্যালু রাখার কোনো বাধ্যবাধকতা নেই। একই লিস্টে একসাথে ইন্টিজার, স্ট্রিং কিংবা ফ্লোট টাইপ ভ্যালু রাখা যায়।
  • পাইথনে লিস্টের শেষ থেকে এলিমেন্ট একসেস করা যায়। myList [-1] লিস্টের শেষ এলিমেন্ট, myList[-2] তেমনি লিস্টের শেষ থেকে দুই নম্বর এলিমেন্ট রিটার্ন করবে!
  • পাইথনে কোনো Switch-Case স্টেটমেন্ট নেই।
  • for লুপের কাউন্টার ভ্যারিয়েবল (for counter in range(10: …) শুধু for লুপের মধ্যেই সীমাবদ্ধ না। for লুপের বাইরেও কাউন্টার ভ্যারিয়েবল তার ভ্যালু ধরে রাখে, তাকে ব্যবহারও করা যায়।
  • ইন্টিজার ডিভিশন নামে পাইথনে নতুন এক ধরণের অপারেটর (ডাবল স্ল্যাশ // — জাভাতে যেটা কমেন্ট ) চালু করা হয়েছে। 3 / 2 পাইথনে যেখানে 1.5 রেসাল্ট দিবে, 3 // 2 দিবে শুধু 1
  • কোডে কমেন্ট করার জন্য পাইথনে হ্যাশ চিহ্ন ‘#’ ব্যবহার করা হয়।
  • জাভাতে এক্সপোনেন্ট (যেটাকে আমরা সাধারণত ‘পাওয়ার’ বলি, 3 পাওয়ার 3 = 27) অপারেটর না থাকলেও পাইথনে আছে। ডাবল মাল্টিপ্লিকেশন (**) দিয়ে তা বোঝানো হয়। পাইথনে 3 ** 3 = 27
  • জাভাতে true, false স্মল লেটারে লেখা হয়, পাইথনে তা টাইটেল ফন্টে, অর্থাৎ প্রথম লেটার ক্যাপিটালাইজড: True, False
  • লজিকাল এন্ড, অর বা নট (জাভাতে যা &&, ।।, !) পাইথনে শব্দাকারে and, or বা not হিসাবে লেখা হয়।
  • পাইথনে String দুইভাবে ডিফাইন করা যায়। সিঙ্গেল কিংবা ডাবল কোট ব্যবহার করে String ডিফাইন করা যায়, যেমন: ‘This is a string’ বা “This is a string” — দুটোই একই String, অর্থাৎ কোট ম্যাচিং হতে হবে। খেয়াল রাখতে হবে, শুরুতে সিঙ্গেল কোট আর শেষে ডাবল কোট দিলে (বা উল্টোটা করলে) হবে না। যেমন: ‘This is invalid string” কোনো String না, এভাবে লিখলে Syntax Error হবে। এতে করে মজার ব্যাপার হচ্ছে ‘Someone just said: “Python is fun!” — and I agree’ — এটাও একটা ভ্যালিড String!
  • জাভাতে যেটা null পাইথনে সেটা None
  • পাইথনে Math -এর Set ডিক্লেয়ার করা যায়। যেমন : mySet = {1, 2, 3, True, ‘Cat’ }, অর্থাৎ, ক্যার্লি ব্রেইস ব্যবহার করে Set ডিফাইন করা যায়। আর Set -এর যাবতীয় ফাংশন, যেমন ইন্টারসেকশন, ইউনিয়ন, সাবসেট ইত্যাদি অপারেশন করা যায়।

--

--

Shahed Talukder

An Independent full-stack developer who works with Python & Javascript with two years of experience and can adjust to upcoming technologies.