প্রোগ্রামিং

আল্টিমেট পাইথন বিগিনারস গাইড

30 অক্টোবর, 2021

সুচিপত্র

  • পরিবেশ সেটআপ
    • স্থানীয় পরিবেশ সেটআপ
    • কিভাবে পাইথন পেতে হয়
    • কিভাবে পাইথন ইন্সটল করবেন
    • উইন্ডোজ ইনস্টলেশন
    • ইউনিক্স/লিনাক্স ইনস্টলেশন
    • MAC ইনস্টলেশন
    • পাইথনের জন্য পাথ সেট আপ করা হচ্ছে
    • ইউনিক্স/লিনাক্সের জন্য পথ সেট করা হচ্ছে
    • উইন্ডোজের জন্য পথ সেট করা
  • পাইথন এনভায়রনমেন্ট ভেরিয়েবল
    • পাইথন চলছে
  • মৌলিক সিনট্যাক্স
    • পাইথন শনাক্তকারী
    • পাইথন স্টেটমেন্ট
    • পাইথনে ইন্ডেন্ট
    • পাইথনে মন্তব্য
    • ইনপুট হচ্ছে
    • আউটপুট প্রদর্শন করুন
  • পরিবর্তনশীল প্রকার
    • ভেরিয়েবলে মান বরাদ্দ করা
    • পাইথন ডেটা প্রকার
    • স্ট্রিংস
    • টিপলস
    • তালিকা
    • সংখ্যা
  • বেসিক অপারেটর
    • নিয়োগ অপারেটর
    • বিটওয়াইজ অপারেটর
    • লজিক্যাল অপারেটর
    • পাটিগণিত অপারেটর
    • তুলনা অপারেটর
    • পরিচয় অপারেটর
    • সদস্যপদ অপারেটর
  • সিদ্ধান্ত গ্রহণ
    • যদি বিবৃতি
    • অন্যথায় যদি
    • নেস্টেড যদি
    • ইফ-এলিফ-অন্য-মই
    • সংক্ষেপে যদি বিবৃতি
    • সংক্ষেপে যদি-অন্যথা বিবৃতি
  • লুপস
    • যখন লুপ
    • লুপের জন্য
    • নেস্টেড লুপ
    • লুপ কন্ট্রোল স্টেটমেন্ট
    • বিবৃতি চালিয়ে যান
    • ব্রেক স্টেটমেন্ট
    • বিবৃতি পাস
  • সংখ্যা
    • সংখ্যার ধরন রূপান্তর
    • র্যান্ডম সংখ্যা ফাংশন
    • ত্রিকোণমিতিক ফাংশন
    • গাণিতিক ফাংশন
  • স্ট্রিংস
    • একটি স্ট্রিং তৈরি করা হচ্ছে
    • স্ট্রিং স্পেশাল অপারেটর
    • স্ট্রিং ফরম্যাটিং অপারেটর
    • পালাবার অক্ষর
    • স্ট্রিং পদ্ধতিতে নির্মিত
  • টিপলস
    • Tuples মধ্যে মান অ্যাক্সেস
    • টিপল আপডেট করা হচ্ছে
    • বেসিক Tuple অপারেটর
    • Tuple ফাংশন মধ্যে নির্মিত
    • ইনডেক্সিং এবং স্লাইসিং
    • একটি tuple মুছে ফেলা হচ্ছে
  • তালিকা
    • তালিকায় মান অ্যাক্সেস করা
    • তালিকা আপডেট করা হচ্ছে
    • মৌলিক তালিকা অপারেটর
    • বিল্ট ইন লিস্ট ফাংশন এবং মেথড
    • ইনডেক্সিং এবং স্লাইসিং
    • তালিকা উপাদান মুছুন
  • অভিধান
    • একটি অভিধান তৈরি করা হচ্ছে
    • একটি অভিধানে উপাদান যোগ করা হচ্ছে
    • অভিধান থেকে উপাদান অপসারণ
    • পাইথন অভিধান পদ্ধতি
  • তারিখ এবং সময়
    • সময় Tuple
    • সময় মডিউল
    • ক্যালেন্ডার মডিউল
  • ফাংশন
    • একটি ফাংশন সংজ্ঞায়িত কিভাবে
    • একটি ফাংশন কলিং
    • রেফারেন্স দ্বারা পাস
    • মান দ্বারা পাস
    • ফাংশন আর্গুমেন্ট
    • পরিবর্তনশীল-দৈর্ঘ্যের আর্গুমেন্ট
    • প্রয়োজনীয় যুক্তি
    • ডিফল্ট আর্গুমেন্ট
    • মূলশব্দ আর্গুমেন্ট
    • বেনামী ফাংশন
  • মডিউল
    • আমদানি বিবৃতি
    • আমদানি বিবৃতি থেকে
    • আমদানি থেকে * বিবৃতি
    • মডিউল সনাক্তকরণ
    • স্থানীয়() এবং গ্লোবাল() ফাংশন
    • নামস্থান এবং স্কোপিং
    • dir( ) ফাংশন
    • রিলোড() ফাংশন
  • ফাইল I/O
    • একটি ফাইল খোলা হচ্ছে
    • ফাইল অবজেক্টের বৈশিষ্ট্য
    • একটি ফাইল বন্ধ করা হচ্ছে
    • বিবৃতি সহ
    • লেখার পদ্ধতি
    • পড়ার পদ্ধতি
    • rename() পদ্ধতি
    • অপসারণ() পদ্ধতি
    • ফাইল অবস্থান
  • ব্যতিক্রম
    • একটি ব্যতিক্রম কি?
    • একটি ব্যতিক্রম হ্যান্ডলিং
    • একটি ব্যতিক্রম উত্থাপন
    • আদর্শ ব্যতিক্রমের তালিকা
    • ব্যবহারকারী সংজ্ঞায়িত ব্যতিক্রম
    • পাইথনে দাবী
  • ক্লাস এবং অবজেক্ট
    • ক্লাস তৈরি করা হচ্ছে
    • ক্লাস অবজেক্ট
    • অ্যাট্রিবিউট অ্যাক্সেস করা
    • অন্তর্নির্মিত বর্গ বৈশিষ্ট্য
    • আবর্জনা সংগ্রহ
    • শ্রেণী উত্তরাধিকার
    • ওভাররাইডিং পদ্ধতি
    • নিয়মিত অভিব্যক্তি
    • ম্যাচ ফাংশন
    • অনুসন্ধান ফাংশন
    • রেগুলার এক্সপ্রেশন মডিফায়ার
    • রেগুলার এক্সপ্রেশন প্যাটার্ন
    • ক্যারেক্টার ক্লাস
    • পুনরাবৃত্তি মামলা
    • নোঙ্গর
  • সিজিআই প্রোগ্রামিং
    • ওয়েব ব্রাউজিং
    • HTTP হেডার
    • CGI এনভায়রনমেন্ট ভেরিয়েবল
    • GET পদ্ধতি
    • পোস্ট পদ্ধতি
    • CGI এ কুকিজ ব্যবহার করা
    • এটা কিভাবে কাজ করে?
  • মাইএসকিউএল ডাটাবেস অ্যাক্সেস
    • ডাটাবেস টেবিল তৈরি করা হচ্ছে
    • ইনসার্ট অপারেশন
    • অপারেশন পড়ুন
    • অপারেশন আপডেট করুন
    • ডিলিট অপারেশন
    • লেনদেন সম্পাদন
    • কমিট অপারেশন
    • রোলব্যাক অপারেশন
    • ডাটাবেস সংযোগ বিচ্ছিন্ন করা হচ্ছে
    • হ্যান্ডলিং ত্রুটি
  • নেটওয়ার্ক
    • সকেট কি?
    • সকেট মডিউল
    • পাইথন ইন্টারনেট মডিউল
  • ইমেইল পাঠানো হচ্ছে
    • পাইথন ব্যবহার করে একটি HTML ইমেল পাঠানো
    • একটি ই-মেইল হিসাবে সংযুক্তি পাঠানো
  • মাল্টিথ্রেড প্রোগ্রামিং
    • একটি নতুন থ্রেড শুরু হচ্ছে
    • থ্রেডিং মডিউল
    • থ্রেড সিঙ্ক্রোনাইজ করা
    • মাল্টিথ্রেডেড অগ্রাধিকার সারি
  • XML প্রসেসিং
  • GUI প্রোগ্রামিং
  • জ্যামিতি ব্যবস্থাপনা
  • প্রস্তাবিত প্রবন্ধ

XML প্রসেসিং

XML হল একটি ওপেন সোর্স ভাষা যা প্রোগ্রামারদের অনুমতি দেয় সফ্টওয়্যার বিকাশ যা অন্যান্য অ্যাপ্লিকেশন দ্বারা পড়া যেতে পারে।

XML কি?

এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ) হল এইচটিএমএল এর মত একটি মার্কআপ ভাষা। এক্সএমএল একটি প্রয়োজন ছাড়াই ডেটা ট্র্যাক রাখার জন্য দরকারী এসকিউএল .

XML পার্সার আর্কিটেকচার এবং API

পাইথন লাইব্রেরি XML এর সাথে কাজ করার জন্য ইন্টারফেসের একটি দরকারী সেট প্রদান করে।

XML ডেটার দুটি API হল DOM এবং SAX ইন্টারফেস।

  • ডকুমেন্ট অবজেক্ট মডেল (DOM) API - এটি একটি ওয়ার্ল্ড ওয়াইড ওয়েব কনসোর্টিয়াম সুপারিশ যেখানে পুরো ফাইলটি মেমরিতে পড়া হয় এবং একটি XML নথির সমস্ত বৈশিষ্ট্য উপস্থাপন করার জন্য একটি ট্রি-ভিত্তিক ফর্মে সংরক্ষণ করা হয়।
  • XML (SAX) এর জন্য সহজ API - এতে আপনি আগ্রহের ঘটনাগুলির জন্য কলব্যাক নিবন্ধন করুন এবং তারপর পার্সারকে নথির মাধ্যমে এগিয়ে যেতে দিন। এটি দরকারী যখন নথিগুলির মেমরির সীমাবদ্ধতা থাকে, এটি ডিস্ক থেকে ফাইলটি পার্স করে এবং পুরো ফাইলটি মেমরিতে সংরক্ষণ করা হয়।

SAX DOM এর মত দ্রুত তথ্য প্রক্রিয়া করতে পারে না। অন্যদিকে, DOM ব্যবহার করা সম্পদগুলিকে হত্যা করতে পারে

SAX শুধুমাত্র পঠনযোগ্য, যেখানে DOM XML ফাইলে পরিবর্তনের অনুমতি দেয়।

SAX API-এর সাথে XML পার্স করা হচ্ছে

SAX হল ইভেন্ট-চালিত XML পার্সিংয়ের জন্য একটি ইন্টারফেস। SAX এর সাথে XML পার্স করার জন্য আপনাকে xml.sax.ContentHandler সাবক্লাস করে ContentHandler তৈরি করতে হবে।

XML ফাইলের শুরুতে এবং শেষে দুটি পদ্ধতি startDocument এবং endDocument বলা হয়।

কন্টেন্টহ্যান্ডলার প্রতিটি উপাদানের শুরুতে এবং শেষে বলা হয়। যদি একটি পার্সার নেমস্পেস মোডে না থাকে, তাহলে startElement এবং endElement পদ্ধতিগুলিকে বলা হয়। ট্যাগ হল এলিমেন্ট ট্যাগ, এবং অ্যাট্রিবিউট হল একটি অ্যাট্রিবিউট অবজেক্ট।

এখানে এগিয়ে যাওয়ার আগে বুঝতে কয়েকটি পদ্ধতি রয়েছে:

মেক_পার্সার পদ্ধতি

এই পদ্ধতিটি একটি নতুন পার্সার অবজেক্ট তৈরি করে এবং এটি ফেরত দেয়। তৈরি করা পার্সার অবজেক্টটি হবে প্রথম পার্সার টাইপের।

|_+_|
  • parser_list - যুক্তিতে ব্যবহার করার জন্য পার্সারের একটি তালিকা থাকে যা অবশ্যই make_parser পদ্ধতি প্রয়োগ করতে হবে।

পার্স পদ্ধতি

এটি একটি SAX পার্সার তৈরি করে এবং একটি নথি পার্স করতে ব্যবহৃত হয়।

|_+_|
  • xmfile −এটি XML ফাইলের নাম যা থেকে পড়তে হবে।
  • contenthandler - এটি একটি ContentHandler অবজেক্ট হওয়া উচিত।
  • errorhandler - যদি উল্লেখ করা হয়, errorhandler অবশ্যই একটি SAX ErrorHandler অবজেক্ট হতে হবে।

পার্সস্ট্রিং পদ্ধতি

এটি একটি SAX পার্সার তৈরি করার এবং XML স্ট্রিং পার্স করার একটি পদ্ধতি।

|_+_|
  • xmlstring - এটি XML স্ট্রিং এর নাম যেটি থেকে পড়তে হবে।
  • contenthandler - এটি একটি ContentHandler অবজেক্ট হওয়া উচিত।
  • errorhandler - যদি উল্লেখ করা হয়, errorhandler অবশ্যই একটি SAX ErrorHandler অবজেক্ট হতে হবে।

GUI প্রোগ্রামিং

Tkinter পাইথনের জন্য একটি GUI লাইব্রেরি। Python, Tkinter এর সাথে মিলিত হলে GUI অ্যাপ্লিকেশন তৈরি করার একটি সহজ এবং দ্রুত উপায় অফার করে। Tkinter Tk GUI টুলকিটে একটি শক্তিশালী অবজেক্ট-ভিত্তিক ইন্টারফেস অফার করে।

Tkinter এর সাহায্যে একটি GUI অ্যাপ্লিকেশন তৈরি করা একটি সহজ কাজ। আপনাকে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করতে হবে:

  • আমদানি করুন টিকিন্টার মডিউল
  • একটি GUI অ্যাপ্লিকেশন প্রধান উইন্ডো তৈরি করুন।
  • GUI অ্যাপ্লিকেশনে উপরে উল্লিখিত উইজেট যোগ করুন।
  • প্রতিটি ইভেন্টের বিরুদ্ধে ব্যবস্থা নিতে ইভেন্ট লুপ লিখুন।

Tkinter উইজেট

হ্যাঁ না অপারেটর বর্ণনা
এক ক্যানভাসএটি আপনার অ্যাপ্লিকেশনে রেখা, ডিম্বাকৃতি, বহুভুজ এবং আয়তক্ষেত্রের মতো আকার আঁকতে ব্যবহৃত হয়।
দুই চেক বোতামএটি চেকবক্স হিসাবে বিকল্পের সংখ্যা প্রদর্শন করতে ব্যবহৃত হয়।
3 তালিকাএটি একটি ব্যবহারকারীকে বিভিন্ন কমান্ড প্রদান করতে ব্যবহৃত হয়। কমান্ড মেনুবাটনের ভিতরে থাকে।
4 বার্তাএটি মাল্টিলাইন পাঠ্য ক্ষেত্রগুলি প্রদর্শন করতে ব্যবহৃত হয় যা ব্যবহারকারীর কাছ থেকে মান গ্রহণ করে।
5 ঘূর্ণন বাক্সএটি স্ট্যান্ডার্ড Tkinter এন্ট্রি উইজেটের একটি বৈকল্পিক, যা একটি নির্দিষ্ট সংখ্যক মান থেকে নির্বাচন করতে ব্যবহার করা যেতে পারে।
6 লেবেলফ্রেমএটি একটি ধারক উইজেট। উদ্দেশ্য হল জটিল উইন্ডো লেআউটগুলির জন্য একটি স্পেসার বা ধারক হিসাবে কাজ করা।
7 প্যানড উইন্ডোএটি একটি কন্টেইনার উইজেট যাতে অনুভূমিকভাবে বা উল্লম্বভাবে সাজানো বেশ কয়েকটি প্যান থাকে।
8 বোতামএটি অ্যাপ্লিকেশনে বোতাম প্রদর্শন করতে ব্যবহৃত হয়।
9 tkMessageBoxএটি আপনার অ্যাপ্লিকেশনগুলিতে বার্তা বাক্সগুলি প্রদর্শন করতে ব্যবহৃত হয়।
10 শীর্ষ স্তরএটি একটি পৃথক উইন্ডো ধারক প্রদান করতে ব্যবহৃত হয়।
এগারো ফ্রেমএটি অন্যান্য উইজেটগুলিকে সংগঠিত করার জন্য একটি ধারক উইজেট হিসাবে ব্যবহৃত হয়।
12 তালিকা বাক্সএটি ব্যবহারকারীকে বিকল্পগুলির একটি তালিকা প্রদান করতে ব্যবহৃত হয়।
13 মেনুবাটনএটি আপনার অ্যাপ্লিকেশনে মেনু প্রদর্শন করতে ব্যবহৃত হয়।
14 রেডিও বোতামএটি রেডিও বোতাম হিসাবে বিকল্পগুলি প্রদর্শন করতে ব্যবহৃত হয়।
পনের স্কেলএটি একটি স্লাইডার উইজেট প্রদান করতে ব্যবহৃত হয়।
16 প্রবেশএটি ব্যবহারকারীর কাছ থেকে মান গ্রহণ করার জন্য একটি একক-লাইন পাঠ্য ক্ষেত্র প্রদর্শন করতে ব্যবহৃত হয়।
17 লেবেলএটি অন্যান্য উইজেটগুলির জন্য একটি একক-লাইন ক্যাপশন প্রদান করতে ব্যবহৃত হয়। এতে ছবিও থাকতে পারে।
18 পাঠ্যএটি একাধিক লাইনে পাঠ্য প্রদর্শন করতে ব্যবহৃত হয়।
19 স্ক্রল বারএটি বিভিন্ন উইজেট যেমন তালিকা বাক্সে স্ক্রোলিং ক্ষমতা যোগ করতে ব্যবহৃত হয়।

জ্যামিতি ব্যবস্থাপনা

সমস্ত Tkinter উইজেটগুলির কিছু জ্যামিতি ব্যবস্থাপনা পদ্ধতিতে অ্যাক্সেস রয়েছে যা প্যারেন্ট উইজেট এলাকায় উইজেটগুলিকে সংগঠিত করে।

  • দ্য প্যাক() পদ্ধতি - প্যারেন্ট উইজেটে রাখার আগে ব্লক করুন।
  • দ্য গ্রিড() পদ্ধতি - প্যারেন্ট উইজেটে একটি টেবিলের মতো কাঠামো।
  • দ্য স্থান() পদ্ধতি - তাদের প্যারেন্ট উইজেটে একটি নির্দিষ্ট অবস্থানে রাখে।