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

30 অক্টোবর, 2021

সুচিপত্র

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

ফাংশন

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

Python বিল্ট-ইন ফাংশন প্রদান করে যেমন print(), ইত্যাদি কিন্তু আমরা আপনার ফাংশনও তৈরি করতে পারি। এই ফাংশনগুলিকে ব্যবহারকারী-সংজ্ঞায়িত ফাংশন বলা হয়।



img 617dd26e8d81f

আউটপুট

img 617dd26ece337

একটি ফাংশন সংজ্ঞায়িত কিভাবে

  • ফাংশন ব্লকটি def কীওয়ার্ড দিয়ে শুরু হয় এবং এটি ফাংশনের নাম এবং বন্ধনী ( ( ) ) দ্বারা অনুসরণ করা হয়।
  • যেকোনো ইনপুট আর্গুমেন্ট বন্ধনীর মধ্যে স্থাপন করা উচিত। আপনি বন্ধনীর ভিতরে পরামিতি নির্ধারণ করতে পারেন।
  • ফাংশনের প্রথম বিবৃতি ঐচ্ছিক হতে পারে - ফাংশনের ডকুমেন্টেশন স্ট্রিং।
  • প্রতিটি ফাংশনের মধ্যে কোড সাধারণত একটি কোলন (:) দিয়ে শুরু হয় এবং এটি ইন্ডেন্ট করা হয়।
  • স্টেটমেন্ট রিটার্ন একটি ফাংশন থেকে বেরিয়ে যায়, যা ঐচ্ছিকভাবে কলারের কাছে একটি অভিব্যক্তি ফেরত দেয়। কোনো আর্গুমেন্ট ছাড়া রিটার্ন স্টেটমেন্ট রিটার্ন None এর মতই।

বাক্য গঠন

|_+_|

একটি ফাংশন কলিং

ফাংশন সংজ্ঞায়িত করার অর্থ ফাংশনটিকে একটি নাম দেওয়া, ফাংশনে অন্তর্ভুক্ত প্যারামিটারগুলি নির্দিষ্ট করে এবং এটি কোডের ব্লকগুলিকে গঠন করে। যদি একটি ফাংশনের মৌলিক কাঠামো চূড়ান্ত হয়, আপনি অন্য ফাংশন থেকে কল করে বা সরাসরি পাইথন প্রম্পট থেকে ফাংশনটি কার্যকর করতে পারেন।

রেফারেন্স দ্বারা পাস

পাইথন ভাষার সমস্ত পরামিতি সাধারণত রেফারেন্স দ্বারা পাস করা হয়। এর মানে হল যে আপনি যদি একটি ফাংশনের মধ্যে একটি প্যারামিটার যা বলে তা পরিবর্তন করেন, পরিবর্তনটি কলিং ফাংশনেও প্রতিফলিত হয়।

মান দ্বারা পাস

মান দ্বারা পাস ফাংশন সাধারণত কলকারী দ্বারা পাস আর্গুমেন্ট বস্তুর একটি অনুলিপি প্রদান করা হয়. এর অর্থ হল মূল বস্তুটি অক্ষত থাকে এবং করা পরিবর্তনগুলি একটি অনুলিপি এবং বিভিন্ন মেমরি অবস্থানে সংরক্ষণ করা হয়।

ফাংশন আর্গুমেন্ট

আপনি এই আনুষ্ঠানিক আর্গুমেন্ট ব্যবহার করে ফাংশন কল করতে পারেন

  • পরিবর্তনশীল-দৈর্ঘ্যের আর্গুমেন্ট
  • প্রয়োজনীয় যুক্তি
  • ডিফল্ট আর্গুমেন্ট
  • মূলশব্দ আর্গুমেন্ট

পরিবর্তনশীল-দৈর্ঘ্যের আর্গুমেন্ট

আপনি ফাংশনটি সংজ্ঞায়িত করার সময় আপনার নির্দিষ্ট করার চেয়ে বেশি আর্গুমেন্টের জন্য ফাংশনটি প্রক্রিয়া করতে হবে। এই যুক্তি হিসাবে পরিচিত হয় পরিবর্তনশীল দৈর্ঘ্য আর্গুমেন্ট, এবং সেগুলি প্রয়োজনীয় এবং ডিফল্ট আর্গুমেন্টের বিপরীতে ফাংশনের সংজ্ঞাতে নাম দেওয়া হয় না।

img 617dd26f125c2

আউটপুট

img 617dd26f54165

প্রয়োজনীয় যুক্তি

প্রয়োজনীয় আর্গুমেন্ট হল সেই আর্গুমেন্ট যা একটি ফাংশনে সঠিক ক্রমে পাস করা হয়। এখানে, ফাংশন কলের আর্গুমেন্টগুলি ফাংশনের সংজ্ঞার সাথে অবিকল মেলে।

img 617dd26f8f03f

আউটপুট

img 617dd27001f4b

ডিফল্ট আর্গুমেন্ট

ডিফল্ট আর্গুমেন্ট হল একটি আর্গুমেন্ট যা সেই আর্গুমেন্টের জন্য ফাংশন কলে একটি মান দেওয়া হোক বা না হোক ডিফল্ট মান ধরে নেয়।

img 617dd2703b6e4

আউটপুট

img 617dd2707158f

মূলশব্দ আর্গুমেন্ট

পাইথন আপনাকে কীওয়ার্ড আর্গুমেন্ট সহ ফাংশন কল করতে সাহায্য করে। এই ফাংশন কল আপনাকে এলোমেলো ক্রমে বিবৃতি পাস করতে সক্ষম করবে।

আর্গুমেন্টের নামটিকে কীওয়ার্ড হিসাবে বিবেচনা করা হয় এবং ফাংশন কলিং এবং সংজ্ঞার সাথে মিলে যায়। যদি একই মিল পাওয়া যায়, আর্গুমেন্টের মানগুলি ফাংশনের সংজ্ঞাতে অনুলিপি করা হয়।

img 617dd270b419f

আউটপুট

img 617dd2710a550

বেনামী ফাংশন

  • Lambda ফর্মগুলি অনেকগুলি আর্গুমেন্ট নিতে পারে, কিন্তু এটি এক্সপ্রেশন আকারে শুধুমাত্র একটি মান প্রদান করে। তারা কমান্ড বা একাধিক অভিব্যক্তি থাকতে পারে না.
  • একটি বেনামী ফাংশন প্রিন্ট করার জন্য সরাসরি কল হতে পারে না কারণ ল্যাম্বডা একটি অভিব্যক্তি প্রয়োজন।
  • Lambda ফাংশনগুলির স্থানীয় নামস্থান রয়েছে এবং তাদের প্যারামিটার তালিকা এবং বিশ্বব্যাপী নামস্থানে থাকাগুলি ছাড়া অন্য ভেরিয়েবলগুলি অ্যাক্সেস করতে পারে না।
  • তবে এটা দেখা যাচ্ছে যে ল্যাম্বডাস একটি এক-লাইন ফাংশন, এগুলি C++ বা C-তে ইনলাইন স্টেটমেন্টের সমতুল্য নয়, যার উদ্দেশ্য হল কর্মক্ষমতার কারণে আহ্বানের সময় ফাংশন স্ট্যাক বরাদ্দ বাইপাস করা।

মডিউল

একটি মডিউল আপনাকে আপনার পাইথন কোড যৌক্তিকভাবে সংগঠিত করতে দেয়। একটি মডিউলে কোড গ্রুপ করা কোডটিকে বোঝা এবং ব্যবহার করা সহজ করে তোলে। একটি মডিউল হল একটি পাইথন অবজেক্ট যার ধারাবাহিকভাবে নামযুক্ত বৈশিষ্ট্য রয়েছে যা আপনি আবদ্ধ এবং উল্লেখ করতে পারেন।

অন্য কথায়, একটি মডিউল হল একটি ফাইল যা পাইথন কোড নিয়ে গঠিত। একটি মডিউল ফাংশন, ক্লাস এবং ভেরিয়েবল সংজ্ঞায়িত করতে পারে। এটি রানযোগ্য কোডও অন্তর্ভুক্ত করতে পারে।

আমদানি বিবৃতি

আপনি পাইথন সোর্স ফাইলটিকে একটি মডিউল হিসাবে ব্যবহার করতে পারেন অন্য কিছু পাইথন সোর্স ফাইলে একটি ইম্পোর্ট স্টেটমেন্ট এক্সিকিউট করে।

বাক্য গঠন

|_+_|

যখন একজন দোভাষী একটি আমদানি বিবৃতির সম্মুখীন হয়, তখন এটি অনুসন্ধানের পথে উপস্থাপিত মডিউলটি আমদানি করে। এটি ডিরেক্টরিগুলির একটি তালিকা যা একজন দোভাষী একটি মডিউল আমদানি করার আগে অনুসন্ধান করে।

আমদানি বিবৃতি থেকে

বিবৃতি থেকে পাইথন আপনাকে বর্তমান নামস্থানে একটি মডিউল থেকে নির্দিষ্ট বৈশিষ্ট্যগুলি আমদানি করতে সহায়তা করে।

বাক্য গঠন

|_+_|

আমদানি থেকে * বিবৃতি

একটি বর্তমান নামস্থানে একটি মডিউল থেকে সমস্ত নাম আমদানি করা সম্ভব।

বাক্য গঠন

|_+_|

এটি একটি মডিউল থেকে একটি বর্তমান নামস্থানে আইটেম আমদানি করার একটি সহজ উপায় প্রদান করে; যদিও, এই বিবৃতি সামান্য ব্যবহার করা উচিত.

মডিউল সনাক্তকরণ

আপনি যখন মডিউল আমদানি করেন, তখন দোভাষী এই ক্রমগুলিতে মডিউলটি অনুসন্ধান করে

  • বর্তমান ডিরেক্টরি।
  • যদি মডিউলটি সেখানে না থাকে, তাহলে এটি শেল ভেরিয়েবল PYTHONPATH-এ প্রতিটি ডিরেক্টরি অনুসন্ধান করে।
  • যদি এটিও ব্যর্থ হয়, পাইথন ডিফল্ট পথ পরীক্ষা করে।

মডিউলটি sys.path ভেরিয়েবল হিসাবে সিস্টেম মডিউলে সংরক্ষিত পাথ অনুসন্ধান করে। sys.path ভেরিয়েবলে বর্তমান ডিরেক্টরি, PYTHONPATH এবং ইনস্টলেশন-নির্ভর ডিফল্ট রয়েছে।

স্থানীয়() এবং গ্লোবাল() ফাংশন

লোকালস() এবং গ্লোবালস() ফাংশনগুলি স্থানীয় এবং গ্লোবাল নেমস্পেসগুলিতে নামগুলি ফেরত দিতে ব্যবহৃত হয় যা তাদের যে অবস্থান থেকে কল করা হয়েছে তার উপর নির্ভর করে।

যদি গ্লোবালস() ফাংশনের মধ্যে থেকে কল করা হয়, তবে এটি সেই ফাংশন থেকে বিশ্বব্যাপী অ্যাক্সেস করা যেতে পারে এমন সমস্ত নাম ফেরত দেয়।

যদি একটি ফাংশনের মধ্যে থেকে স্থানীয় () কল করা হয়, তবে এটি সেই ফাংশন থেকে স্থানীয়ভাবে অ্যাক্সেস করা যেতে পারে এমন সমস্ত নাম ফিরিয়ে দেবে।

উভয় ফাংশনের রিটার্ন টাইপ একটি অভিধান। তাই, key() ফাংশন ব্যবহার করে নাম বের করা যায়।

নামস্থান এবং স্কোপিং

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

একটি পাইথন বিবৃতি স্থানীয় নামস্থানে ভেরিয়েবল অ্যাক্সেস করতে পারে। গ্লোবাল নেমস্পেসে গ্লোবাল এবং স্থানীয় ভেরিয়েবলের একই নাম থাকলে, স্থানীয় ভেরিয়েবল গ্লোবাল ভেরিয়েবলকে ছায়া দেয়।

প্রতিটি ফাংশনের স্থানীয় নামস্থান রয়েছে। ক্লাস পদ্ধতিগুলি অন্যান্য সাধারণ ফাংশনের মতো একই স্কোপিং নিয়ম অনুসরণ করে।

একটি গ্লোবাল ভেরিয়েবলে একটি মান নির্ধারণ করতে আপনাকে গ্লোবাল স্টেটমেন্ট ব্যবহার করতে হবে।

উদাহরণস্বরূপ, আমরা বৈশ্বিক নামস্থানে একটি পরিবর্তনশীল অর্থ সংজ্ঞায়িত করি। Money ফাংশনের মধ্যে, আমরা টাকাকে একটি মান নির্ধারণ করি। তাই পাইথন মানিকে স্থানীয় পরিবর্তনশীল হিসেবে ধরে নেয়। যাইহোক, আমরা এটি সেট করার আগে স্থানীয় পরিবর্তনশীল অর্থের মান অ্যাক্সেস করেছি, তাই একটি UnboundLocalError ফলাফল। বিশ্বব্যাপী বিবৃতিতে মন্তব্য না করা সমস্যার সমাধান করে।

dir( ) ফাংশন

dir() ফাংশন হল একটি অন্তর্নির্মিত ফাংশন যা স্ট্রিংগুলির একটি সাজানো তালিকা প্রদান করে যাতে একটি মডিউল দ্বারা সংজ্ঞায়িত নাম থাকে। তালিকায় একটি মডিউলে সংজ্ঞায়িত মডিউল, ভেরিয়েবল এবং ফাংশনের সমস্ত নাম রয়েছে

রিলোড() ফাংশন

যখন মডিউলটি আমদানি করা হয়, একটি মডিউলের শীর্ষ-স্তরের কোডটি শুধুমাত্র একবার কার্যকর করা হয়। অতএব, আপনি যদি আবার একটি মডিউলে শীর্ষ-স্তরের কোডটি চালাতে চান তবে আপনি reload() ফাংশনটি ব্যবহার করতে পারেন। পুনরায় লোড() ফাংশনটি পূর্বে আমদানি করা মডিউল আবার আমদানি করে।

বাক্য গঠন

|_+_|