ডকুমেন্টেশন অনুসারে, এগুলি বেশ কিছু বিনিময়যোগ্য। একে অপরকে ব্যবহার করার স্টাইলিস্টিক কারণ রয়েছে কি?
ডকুমেন্টেশন অনুসারে, এগুলি বেশ কিছু বিনিময়যোগ্য। একে অপরকে ব্যবহার করার স্টাইলিস্টিক কারণ রয়েছে কি?
উত্তর:
আমি স্ট্রিংগুলির চারপাশে ডাবল কোট ব্যবহার করতে চাই যা অন্তরঙ্গকরণের জন্য ব্যবহৃত হয় বা এটি প্রাকৃতিক ভাষার বার্তা এবং ছোট চিহ্নের মতো স্ট্রিংগুলির জন্য একক উদ্ধৃতি, তবে স্ট্রিংয়ের কোট থাকে বা আমি ভুলে গেলে নিয়মগুলি ভঙ্গ করব। আমি ডকাস্ট্রিংসের জন্য ট্রিপল ডাবল কোটস এবং কাঁচা স্ট্রিং লিটারালগুলি নিয়মিত প্রকাশের জন্য ব্যবহার করি না এমনকি তাদের প্রয়োজন না হলেও।
উদাহরণ স্বরূপ:
LIGHT_MESSAGES = {
'English': "There are %(number_of_lights)s lights.",
'Pirate': "Arr! Thar be %(number_of_lights)s lights."
}
def lights_message(language, number_of_lights):
"""Return a language-appropriate string reporting the light count."""
return LIGHT_MESSAGES[language] % locals()
def is_pirate(message):
"""Return True if the given message sounds piratical."""
return re.search(r"(?i)(arr|avast|yohoho)!", message) is not None
Https://docs.python.org/2.0/ref/strings.html এ অফিসিয়াল ডক্সের উদ্ধৃতি দেওয়া :
সরল ইংরেজিতে: স্ট্রিং লিটারেলগুলি একক উদ্ধৃতি (') বা ডাবল কোট (") এর সাথে মিলিয়ে সংযুক্ত করা যেতে পারে।
সুতরাং কোন পার্থক্য নেই। পরিবর্তে, লোকেরা আপনাকে প্রসঙ্গের সাথে মেলে এমন কোনও শৈলী চয়ন করতে এবং ধারাবাহিক হতে বলবে । এবং আমি একমত হব - যোগ করে এই ধরণের জিনিসটির জন্য "কনভেনশনস" নিয়ে আসার চেষ্টা করা অর্থহীন কারণ আপনি কেবলমাত্র কোনও আগতকেই বিভ্রান্ত করবেন।
আমি যেমন পছন্দ করি তেমন '
বিশেষত পছন্দ '''docstrings'''
করতাম """this creates some fluff"""
। এছাড়াও, আমার সুইস জার্মান কীবোর্ডের কী '
ছাড়াই টাইপ করা যায় Shift।
আমি যেহেতু জন্য ট্রিপল কোট ব্যবহার করে পরিবর্তিত হয়েছে """docstrings"""
সাথে সামঞ্জস্য থেকে, PEP 257 ।
"
কেবলমাত্র একটি পিসি QWERTY কীবোর্ডে শিফট কী প্রয়োজন। আমার কীবোর্ডে "
টাইপ করা আসলে সহজ।
আমি উইলের সাথে আছি:
আমি এর সাথে লেগে থাকব যদিও এর অর্থ অনেকটা পালানো।
উদ্ধৃতিগুলির কারণে আমি একক উদ্ধৃত শনাক্তকারীদের থেকে সর্বাধিক মান পাই। বাকি অনুশীলনগুলি কেবলমাত্র সেই একক উদ্ধৃত শনাক্তকারীদের কিছু স্থায়ী ঘর দেওয়ার জন্য রয়েছে।
আপনার থাকা স্ট্রিংটিতে যদি একটি থাকে তবে আপনার অন্যটি ব্যবহার করা উচিত। উদাহরণস্বরূপ, "You're able to do this"
বা 'He said "Hi!"'
। তা ছাড়া, আপনার যতটা সম্ভব সামঞ্জস্যপূর্ণ হওয়া উচিত (মডিউলের মধ্যে, একটি প্যাকেজের মধ্যে, একটি প্রকল্পের মধ্যে, কোনও প্রতিষ্ঠানের মধ্যে)।
যদি আপনার কোডটি সি / সি ++ (বা আপনি যদি সেই ভাষা এবং পাইথনের মধ্যে স্যুইচ করেন) দিয়ে কাজ করেন এমন লোকেরা পড়তে চলেছেন, তবে ''
একক-অক্ষরযুক্ত স্ট্রিংগুলির ""
জন্য এবং দীর্ঘতর স্ট্রিংগুলির জন্য রূপান্তরটি সহজ করতে সহায়তা করবে। (একইভাবে অন্যান্য ভাষাগুলি অনুসরণ করার জন্য যেখানে সেগুলি বিনিময়যোগ্য নয়)।
পাইথন কোড আমি বন্য দেখা করেছি পক্ষপাতী থাকে "
বেশি '
, কিন্তু শুধুমাত্র সামান্য। একটি ব্যতিক্রম হ'ল আমি যা দেখেছি তার থেকে """these"""
অনেক বেশি সাধারণ '''these'''
।
ট্রিপল উদ্ধৃত মন্তব্য এই প্রশ্নের একটি আকর্ষণীয় সাবটোপিক। পিইপি 257 ডক স্ট্রিংয়ের জন্য ট্রিপল কোট নির্দিষ্ট করে । আমি গুগল কোড অনুসন্ধান ব্যবহার করে একটি দ্রুত চেক করেছি এবং দেখতে পেয়েছি যে পাইথনে ট্রিপল ডাবল উদ্ধৃতিগুলি ট্রিপল সিঙ্গল কোট হিসাবে প্রায় 10x জনপ্রিয় - গুগল সূচী কোডগুলিতে 1.3M বনাম 131K এর উপস্থিতি। সুতরাং মাল্টি লাইনের ক্ষেত্রে আপনার কোডটি সম্ভবত ট্রিপল ডাবল উদ্ধৃতি ব্যবহার করে লোকদের কাছে আরও পরিচিত হতে চলেছে।
"If you're going to use apostrophes,
^
you'll definitely want to use double quotes".
^
সেই সাধারণ কারণে, আমি সবসময় বাইরের দিকে ডাবল কোট ব্যবহার করি। সর্বদা
ফ্লাফের কথা বললে, আপনার স্ট্রিং লিটারেলগুলি 'যদি এস্ট্রোফেসের প্রতিনিধিত্ব করতে পালানোর অক্ষর ব্যবহার করতে হয় তবে এর সাথে কী ভাল হবে? এটি উপন্যাস পড়তে কোডারদের অসন্তুষ্ট করে? উচ্চ বিদ্যালয়ের ইংরেজি ক্লাসটি আপনার জন্য কত বেদনাদায়ক ছিল তা আমি ভাবতে পারি না!
পাইথন এই জাতীয় উদ্ধৃতি ব্যবহার করে:
mystringliteral1="this is a string with 'quotes'"
mystringliteral2='this is a string with "quotes"'
mystringliteral3="""this is a string with "quotes" and more 'quotes'"""
mystringliteral4='''this is a string with 'quotes' and more "quotes"'''
mystringliteral5='this is a string with \"quotes\"'
mystringliteral6='this is a string with \042quotes\042'
mystringliteral6='this is a string with \047quotes\047'
print mystringliteral1
print mystringliteral2
print mystringliteral3
print mystringliteral4
print mystringliteral5
print mystringliteral6
যা নিম্নলিখিত ফলাফল দেয়:
this is a string with 'quotes'
this is a string with "quotes"
this is a string with "quotes" and more 'quotes'
this is a string with 'quotes' and more "quotes"
this is a string with "quotes"
this is a string with 'quotes'
"""This is a string with "quotes""""
একটি সিনট্যাক্সেরর উত্থাপন করে। এই পরিস্থিতি কীভাবে সমাধান করা যায়? (সাথে একই '''This is a string with 'quotes''''
)
'''This is a string with "quotes"'''
,।
আমি সাধারণভাবে ডাবল কোট ব্যবহার করি তবে কোনও নির্দিষ্ট কারণে নয় - সম্ভবত জাভা থেকে অভ্যাসের বাইরে।
আমি অনুমান করি যে আপনি ডাবল উদ্ধৃতি চান না তার চেয়ে আপনি একটি ইনলাইন আক্ষরিক স্ট্রিংয়ের মধ্যে অ্যাডাস্ট্রোফগুলিও বেশি চান।
এটি সম্ভবত কোনও কিছুর চেয়ে স্টাইলিস্টিক পছন্দ। আমি কেবল পিইপি 8 টি পরীক্ষা করে দেখেছি এবং একক বনাম ডাবল উদ্ধৃতিগুলির কোনও উল্লেখ দেখতে পাইনি।
আমি একক উদ্ধৃতি পছন্দ করি কারণ এটি দুটিয়ের পরিবর্তে কেবল একটি কীস্ট্রোক। অর্থাত, একক উদ্ধৃতি দেওয়ার জন্য আমাকে শিফট কীটি ম্যাশ করতে হবে না।
পার্লে আপনি একক উদ্ধৃতি ব্যবহার করতে চান যখন আপনার কাছে একটি স্ট্রিং থাকে যা vari n, \ t,, r ইত্যাদির মতো ভেরিয়েবল বা পালানো অক্ষরগুলিকে ইন্টারপোলেট করার দরকার হয় না
পিএইচপি পার্লের মতো একই পার্থক্য তৈরি করে: একক উদ্ধৃতিতে বিষয়বস্তু ব্যাখ্যা করা হবে না (এমনকি \ n রূপান্তরিত হবে না), ডাবল কোটের বিপরীতে যা ভেরিয়েবলগুলি সহ তাদের মান মুদ্রণ করতে পারে।
পাইথন না, আমি ভয় করি। প্রযুক্তিগতভাবে দেখা যায়, পাইথনের ভেরিয়েবল থেকে কোনও নাম / পাঠ আলাদা করতে no টোকেন (বা পছন্দ মতো) নেই। উভয় বৈশিষ্ট্য পাইথনকে সর্বোপরি আরও পঠনযোগ্য, কম বিভ্রান্তিকর করে তোলে। একক এবং ডাবল উদ্ধৃতি পাইথন এ বিনিময়যোগ্য হিসাবে ব্যবহার করা যেতে পারে।
r
তৈরি না করেন তবে স্ট্রিংয়ের সামনে আক্ষরিক যোগ করে। সুতরাং print 'a\nb'
আপনি দুটি লাইন print r'a\nb'
মুদ্রণ করবে , কিন্তু আপনি একটি মুদ্রণ করবে।
আমি ডাবল উক্তি ব্যবহার করা পছন্দ করেছি কারণ এগুলি দেখতে সহজ।
আমি তখন আমার অভিনব কাহিনীকে কেবল ব্যবহার করি; এক ঝকঝকে মধ্যে দুজনের মধ্যে স্যুইচ করতে সক্ষম হওয়াই সুবিধাজনক!
অবশ্যই, উদ্ধৃতি চ্যাসেটারদের উদ্ধৃতি দেওয়ার সময়, দুজনের মধ্যে স্যুইচিং সর্বোপরি তাত্পর্যপূর্ণ নাও হতে পারে ...
আপনার দলের স্বাদ বা আপনার প্রকল্পের কোডিং নির্দেশিকা।
আপনি যদি কোনও ভাষাগত পরিবেশে থাকেন, আপনি উদাহরণস্বরূপ, অন্য ভাষা ব্যবহার করে এমন স্ট্রিংগুলির জন্য একই ধরণের উদ্ধৃতিগুলির ব্যবহারকে উত্সাহিত করতে চাইতে পারেন। অন্যথায়, আমি ব্যক্তিগতভাবে 'এর চেহারাটি পছন্দ করি
আমি লক্ষ্য করেছি পিক্সেল এবং আশ্চর্য দুটোই হ্রাস করা। আমি সাধারণত '
পিক্সেল হ্রাস করতে পছন্দ করি তবে এর "
পরিবর্তে যদি স্ট্রিংটির একটি অ্যাডোস্ট্রোফ থাকে তবে পিক্সেলকে আবার ছোট করতে। কোনও ডক্টরসিংয়ের জন্য, তবে আমি """
তার চেয়ে বেশি পছন্দ করি '''
কারণ পরেরটিটি মানহীন, অস্বাভাবিক এবং তাই অবাক করা। এখন যদি আমার "
উপরের যুক্তি অনুসারে আমি কয়েকটি স্ট্রিং ব্যবহার করেছি তবে এটির সাথেও দূরে সরে '
যেতে পারে তবে আমি "
কেবলমাত্র আশ্চর্য হ্রাস করার জন্য এটি ধারাবাহিকতা রক্ষার জন্য এতে ব্যবহার করতে পারি ।
সম্ভবত এটি নিম্নলিখিত উপায়ে পিক্সেল মিনিমাইজেশন দর্শনের চিন্তা করতে সহায়তা করে। আপনি কি বরং ইংরেজী চরিত্রগুলির মতো দেখতে চান A B C
বা চান AA BB CC
? পরবর্তী পছন্দটি খালি খালি পিক্সেলের 50% নষ্ট করে।
'
= "
/
= \
=\\
উদাহরণ:
f = open('c:\word.txt', 'r')
f = open("c:\word.txt", "r")
f = open("c:/word.txt", "r")
f = open("c:\\\word.txt", "r")
ফলাফল একই
= >> না, তারা এক নয়। একটি একক ব্যাকস্ল্যাশ অক্ষর এড়ানো হবে। আপনি উদাহরণস্বরূপ ভাগ্যের সাথেই ঘটেন কারণ \k
এবং বা বা বা এর \w
মতো বৈধ পলায়ন নয়\t
\n
\\
\"
আপনি যদি একক ব্যাকস্ল্যাশগুলি ব্যবহার করতে চান (এবং সেগুলিকে এরূপ ব্যাখ্যা করতে পারেন) তবে আপনাকে "কাঁচা" স্ট্রিং ব্যবহার করতে হবে। r
স্ট্রিংয়ের সামনে একটি ' ' রেখে আপনি এটি করতে পারেন
im_raw = r'c:\temp.txt'
non_raw = 'c:\\temp.txt'
another_way = 'c:/temp.txt'
উইন্ডোজের পাথের দিক থেকে, ফরোয়ার্ড স্ল্যাশগুলি একইভাবে ব্যাখ্যা করা হয়। স্পষ্টতই স্ট্রিং নিজেই আলাদা যদিও। আমি গ্যারান্টি দিচ্ছি না যে তারা বাহ্যিক ডিভাইসে যদিও এইভাবে পরিচালিত হয়েছে।
os.path.join()