উত্তর:
লাইন কি? কোনও সমস্যা ছাড়াই আপনার কেবল পরবর্তী লাইনে যুক্তি থাকতে পারে:
a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5,
blahblah6, blahblah7)
অন্যথায় আপনি এই জাতীয় কিছু করতে পারেন:
if a == True and \
b == False
আরও তথ্যের জন্য শৈলী গাইড পরীক্ষা করুন।
আপনার উদাহরণ লাইন থেকে:
a = '1' + '2' + '3' + \
'4' + '5'
বা:
a = ('1' + '2' + '3' +
'4' + '5')
নোট করুন যে স্টাইল গাইড বলেছেন যে প্রথম বন্ধনীগুলির সাথে অন্তর্নিহিত ধারাবাহিকতা ব্যবহার করা পছন্দ করা হয় তবে এই বিশেষ ক্ষেত্রে আপনার অভিব্যক্তিটির চারপাশে কেবল প্রথম বন্ধন যুক্ত করা সম্ভবত যাওয়ার ভুল উপায়।
পিইপি 8 থেকে - পাইথন কোডের জন্য স্টাইল গাইড :
দীর্ঘ লাইনের মোড়কের পছন্দের উপায়টি হল বন্ধনী, বন্ধনী এবং ধনুর্বন্ধনীগুলির মধ্যে পাইথনের অন্তর্নিহিত লাইন ধারাবাহিকতা ব্যবহার করা। বন্ধনীগুলিতে এক্সপ্রেশনকে মোড়ানো করে একাধিক লাইনে দীর্ঘ লাইনগুলি ভাঙ্গা যায়। এগুলি লাইনের ধারাবাহিকতার জন্য ব্যাকস্ল্যাশ ব্যবহারের অগ্রাধিকার হিসাবে ব্যবহার করা উচিত।
ব্যাকস্ল্যাশগুলি মাঝে মাঝে উপযুক্ত হতে পারে। উদাহরণস্বরূপ, দীর্ঘ, একাধিক স্টেটমেন্টগুলি অন্তর্নিহিত ধারাবাহিকতা ব্যবহার করতে পারে না, তাই ব্যাকস্ল্যাশগুলি গ্রহণযোগ্য:
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())
এ জাতীয় আরও একটি ঘটনা দৃsert় বিবৃতি দিয়ে।
অবিরত লাইনে যথাযথভাবে ইনডেন্ট করা নিশ্চিত করুন। বাইনারি অপারেটরের চারপাশে ভাঙ্গার পছন্দসই জায়গা অপারেটরের পরে , তার আগে নয়। কিছু উদাহরণ:
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)
পিইপি 8 এখন গণিতবিদ এবং তাদের প্রকাশকদের পাঠযোগ্যতার উন্নতির জন্য ব্যবহৃত বিপরীত কনভেনশন (বাইনারি অপারেশনগুলিতে বিরতি জন্য) সুপারিশ করেছে ।
বাইনারি অপারেটরের আগে ডোনাল্ড নুথের ভাঙার স্টাইল অপারেটরগুলিকে উল্লম্বভাবে সারিবদ্ধ করে, এইভাবে কোন আইটেম যুক্ত করা হয় এবং বিয়োগ হবে তা নির্ধারণ করার সময় চোখের কাজের চাপ হ্রাস করে।
পিইপি 8 থেকে : বাইনারি অপারেটরের আগে বা পরে কোনও লাইন ব্রেক হওয়া উচিত? :
ডোনাল্ড নুথ তাঁর কম্পিউটার এবং টাইপসেটিং সিরিজের প্রচলিত নিয়মটি ব্যাখ্যা করেছেন: "যদিও বাইনারি অপারেশন এবং সম্পর্কের পরে অনুচ্ছেদে থাকা সূত্রগুলি সর্বদা ভেঙে যায়, বাইনারি অপারেশনের আগে প্রদর্শিত সূত্রগুলি সর্বদা ভেঙে যায়" [৩]।
গণিত থেকে traditionতিহ্য অনুসরণ করলে সাধারণত আরও পঠনযোগ্য কোড আসে:
# Yes: easy to match operators with operands income = (gross_wages + taxable_interest + (dividends - qualified_dividends) - ira_deduction - student_loan_interest)
পাইথন কোডে, বাইনারি অপারেটরের আগে বা পরে ব্রেক করার অনুমতি রয়েছে, যতক্ষণ না স্থানীয়ভাবে কনভেনশন নিয়মিত থাকে। নতুন কোডের জন্য নুথের স্টাইলটি প্রস্তাবিত।
[3]: ডোনাল্ড নুথের দ্য টেক্সবুক, পৃষ্ঠা 195 এবং 196
The preferred way .. is by using Python's implied line continuation inside parentheses
এটি একই জিনিস by wrapping expressions in parentheses
। আমি উদাহরণ আপডেট করেছি
একটি লাইন শেষ করতে ব্যাকস্ল্যাশ ব্যবহারে বিপদটি হ'ল যদি ব্যাকস্ল্যাশের পরে যদি হোয়াইটস্পেস যোগ করা হয় (যা অবশ্যই দেখা খুব কঠিন) তবে ব্যাকস্ল্যাশটি আপনি যা ভেবেছিলেন তা এখন আর করছে না।
পাইথন আইডিয়ামস এবং অ্যান্টি-আইডিয়ামগুলি ( পাইথন 2 বা পাইথন 3 এর জন্য) আরও দেখুন।
set list listchars=trail:·
ভিমে মত কিছু । :)
আপনি প্রথম বন্ধনী এবং ধনুর্বন্ধনী মধ্যে লাইন ভাঙ্গতে পারেন। অতিরিক্তভাবে, আপনি ব্যাকস্ল্যাশ অক্ষরটি \
স্পষ্টভাবে ব্রেক করার জন্য একটি লাইনে যুক্ত করতে পারেন:
x = (tuples_first_value,
second_value)
y = 1 + \
2
ঘোড়ার মুখ থেকে: সুস্পষ্ট লাইন যোগদান
ব্যাকস্ল্যাশ অক্ষর (
\
) ব্যবহার করে দুটি বা ততোধিক দৈহিক রেখা যুক্তিযুক্ত লাইনে যুক্ত হতে পারে : যখন কোনও শারীরিক রেখা ব্যাকস্ল্যাশে শেষ হয় যা কোনও স্ট্রিং আক্ষরিক বা মন্তব্যের অংশ নয়, তখন এটি যুক্ত হয়ে একটি একক যৌক্তিক লাইন তৈরি করে , ব্যাকস্ল্যাশ এবং নিম্নলিখিত প্রান্তের লাইন অক্ষর মুছে ফেলা হচ্ছে। উদাহরণ স্বরূপ: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
ব্যাকস্ল্যাশ-এ শেষ হওয়া একটি লাইন কোনও মন্তব্য রাখতে পারে না। একটি ব্যাকস্ল্যাশ কোনও মন্তব্য চালিয়ে যায় না। ব্যাকস্ল্যাশ স্ট্রিং লিটারাল ব্যতীত একটি টোকেন চালিয়ে যায় না (অর্থাত, স্ট্রিং ল্যাটারাল ব্যতীত অন্য টোকেনগুলি ব্যাকস্ল্যাশ ব্যবহার করে শারীরিক রেখায় বিভক্ত করা যায় না)। একটি ব্যাকস্ল্যাশ স্ট্রিং আক্ষরিকের বাইরে একটি লাইনে অন্যত্র অবৈধ।
এটি পাইথোনিক উপায় নাও হতে পারে তবে আমি সাধারণত এসকিউএল কোয়েরির মতো দীর্ঘ স্ট্রিং লেখার জন্য জোড় ফাংশন সহ একটি তালিকা ব্যবহার করি:
query = " ".join([
'SELECT * FROM "TableName"',
'WHERE "SomeColumn1"=VALUE',
'ORDER BY "SomeColumn2"',
'LIMIT 5;'
])
দ্য হিথিকার গাইড থেকে পাইথন ( লাইন ধারাবাহিকতা ) পর্যন্ত নেওয়া:
কোডের একটি লজিকাল লাইন যখন স্বীকৃত সীমাটির চেয়ে দীর্ঘ হয়, আপনাকে এটিকে একাধিক শারীরিক লাইনের উপর বিভক্ত করতে হবে। লাইনের শেষ অক্ষর ব্যাকস্ল্যাশ হলে পাইথন ইন্টারপ্রেটার একটানা লাইনে যোগ দেবে। এটি কিছু ক্ষেত্রে সহায়ক, তবে এটির ভঙ্গুরতার কারণে সাধারণত এড়ানো উচিত: ব্যাকস্ল্যাশ পরে লাইনের শেষে যুক্ত একটি সাদা স্থান কোডটি ভেঙে দেবে এবং অপ্রত্যাশিত ফলাফল হতে পারে।
আরও ভাল সমাধান হ'ল আপনার উপাদানগুলির চারপাশে বন্ধনী ব্যবহার করা। বন্ধনী বন্ধ না হওয়া অবধি পাইথন ইন্টারপ্রেটারটি পরের লাইনে একটি অনাহীন বন্ধনী যুক্ত রেখে পরবর্তী লাইনে যোগ দেবে। একই আচরণটি কোঁকড়ানো এবং বর্গাকার ধনুর্বন্ধনী জন্য ধারণ করে।
তবে প্রায়শই না করা, দীর্ঘ যৌক্তিক লাইনকে বিভক্ত করা এমন একটি চিহ্ন যা আপনি একই সাথে অনেকগুলি কাজ করার চেষ্টা করছেন যা পাঠযোগ্যতা বাধাগ্রস্ত করতে পারে।
এটি বলার পরে, এখানে একাধিক আমদানি বিবেচনা করার একটি উদাহরণ রয়েছে (যখন লাইন সীমা অতিক্রম করে, পিইপি -8 এ সংজ্ঞায়িত হয় ), এছাড়াও স্ট্রিংগুলিতে সাধারণভাবে প্রয়োগ করা হয়:
from app import (
app, abort, make_response, redirect, render_template, request, session
)
দীর্ঘ আক্ষরিক স্ট্রিংয়ের কারণে যদি আপনি আপনার লাইনটি ভাঙতে চান তবে আপনি সেই স্ট্রিংটিকে টুকরো টুকরো করে ফেলতে পারেন:
long_string = "a very long string"
print("a very long string")
দ্বারা প্রতিস্থাপন করা হবে
long_string = (
"a "
"very "
"long "
"string"
)
print(
"a "
"very "
"long "
"string"
)
উভয় মুদ্রণ বিবৃতি জন্য আউটপুট:
a very long string
প্রভাব মধ্যে প্রথম বন্ধনী লক্ষ্য করুন।
আরও লক্ষ করুন যে আক্ষরিক স্ট্রিংগুলিকে টুকরো টুকরো করা কেবল স্ট্রিংয়ের অংশগুলিতে আক্ষরিক উপসর্গটি ব্যবহার করতে দেয়:
s = (
"2+2="
f"{2+2}"
)
লাইন ধারাবাহিকতা অপারেটর যেমন "ie" ব্যবহার করুন
উদাহরণ:
# Ex.1
x = 1
s = x + x**2/2 + x**3/3 \
+ x**4/4 + x**5/5 \
+ x**6/6 + x**7/7 \
+ x**8/8
print(s)
# 2.7178571428571425
----------
# Ex.2
text = ('Put several strings within parentheses ' \
'to have them joined together.')
print(text)
----------
# Ex.3
x = 1
s = x + x**2/2 \
+ x**3/3 \
+ x**4/4 \
+ x**6/6 \
+ x**8/8
print(s)
# 2.3749999999999996