পাইথনের লুপের জন্য "চালিয়ে" এবং "পাস" এর মধ্যে কি পার্থক্য রয়েছে?


274

দুটি অজগর কীওয়ার্ড continueএবং passউদাহরণগুলির মতো কোনও উল্লেখযোগ্য পার্থক্য রয়েছে কি?

for element in some_list:
    if not element:
        pass

এবং

for element in some_list:
    if not element:
        continue

আমার সচেতন হওয়া উচিত?


4
@ S.Lott: উদাহরণ: while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)মধ্যে পাইথন ডক্স আমাকে ভাবে বিভ্রান্ত, আমি এটা স্পষ্ট আবহাওয়া খুঁজে পাইনি এটা এই ক্ষেত্রে বা কিছু অন্য জন্যই ছিল চালিয়ে যেতে সমতুল্য আচরণ করে। প্রথম বাক্য "পাস স্টেটমেন্ট কিছুই করে না।" আমার প্রশ্নের সমস্ত উত্তরকে বৈশিষ্ট্যযুক্ত করে তবে কোনওভাবে এটি আমার চোখে পড়েনি।
আউফউইন্ড

উত্তর:


400

হ্যাঁ, তারা সম্পূর্ণ আলাদা জিনিস করে। পরবর্তী লুপ পুনরাবৃত্তির সাথে passচলাকালীন কেবল কিছুই করে না continue। আপনার উদাহরণে, পার্থক্যটি প্রকট হয়ে উঠবে যদি আপনি এর পরে আরও একটি বিবৃতি যুক্ত করেন if: মৃত্যুদন্ড কার্যকর করার পরে pass, এই আরও বিবৃতি কার্যকর করা হবে। পরে continue, এটা না।

>>> a = [0, 1, 2]
>>> for element in a:
...     if not element:
...         pass
...     print element
... 
0
1
2
>>> for element in a:
...     if not element:
...         continue
...     print element
... 
1
2

7
আমি আপনার উত্তর সাথে সম্পূর্ণরূপে একমত। তবে পাস পাসওয়ার্ড সম্পর্কিত আমার এখনও প্রশ্ন আছে এটির কি দরকার? এবং প্রয়োজন কিন্তু কেন? আপনাকে ধন্যবাদ
হার্ডিক গজ্জর

34
@ হার্দিকগজ্জার: যেহেতু মূলশব্দটি passকিছু করে না, এটি কেবল তখনই কার্যকর যখন আপনার সিন্ট্যাক্টিকভাবে একটি ইন্টেন্টেড স্যুটের প্রয়োজন হয়, তবে কিছুই করতে চান না। একটি সাধারণ উদাহরণ হ'ল যদি আপনি কিছু ব্যতিক্রম উপেক্ষা করতে চান তবে আপনি ব্যবহার করুন except SomeException: pass। এছাড়াও অন্যান্য অনেক ব্যবহারের মামলা রয়েছে। আপনি এর জন্য কঠোরভাবে কোনও কীওয়ার্ডের প্রয়োজন হবে না, যেহেতু আপনি অন্য কোনও বিবৃতি ব্যবহার করতে পারেন যা কিছু না করে (উদাহরণস্বরূপ 0একটি কার্যকর বৈধ বিবৃতি যার কোনও প্রভাব নেই) তবে এর জন্য কীওয়ার্ড থাকা আপনাকে হতে দেয় কিছু করতে না চান সম্পর্কে আরও স্পষ্ট।
সোভেন মারনাচ

@ স্পেনমার্নাচ কি স্টাইলিস্টিকভাবে বাদ দিয়ে ব্যতিক্রমগুলি চিকিত্সা করতে পারে pass?
বোজর্কস এক নম্বর অনুরাগী

@ মাইকপ্যালাইমস মোটেও না।
ম্যাট এম

73

হ্যাঁ, একটি পার্থক্য আছে। continueলুপটিকে পরবর্তী পুনরাবৃত্তিতে শুরু করতে বাধ্য করে যখন এর passঅর্থ "এখানে কার্যকর করার কোনও কোড নেই" এবং বাকী বা লুপের বডি দিয়ে চালিয়ে যাবে।

এগুলি চালান এবং পার্থক্যটি দেখুন:

for element in some_list:
    if not element:
        pass
    print 1 # will print after pass

for element in some_list:
   if not element:
       continue
   print 1 # will not print after continue

23

continueলুপের উপরে ফিরে যাবে। passপ্রক্রিয়া চালিয়ে যাবে।

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


11

উভয় বিবৃতি লুপের শেষে প্রদর্শিত হওয়ায় আপনার উদাহরণে, কোনও পার্থক্য থাকবে না। passকেবল একটি স্থানধারক মধ্যে এটি কিছুই না (তা না হয়, পাসের পরবর্তী বিবৃতি মৃত্যুদন্ড)। continueঅন্যদিকে, এর একটি সুনির্দিষ্ট উদ্দেশ্য রয়েছে: এটি লুপটিকে এমনভাবে চালিয়ে যেতে বলে যেন এটি সবে শুরু হয়েছে arted

for element in some_list:
    if not element:
        pass
    print element  

থেকে খুব আলাদা

for element in some_list:
    if not element:
        continue
    print element

6

তাদের মধ্যে পার্থক্য রয়েছে,
continueলুপের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায় এবং পরবর্তী পুনরাবৃত্তিকে কার্যকর করে।
passকিছুই করে না এটি একটি খালি বিবৃতি স্থানধারক।
আমি বরং আপনাকে একটি উদাহরণ দেব, যা এটি আরও ভালভাবে স্পষ্ট করে দেবে।

>>> for element in some_list:
...     if element == 1:
...         print "Pass executed"
...         pass
...     print element
... 
0
Pass executed
1
2

>>> for element in some_list:
...     if element == 1:
...         print "Continue executed"
...         continue
...     print element
... 
0
Continue executed
2

5

হ্যাঁ, একটি পার্থক্য আছে। Continueপ্রকৃতপক্ষে লুপের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায় (শুরুতে ফিরে) Passএকটি ফাঁকা বিবৃতি যা কিছুই করে না।

দেখুন পাইথন ডক্স


4

এই উদাহরণগুলিতে, না। যদি বিবৃতি হল না লুপ শেষ তারপর তারা আছে খুব বিভিন্ন প্রভাব।


3

লুপের জন্য পাস এবং চালিয়ে যাওয়ার মধ্যে পার্থক্য:

তাহলে অজগর কেন পাস করবেন?

আপনি যদি খালি শ্রেণি, পদ্ধতি বা ব্লক তৈরি করতে চান তবে।

উদাহরণ:

class MyException(Exception):
    pass


try:
   1/0
 except:
   pass

উপরোক্ত উদাহরণগুলিতে 'পাস' না করে ইনডেন্টেশনআরার নিক্ষেপ করবে।


1
x = [1,2,3,4] 
for i in x:
    if i==2:
         pass  #Pass actually does nothing. It continues to execute statements below it.
         print "This statement is from pass."
for i in x:
    if i==2:
         continue #Continue gets back to top of the loop.And statements below continue are executed.
         print "This statement is from continue."

আউটপুট হয়

>>> This statement is from pass.

আবার, সামান্য পরিবর্তন সহ একই কোড চালানো যাক।

x = [1,2,3,4]
for i in x:
    if i==2:
       pass  #Pass actually does nothing. It continues to execute statements below it.
    print "This statement is from pass."
for i in x:
    if i==2:
        continue #Continue gets back to top of the loop.And statements below continue are executed.
    print "This statement is from continue."

আউটপুট হয় -

>>> This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from continue.
This statement is from continue.
This statement is from continue.

পাস কিছুই করে না। গণনা ক্ষতিগ্রস্থ হয়। তবে চালিয়ে যাওয়া পরবর্তী গণনার সাথে লুপের শীর্ষে ফিরে আসে।


3
ইতিমধ্যে উপলব্ধ অন্যান্য উত্তরগুলির সাথে বিশেষ পার্থক্য কী?
ভুবনেশ মোহনকুমার

1

এটি এইভাবে বিবেচনা করুন:

পাস: পাইথন খালি খাঁজে কাজ করে! অন্যান্য ভাষার মতো খালি কোঁকড়া ধনুর্বন্ধনী নেই।

সুতরাং, যদি কোনও শর্ত সত্য হয় তবে আপনি যদি কিছুই করতে চান তবে পাস ব্যতীত অন্য কোনও বিকল্প নেই।

চালিয়ে যান: এটি কেবল লুপগুলির ক্ষেত্রেই কার্যকর। সেক্ষেত্রে, বিভিন্ন মানের জন্য, আপনি যদি সেই বিশেষ পাসের শর্তটি সত্য হয়ে যাওয়ার পরে লুপের অবশিষ্ট বিবৃতিগুলি কার্যকর করতে চান না, তবে আপনাকে চালিয়ে যেতে হবে।


সুতরাং, শর্তটি সত্য হলে আপনি যদি কিছুই করতে চান তবে পাস ব্যতীত অন্য কোনও বিকল্প নেই -> এটি সঠিক নয়, উদাহরণস্বরূপ উপরে স্যেন মারনাচের মন্তব্য দেখুন।
প্যাট্রিক

1
@ পেট্রিক দুঃখিত, তবে তিনি সঠিক। ক্ষেত্রে, উদাহরণস্বরূপ, একটি চলক একটি ভাসমান এবং একটি int উভয়ই হতে পারে, এবং আপনি সমস্ত কালিগুলিতে একটি ক্রিয়াকলাপ করতে চান, তবে আপনি কেবল একটি if-বিবৃতি ব্যবহার করতে পারেন যা ভাসমানগুলির জন্য পরীক্ষা করে, passযদি বিবৃতিটি হয় তবে একটি ব্যবহার করতে পারেন Trueএবং যদি এটি অপারেশন সঞ্চালন False। এটি বহুমুখী তালিকার দক্ষ স্ক্যান করার অনুমতি দেয় for
1313e

0

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.