python - সহজ ভাষায় পাইথন ৩ pdf




কিভাবে আমি পাইথন একটি লাইন বিরতি(লাইন ধারাবাহিকতা) করতে পারি? (6)

ঘোড়ার মুখ থেকে: স্পষ্ট লাইন যোগদান

ব্যাকস্ল্যাশ অক্ষরগুলি ( \ ) ব্যবহার করে লজিক্যাল লাইনগুলিতে যোগ করা যেতে পারে দুই বা ততোধিক শারীরিক লাইন যোগ করা যেতে পারে: যখন কোনও ব্যাকল্ল্যাশ একটি ব্যাকস্ল্যাশে শেষ হয় যা স্ট্রিং আক্ষরিক বা মন্তব্যের অংশ নয় তবে এটি একটি একক যৌক্তিক লাইন, ব্যাকস্ল্যাশ মুছে ফেলার এবং নিচের লাইনের শেষ অক্ষরটি মুছে ফেলুন। উদাহরণ স্বরূপ:

if 1900 < year < 2100 and 1 <= month <= 12 \
   and 1 <= day <= 31 and 0 <= hour < 24 \
   and 0 <= minute < 60 and 0 <= second < 60:   # Looks like a valid date
        return 1

একটি ব্যাকস্ল্যাশ শেষ একটি লাইন একটি মন্তব্য বহন করতে পারে না। একটি ব্যাকস্ল্যাশ একটি মন্তব্য অবিরত না। একটি ব্যাকস্ল্যাশ স্ট্রিং লিটারালগুলি ব্যতীত একটি টোকেন চালু করে না (অর্থাত স্ট্রিং লিটারাল ছাড়া অন্য টোকেনগুলি ব্যাকস্ল্যাশ ব্যবহার করে শারীরিক লাইনগুলিতে বিভক্ত করা যায় না)। একটি ব্যাকস্ল্যাশ একটি স্ট্রিং আক্ষরিক বাইরে একটি লাইন অন্যত্র অবৈধ।

আমি কোড দীর্ঘ লাইন আছে যে আমি একাধিক লাইন মধ্যে বিরতি করতে চান। আমি কি ব্যবহার এবং সিনট্যাক্স কি?

উদাহরণস্বরূপ, স্ট্রিং একটি গুচ্ছ যোগ,

e = 'a' + 'b' + 'c' + 'd'

এবং এটি এই মত দুটি লাইন আছে:

e = 'a' + 'b' +
    'c' + 'd'

আপনার লাইনের শেষে একটি বা \ রাখুন অথবা বিবৃতিতে বন্ধনগুলি ( .. )IBM থেকে:

b = ((i1 < 20) and
     (i2 < 30) and
     (i3 < 40))

অথবা

b = (i1 < 20) and \
    (i2 < 30) and \
    (i3 < 40)

একটি লাইন শেষ করার জন্য ব্যাকস্ল্যাশ ব্যবহার করে বিপদটি হল যে ব্যাকস্ল্যাশের পরে হোয়াইটস্পেস যুক্ত করা হলে (যা অবশ্যই, দেখতে খুব কঠিন), ব্যাকস্ল্যাশটি আর আপনি যা মনে করেন তা আর করবে না।

আরও তথ্যের জন্য পাইথন আইডিয়ম এবং এন্টি-আইডিয়ামগুলি ( পাইথন 2 বা পাইথন 3 ) দেখুন।


পাইথনিক উপায় হতে পারে না তবে আমি সাধারণত এসকিউএল প্রশ্নগুলির মতো দীর্ঘ স্ট্রিং লেখার জন্য ফাংশন যোগদান করে তালিকাটি ব্যবহার করি।

query = " ".join([
    'SELECT * FROM "TableName"',
    'WHERE "SomeColumn1"=VALUE',
    'ORDER BY "SomeColumn2"',
    'LIMIT 5;'
])

হিটহাইকারস গাইড থেকে পাইথন ( লাইন অব্যাহতকরণ ) থেকে নেওয়া হয়েছে:

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

একটি ভাল সমাধান আপনার উপাদানের চারপাশে বন্ধনী ব্যবহার করা হয়। বন্ধের লাইনের উপর একটি বন্ধ বন্ধনী সহ বামে প্যাথন ইন্টারপ্রেটারটি পরবর্তী লাইনটিতে বন্ধ হয়ে যাবে যতক্ষণ না বন্ধনী বন্ধ থাকে। একই আচরণ কোঁকড়া এবং বর্গাকার ব্রেস জন্য ঝুলিতে।

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

যে বলে, এখানে একাধিক আমদানি সংক্রান্ত একটি উদাহরণ (যখন PEP-8 সংজ্ঞায়িত লাইন সীমা অতিক্রম করে ):

from app import (
    app, abort, make_response, redirect, render_template, request, session
)

পাইথন কোডের স্টাইল গাইড থেকে:

লম্বা লাইন মোড়ানো করার পছন্দের উপায় প্যারথন এর অন্তর্নির্মিত লাইন ক্রমাঙ্কনটি বন্ধনী, বন্ধনী এবং ধনুর্বন্ধনী ব্যবহার করে। দীর্ঘ লাইন বন্ধনী মধ্যে এক্সপ্রেশন মোড়ানো দ্বারা একাধিক লাইন উপর ভাঙ্গা যাবে। এই লাইন ধারাবাহিকতার জন্য একটি ব্যাকস্ল্যাশ ব্যবহার করতে পছন্দ করা উচিত।

Backslashes এখনও সময়ে উপযুক্ত হতে পারে। উদাহরণস্বরূপ, দীর্ঘ, একাধিক সহ-বিবৃতি নিরবচ্ছিন্ন ধারাবাহিকতা ব্যবহার করতে পারে না, তাই ব্যাকস্ল্যাশগুলি গ্রহণযোগ্য:

with open('/path/to/some/file/you/want/to/read') as file_1, \
        open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

আরেকটি মামলা বিবৃতি বিবৃতি সঙ্গে হয়।

যথাযথভাবে চলমান লাইন ইন্ডেন্ট করতে ভুলবেন না। একটি বাইনারি অপারেটর প্রায় বিরতি পছন্দের জায়গা অপারেটর পরে , এটা আগে না। কিছু উদাহরণ:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):
        if (width == 0 and height == 0 and
                color == 'red' and emphasis == 'strong' or
                highlight > 100):
            raise ValueError("sorry, you lose")
        if width == 0 and height == 0 and (color == 'red' or
                                           emphasis is None):
            raise ValueError("I don't think so -- values are %s, %s" %
                             (width, height))
        Blob.__init__(self, width, height,
                      color, emphasis, highlight)

সম্পাদনা করুন: PEP8 এখন পাঠযোগ্যতা উন্নত করার জন্য গণিতবিদ এবং তাদের প্রকাশকদের দ্বারা ব্যবহৃত বাইরের ক্রিয়াকলাপগুলির (বিনিময় ক্রিয়াকলাপে ভাঙ্গার জন্য) বিপরীত সম্মেলনের সুপারিশ করে।

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

PEP8 থেকে : একটি লাইন বিরতি একটি বাইনারি অপারেটর আগে বা পরে উচিত? :

ডোনাল্ড নুথ তার কম্পিউটার এবং টাইপসেটিং সিরিজের ঐতিহ্যগত নিয়ম ব্যাখ্যা করেছেন: "যদিও অনুচ্ছেদের মধ্যে সূত্র বাইনারি অপারেশন এবং সম্পর্কের পরে সর্বদা বিরতি দেয়, তবে সূত্রগুলি সর্বদা বাইনারি অপারেশনগুলির আগে ভাঙ্গে" [3]।

গণিত থেকে ঐতিহ্য অনুসরণ সাধারণত আরও পাঠযোগ্য কোড ফলাফল:

# Yes: easy to match operators with operands
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

পাইথন কোডে, বাইনারি অপারেটরের আগে বা পরে ভাঙ্গার অনুমতি দেওয়া হয়, যতক্ষণ না কনভেনশন স্থানীয়ভাবে সামঞ্জস্যপূর্ণ। নতুন কোড Knuth এর শৈলী প্রস্তাব করা হয়।

[3]: ডোনাল্ড Knuth এর TeXBook, পৃষ্ঠা 195 এবং 196







long-lines