এই পাইথনের স্নিপেটে কেন সেমিকোলন অনুমোদিত?


166

পাইথন বিবৃতি শেষ করতে সেমিকোলনের ব্যবহারের ওয়ারেন্ট দেয় না। তাহলে কেন এটি (নীচে) অনুমোদিত?

import pdb; pdb.set_trace()

1
মনে রাখবেন যে এই জাতীয় কোডটি কেবলমাত্র ডিবাগিংয়ের উদ্দেশ্যেই নির্লজ্জভাবে হয় এবং সম্ভবত এটি "সম্পন্ন" হওয়ার আগেই বাহ্যিকভাবে তৈরি করা হবে। আমি যেমন স্নিপেটটি ব্যবহার করি ঠিক তেমন এটি আপনার চারপাশে সরানো যায়।
নিক টি

লল আমি একই ওয়েবসাইট থেকে এই প্রশ্নে এসেছি: realpython.com/python-debugging-pdb
mackycheese21

উত্তর:


225

পাইথনের বিবৃতি শেষ করতে আধা-কলোন প্রয়োজন হয় না । আপনি যদি একই লাইনে একাধিক বক্তব্য রাখতে চান তবে আধা কলোনগুলি স্টেটমেন্টগুলি সীমিত করতে ব্যবহৃত হতে পারে।

এখন, কেন এটি অনুমোদিত? এটি একটি সাধারণ নকশার সিদ্ধান্ত। আমি মনে করি পাইথনকে এই আধা-কোলনের জিনিসটির প্রয়োজন নেই তবে কেউ কেউ মনে করেছেন এটি ভাল লাগলে এটি ভাষায় যুক্ত করা যায়।


16
এটা তোলে মতো জিনিসগুলির জন্য উপযোগীtimeit a = 5; a*a
endolith

13
এটি এক্সিকিউটিভ স্টেটমেন্টগুলির জন্য কার্যকর বলে মনে হয় যেমন এক্সিকিউট ('[একটিতে [1,2,3]: একটি মুদ্রণ করুন; একটি +1 মুদ্রণ করুন)
ফিল সি

75
আমি সি, ওবজ-সি, জাভাস্ক্রিপ্ট, পিএইচপি এর পটভূমি নিয়ে পাইথনে এসেছি। আমি প্রায়শই একটি (অকেজো) টার্মিনেটর রাখি; একটি লাইন শেষে। তবে ভাগ্যক্রমে পাইথন আমাকে ক্ষমা করেছে
পাওলো

36
সেমিকোলন জ্যাঙ্গো শেল বা ডিবাগারে অত্যন্ত কার্যকর, যাতে আপনি একটি লাইনে একটি ছোট প্রোগ্রাম লিখতে পারেন এবং পরে এটি পুনরাবৃত্তি করতে পারেন।
ব্রাইস

5
@endolith এর timeitঅর্থ কী? এখনও a = 2; a*aঅপ্রয়োজনীয় a2; এটি হতে হবেa = 2; a *= a
মিনিটে নিকোসো

58

http://docs.python.org/reference/compound_stmts.html

যৌগিক বিবৃতিতে এক বা একাধিক 'ধারা' থাকে। একটি ধারাটিতে শিরোনাম এবং একটি 'স্যুট' থাকে। একটি নির্দিষ্ট যৌগিক বিবরণের ক্লজ শিরোনামগুলি একই ইনডেন্টেশন স্তরে at প্রতিটি অনুচ্ছেদে শিরোনাম একটি অনন্য সনাক্তকরণ মূলশব্দ দিয়ে শুরু হয় এবং একটি কোলন দিয়ে শেষ হয়। একটি স্যুট হ'ল একটি ধারা দ্বারা নিয়ন্ত্রিত স্টেটমেন্টের একটি গ্রুপ। একটি স্যুট শিরোনামের একই লাইনটিতে এক বা একাধিক অর্ধবৃত্ত-বিচ্ছিন্ন সরল বিবৃতি হতে পারে, শিরোনামের কর্নেল অনুসরণ করে, বা এটি পরবর্তী লাইনগুলিতে এক বা একাধিক ইনডেন্টেড বিবৃতি হতে পারে । কেবলমাত্র স্যুটটির পরবর্তী ফর্মটিতে নেস্টেড যৌগিক বিবৃতি থাকতে পারে; নিম্নলিখিতটি অবৈধ, বেশিরভাগ কারণেই এটি স্পষ্ট হবে না যে যদি ক্লজটি থাকে তবে অন্য কোনও ধারাটি অন্তর্ভুক্ত থাকে:

if test1: if test2: print x

এছাড়াও লক্ষ করুন যে সেমিকোলন এই প্রসঙ্গে কোলনের তুলনায় আরও শক্ত বাঁধা থাকে, যাতে নিম্নলিখিত উদাহরণে মুদ্রণ বিবৃতিগুলির সমস্ত বা কোনও একটিই কার্যকর হয় না:

if x < y < z: print x; print y; print z 

সারমর্ম:

compound_stmt ::=  if_stmt
                   | while_stmt
                   | for_stmt
                   | try_stmt
                   | with_stmt
                   | funcdef
                   | classdef
                   | decorated
suite         ::=  stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT
statement     ::=  stmt_list NEWLINE | compound_stmt
stmt_list     ::=  simple_stmt (";" simple_stmt)* [";"]

4
If এর পরে কোলনের চেয়ে কম সেমিকোলনের অগ্রাধিকার সম্পর্কে জানতেন না। এর ধন্যবাদ!
চমত্কার

3
@ উদাসীন আমি ব্যক্তিগতভাবে আপনার মন্তব্যটিকে দ্বিধাদ্বন্দ্ব বোধ করি যাতে আপনি ভাবছেন যে আপনি অন্যভাবে বোঝাতে চাইছেন। সুতরাং, স্পষ্ট করার জন্য, আমি বরং অন্য পাঠকদেরকে সরকারী বাক্যাংশটি ধরেif cond: stmt1; stmt2; stmt3
একটিই

হ্যাঁ এটাই আমি বোঝাতে চাইছি, যদি অগ্রাধিকারটি কম হয়, তবে সমস্ত সেমিকোলন স্টেটমেন্ট কার্যকর না করা পর্যন্ত লেক্সার প্যারেন্ট (কোলন) ব্লকটি ছেড়ে যেতে পারে না। এটি সত্যিই একটি সুস্পষ্ট জিনিস নয়।
চমত্কার

38

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


28
আপনি যদি শেষে (বা অন্য কোথাও) ডাবল সেমিকোলন রাখেন তবে আপনি একটি সিনট্যাক্স এরর পাবেন। সুতরাং মনে হয় ফাঁকা বিবৃতি সম্পূর্ণ আইনী নয়।
কুকু

10
সম্ভবত এটি তালিকার মতো একই যুক্তিযুক্ত, টিপলস, ট্রেলিং কমা সহ ডিক্টগুলি বৈধ এবং তাদের ছাঁটাই সমকক্ষগুলির সমান (যেমন [1,2,3] == [1,2,3,]) তবে সেগুলিতে ডাবল কমা থাকতে পারে না । সুতরাং মূলত পাইথনের একটি "ট্রেলিং ফাঁকা রিমুভার" রয়েছে। যা এর মাধ্যমে এটি স্পষ্ট:stmt_list ::= simple_stmt (";" simple_stmt)* [";"]
কুকু

@ কুকু আপনি ঠিক বলেছেন আপনি একটি সেমিকোলন দিয়ে একটি লাইন শুরু করতে বা কমা দিয়ে একটি এক্সপ্রেশন তালিকা শুরু করতে পারবেন না। সুতরাং এটি বলা আরও সঠিক যে সেমিকোলন এবং কমাগুলি বিভাজক এবং alচ্ছিক টার্মিনেটর।
wjandrea

28

দোভাষীর মধ্যে সেমিকোলন

উত্তরগুলি পড়ে, আমি এখনও সেমিকোলন ব্যবহারের একটি গুরুত্বপূর্ণ দিকটি মিস করছি, সম্ভবত একমাত্র এটি যেখানে এটি সত্যই কোনও তাত্পর্য তৈরি করে ...

আপনি যখন কোনও দোভাষী আরএপিএল (পাইথন ইন্টারেক্টিভ শেল, আইডিএল, আইপিথন) এ কাজ করছেন তখন সর্বশেষ এক্সপ্রেশনটির মান স্ক্রিনে মুদ্রিত হয় এবং সাধারণত এটি হ'ল উদ্দেশ্যযুক্ত আচরণ।

পার্শ্ব প্রতিক্রিয়া জন্য একটি অভিব্যক্তি ব্যবহার

তবে কিছু ক্ষেত্রে আপনি কেবলমাত্র এর পার্শ্ব প্রতিক্রিয়াগুলির জন্য একটি অভিব্যক্তি মূল্যায়ন করতে চান, উদাহরণস্বরূপ, আপনার সিমুলেশনটির প্লট করা ফলাফলগুলি দেখতে matplotlib

এই ক্ষেত্রে আপনি (সম্ভবত) এর screenful দেখতে না চান reprগুলি matplotlibযে বস্তু কখনও কখনও একটি একটি কল দ্বারা ফিরে করছে matplotlibঅন্তত IPython ফাংশন, এবং সম্ভাবনার আপনি এক একটি সেমিকোলন যোগ হয় মাত্রাতিরিক্ত বাগাড়ম্বরপূর্ণ বিবৃতি, এখন IPython দুটি এক্সপ্রেশন, সুরারোপিত ইনপুট লাইন সূচিত matplotlibআবাহন এবং একটি নাল বিবৃতি, যাতে যৌগ মত প্রকাশের মান Noneএবং কিছুই (অন্যান্য সম্ভাবনা হচ্ছে দোভাষীর মধ্য পর্দায় ছাপা হয় নিয়োগ , হিসাবে _ = plot(...)তবে আমি দেখতে পাই যে এটি আরও খানিকটা অনুপ্রবেশকারী)।

ব্যক্তিগত মন্তব্য

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


আমি দেখছি, ভাগ করে নেওয়ার জন্য আপনাকে ধন্যবাদ! এটি ঠিক আমার সমস্যার সমাধান করেছে, যেখানে সেমিকোলন আইপথন নোটবুক
ম্যাটপ্লোটলিব

এটি কেবলমাত্র আইপিথন বৈশিষ্ট্য এবং এটি কোনও নালিকা নয়, কেবল একটি বিশেষ সিনট্যাক্স।
wjandrea

@wjandrea আপনি সঠিক, এটি ঠিক ipython... আপনার মন্তব্যটি প্রতিবিম্বিত করতে আমি আমার উত্তর সম্পাদনা করেছি।
gboffi

12

অন্য প্রত্যেকে যেমন মন্তব্য করেছেন, আপনি পৃথক বিবৃতি পৃথক করতে সেমিকোলন ব্যবহার করতে পারেন। আপনি না আছে , এবং এটা স্বাভাবিক শৈলী নয়।

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

আপনি যখন শেলটি দিয়ে পাইথনটিতে একটি লাইনার ব্যবহার করছেন তখন এটি প্রায় প্রয়োজন python -c '<some python code>'। এখানে আপনি পৃথক বিবৃতি পৃথক করতে ইন্ডেন্টেশন ব্যবহার করতে পারবেন না , সুতরাং আপনার ওয়ান-লাইনারটি যদি সত্যিই দ্বি-লাইনার হয় তবে আপনাকে একটি সেমিকোলন ব্যবহার করতে হবে। এবং যদি আপনি আপনার ওয়ান-লাইনারে অন্য যুক্তি ব্যবহার করতে চান তবে আপনাকে sysপেতে আমদানি করতে হবে sys.argv, যার জন্য পৃথক importবিবৃতি প্রয়োজন। যেমন

python -c "import sys; print ' '.join(sorted(sys.argv[1:]))" 5 2 3 1 4
1 2 3 4 5

2
শেলের মধ্যে কমান্ডগুলি পাস করার সময় আপনি ইনডেন্টেশন এবং নিউলাইনগুলি ব্যবহার করতে পারেন python: কেবলমাত্র আপনার উদ্ধৃত কোডটি একাধিক লাইনের উপরে বিস্তৃত করুন বা একটি হেরিডোক ব্যবহার করুন। তবুও, যদি আপনি এটি "ওয়ান-লাইনার" হতে চান তবে এটি ব্যর্থ হয়। ;)
00 দানি

সঙ্গে রেল উত্তরের জন্য বৈশিষ্ট্যগুলো অন্তর্ভুক্ত-c
n611x007

6

আমি বুঝতে পেরেছি যে আমি একজন পুরানো সি প্রোগ্রামার হিসাবে পক্ষপাতিত্ব করছি, কিন্তু বিভিন্ন সময় পাইথনের বিভিন্ন সম্মেলনগুলি অনুসরণ করা কঠিন করে তোলে। আমি ইনডেন্ট কনভেনশনটি মাঝে মাঝে কিছুটা বিরক্তি পাই।

কখনও কখনও, যখন কোনও বিবৃতি বা ব্লক শেষ হয় তার স্পষ্টতা খুব দরকারী। স্ট্যান্ডার্ড সি কোড প্রায়শই এরকম কিছু পড়বে:

for(i=0; i<100; i++) {
    do something here;
    do another thing here;
}

continue doing things;

যেখানে আপনি অনেক স্পষ্টতার জন্য সাদা স্থান ব্যবহার করেন - এবং লুপটি কোথায় শেষ হয় তা সহজেই দেখা যায়।

পাইথন আপনাকে একটি (alচ্ছিক) সেমিকোলন দিয়ে শেষ করতে দেয়। উপরে উল্লিখিত হিসাবে, এর অর্থ এই নয় যে 'নাল' বিবৃতি অনুসরণ করে মৃত্যুদণ্ড কার্যকর করার জন্য একটি বিবৃতি রয়েছে। সুতরাং, উদাহরণস্বরূপ,

print(x);
print(y);

হিসাবে একই

print(x)
print(y)

যদি আপনি বিশ্বাস করেন যে প্রতিটি লাইনের শেষে প্রথমে একটি নালিকা আছে, তবে প্রস্তাবিত হিসাবে এটি চেষ্টা করুন:

print(x);;

এটি একটি সিনট্যাক্স ত্রুটি নিক্ষেপ করবে।

ব্যক্তিগতভাবে, আমি যখন আপনার অনেক যুক্তি এবং / অথবা দীর্ঘ-নামযুক্ত আরোগুলি সহ প্রচুর নেস্টিং এবং ফাংশনগুলি পাই তখন কোডটি আরও পঠনযোগ্য করে তুলতে আমি সেমিকোলনটি পাই। সুতরাং, আমার চোখে, এটি অন্যান্য পছন্দগুলির তুলনায় অনেক বেশি পরিষ্কার:

if some_boolean_is_true:
    call_function(
        long_named_arg_1,
        long_named_arg_2,
        long_named_arg_3,
        long_named_arg_4
    );

যেহেতু, আমার কাছে এটি আপনাকে জানতে দেয় যে শেষ ')' কিছু 'ব্লক' শেষ করে যা বহু লাইনে ছড়িয়ে পড়ে।

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

আমি নিশ্চিত যে আমি কিছু ডিহার্ডদের দ্বারা উদ্দীপ্ত হব, তবে যুক্তিটির দীর্ঘ বা সংক্ষিপ্ত নাম থাকলে সংকলক / দোভাষীর কোনও যত্ন নেই, এবং - তবে পাইথনে ইন্ডেন্টেশন কনভেনশন করার জন্য - হোয়াইটস্পেসের বিষয়ে যত্ন নেই। কোড নিয়ে সর্বাধিক সমস্যা হ'ল অন্য কোন মানুষকে (এবং এমনকি কয়েক মাস কাজ করার পরেও নিজেকে) স্পষ্ট করে দেওয়া হচ্ছে কী হচ্ছে তা বুঝতে, কোথায় জিনিস শুরু এবং শেষ ইত্যাদি etc.



5

" যখন পাইথনস অ্যাটাক হয় " এর একটি উক্তি

সেমিকোলন দিয়ে আপনার সমস্ত বিবৃতি শেষ করবেন না। পাইথনে এটি করা প্রযুক্তিগতভাবে আইনী, তবে আপনি যদি একক লাইনে একাধিক বক্তব্য রাখেন না তবে তা সম্পূর্ণরূপে অযথা (যেমন, x = 1; y = 2; z = 3)।


4
না কেন x,y,z = 1,2,3?
অনির্বাণ নাগ 'tintinmj'

5
@ অনির্বাণনাগিন্টিনটমজ 'এই বিশেষ ক্ষেত্রে, আমি বিশ্বাস করি যে x, y, z = 1, 2, 3এটি ধীরে ধীরে কারণ এটি একটি টিউপল তৈরির জন্য একটি অপ্রয়োজনীয় বৃত্তাকার ভ্রমণ এবং তত্ক্ষণাত তা এটিকে বিচ্ছিন্ন করে দেয়। (যাইহোক, আমি সত্যিই ভাবি না যে @ কম্যুনিস্ট্প্যানকেক x=1; y=2; z=3প্যাটার্নটির পরামর্শ দিচ্ছে I যদিও আমি মনে করি সে / সে কেবলমাত্র
সেমিওলন কীভাবে

1
@ অ্যানিরবান নাগ - কারণ এটি মাল্টি-স্টেটমেন্ট লাইনের আবর্জনা উদাহরণ হতে পারে।
সিজেড 12

4

এক লাইনে একাধিক স্টেটমেন্টগুলিতে সেমিকোলনগুলি বিভাজক হিসাবে অন্তর্ভুক্ত থাকতে পারে। উদাহরণস্বরূপ: http://docs.python.org/references/compound_stmts.html আপনার ক্ষেত্রে, এটি ডিবাগারটি ভাঙ্গার জন্য একটি পয়েন্ট সহজেই সন্নিবেশের জন্য করে তোলে।

এছাড়াও, লার্নিং পাইথন বইয়ে মার্ক লুটজ যেভাবে উল্লেখ করেছেন , সেমিকোলন দ্বারা আপনার সমস্ত বিবৃতি শেষ করা প্রযুক্তিগতভাবে আইনগত (যদিও অপ্রয়োজনীয় এবং বিরক্তিকর) is


2

পাইথন আপনাকে যদি কোনও লাইনে একাধিক স্টেটমেন্ট অন্তর্ভুক্ত করে থাকে তবে কোনও স্টেটমেন্টের সমাপ্তি বোঝাতে একটি আধা-কোলন ব্যবহার করতে দেয় না।


2

সেমিকোলনগুলি এক লাইনে দুই বা ততোধিক কমান্ড ব্যবহার করা যেতে পারে। এগুলি ব্যবহার করতে হবে না, তবে সেগুলি সীমাবদ্ধ নয়।

সেমিকোলন (;) একক লাইনে একাধিক বক্তব্যকে মঞ্জুরি দেয় যে প্রদত্ত বিবৃতিতে কোনও নতুন কোড ব্লক শুরু হয় না।

http://www.tutorialspoint.com/python/python_basic_syntax.htm


2

সেমিকোলন (যেমন বিন্দু, কমা এবং প্রথম বন্ধনী) ধর্মীয় যুদ্ধের কারণ হয়ে থাকে। তবুও, তারা (বা কিছু অনুরূপ প্রতীক) বিভিন্ন কারণে যে কোনও প্রোগ্রামিং ভাষায় কার্যকর।

  • ব্যবহারিক: একই লাইনে ধারণাগতভাবে সংযুক্ত কয়েকটি সংক্ষিপ্ত কমান্ড রাখার ক্ষমতা। সরু সাপের মতো দেখতে এমন কোনও প্রোগ্রামের পাঠ্যটিতে নিউলাইনগুলি এবং ইনডেন্টেশন দ্বারা উদ্দিষ্ট উদ্দেশ্যগুলির বিপরীত প্রভাব রয়েছে যা কাঠামো হাইলাইট করছে।

  • ধারণাগত: পুরানো দিনগুলিতে "সুন্দর-প্রিন্টিং" নামে পরিচিত প্রেজেন্টেশন (উদাহরণস্বরূপ নিউলাইন) থেকে খাঁটি বাক্য গঠন (এই ক্ষেত্রে কমান্ডের অনুক্রমের জন্য) উদ্বেগের বিচ্ছেদ।

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


1

এটি অনুমোদিত, কারণ লেখকরা এটির অনুমতি দেওয়ার সিদ্ধান্ত নিয়েছে: https://docs.python.org/2/references/simple_stmts.html

যদি লেখকরা কেন এই কাজটি করতে চান তা নিয়ে যান তবে আমার ধারণা, এটি সেহেতু কমপক্ষে নিম্ন স্তরের ল্যাজেজে সাধারণ বিবৃতি সমাপ্তি হিসাবে আধা-কলামের অনুমতি দেওয়া হয়েছে: সি ++, সি, সি #, আর, মতলব, পার্ল, ...

সুতরাং অন্যান্য ভাষার পটভূমির লোকদের জন্য পাইথনের ব্যবহারে তত দ্রুত। এবং এই জাতীয় ডেসিসনে সাধারণতার কোনও ক্ষতি নেই।


1

সেমিকোলন (";") কেবলমাত্র একই ব্লকের মধ্যে বিবৃতি পৃথক করার জন্য প্রয়োজন যেমন আমাদের নীচের সি কোড রয়েছে:

if(a>b)
{
largest=a;  //here largest and count are integer variables
count+=1;
}

এটি দুটি ফর্মের যে কোনও একটিতে পাইথনে লেখা যেতে পারে:

if a>b:   
    largest=a
    count=count+1

অথবা

if a>b:    largest=a;count=count+1

উপরের উদাহরণে আপনার কোনও ifব্লকের মধ্যে প্রচুর বিবৃতি থাকতে পারে এবং ";" দ্বারা পৃথক করা যায়; পরিবর্তে.

আশা করি উপরোক্ত ব্যাখ্যার মতো কিছুই সহজ নয়।


0

এখানে উপস্থিত বিস্তৃত জ্ঞানের
সাথে যোগ করা, এটি ম্যাটপ্ল্লোব লাইব্রেরির সাথে সম্পর্কিত একটি উত্তর

import numpy as np
import matplotlib as plt
%matplotlib notebook
linear_data = np.array([1, 2, 3, 4, 5, 6, 7, 8])
quadratic_data = linear_data**2
plt.figure()
xvals = range(len(linear_data))
plt.barh(xvals, linear_data, height = 0.3, color='b')
plt.barh(xvals, quadratic_data, height = 0.3, left=linear_data, color='r')

যদি আপনি বার্খ (অনুভূমিক বার) এর শেষে একটি অর্ধিকোলন সরবরাহ না করেন তবে আউটপুটটি প্লট + একটি ফাংশনের ঠিকানা। তবে আপনি যদি উভয় বার্খ রেখার শেষে অর্ধিকোলন ব্যবহার করেন তবে এটি কেবল প্লটটি দেখায় এবং ফাংশন ঠিকানার জন্য আউটপুটকে দমন করে।

এরকম কিছু: তুলনা


3
এটি আইপথনের সাথে সুনির্দিষ্ট এবং স্ট্যান্ডার্ড পাইথন আরপিএলে প্রযোজ্য নয়।
wjandrea

আমি মনে করি এটি একটি উজ্জ্বল উদাহরণ যেখানে ভাষা লেখকরা যেভাবে সরলতা, শক্তি এবং অভিন্নতার পরিচয় দিচ্ছিলেন ভেবেছিলেন তারা ঠিক তার মতো সমস্যার সামনে চিন্তা করতে ব্যর্থ হয়েছিল।
eSurfsnake
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.