পাইথনে ডু-ওয়েল লুপ অনুকরণ করবেন?


797

পাইথন প্রোগ্রামে আমাকে ডু-ওয়েল লুপ অনুকরণ করতে হবে। দুর্ভাগ্যক্রমে, নিম্নলিখিত সোজা কোডটি কাজ করে না:

list_of_ints = [ 1, 2, 3 ]
iterator = list_of_ints.__iter__()
element = None

while True:
  if element:
    print element

  try:
    element = iterator.next()
  except StopIteration:
    break

print "done"

"1,2,3, সম্পন্ন" এর পরিবর্তে এটি নিম্নলিখিত আউটপুটটি মুদ্রণ করে:

[stdout:]1
[stdout:]2
[stdout:]3
None['Traceback (most recent call last):
', '  File "test_python.py", line 8, in <module>
    s = i.next()
', 'StopIteration
']

'স্টপ পুনরাবৃত্তি' ব্যতিক্রমটি ধরতে এবং কিছুক্ষণের লুপটি সঠিকভাবে ভাঙ্গতে আমি কী করতে পারি?

কেন এই জাতীয় জিনিসটির প্রয়োজন হতে পারে তার একটি উদাহরণ নীচে সিউডোকোড হিসাবে দেখানো হয়েছে।

রাজ্য মেশিন:

s = ""
while True :
  if state is STATE_CODE :
    if "//" in s :
      tokens.add( TOKEN_COMMENT, s.split( "//" )[1] )
      state = STATE_COMMENT
    else :
      tokens.add( TOKEN_CODE, s )
  if state is STATE_COMMENT :
    if "//" in s :
      tokens.append( TOKEN_COMMENT, s.split( "//" )[1] )
    else
      state = STATE_CODE
      # Re-evaluate same line
      continue
  try :
    s = i.next()
  except StopIteration :
    break

4
উম ... এটি যথাযথ "করণীয়" নয়; এটি কেবল "চিরদিনের জন্য"। "সত্য" এবং "বিরতি" দিয়ে কী হয়েছে?
এস .লট

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

4
সুতরাং ... আপনার প্রাথমিক উদাহরণ কোডটি আসলে কোনও সমস্যা ছাড়াই আমার পক্ষে কাজ করে এবং আমি সেই ট্রেসব্যাকটি পাই না। লুপ যেখানে বিরতির অবস্থা পুনরাবৃত্তির ক্লান্তি যখন এটি করতে একটি উপযুক্ত প্রতিমা। সাধারণত আপনি কোনটির s=i.next()চেয়ে সেট করে রেখেছিলেন এবং লুপটি অকেজো হয়ে যাওয়ার পরে আপনার প্রথম পাসটি করার চেয়ে সম্ভবত কিছু প্রাথমিক কাজ করবেন।
19:30 এ underrun

3
@ আন্ডাররুন দুর্ভাগ্যক্রমে, পোস্টটি ট্যাগ করা হয়নি যে পাইথনের কোন সংস্করণ ব্যবহৃত হয়েছিল - মূল স্নিপেটটি আমার জন্য খুব 2.7 ব্যবহার করে কাজ করে, সম্ভবত পাইথন ভাষার আপডেটের কারণে।
হ্যানেল

উত্তর:


984

আপনি কী করার চেষ্টা করছেন তা আমি নিশ্চিত নই। আপনি এর মতো একটি ডু-ওয়েল লুপ প্রয়োগ করতে পারেন:

while True:
  stuff()
  if fail_condition:
    break

বা:

stuff()
while not fail_condition:
  stuff()

তালিকায় থাকা জিনিসগুলি মুদ্রণের জন্য আপনি কী করার সময় লুপটি ব্যবহার করার চেষ্টা করছেন? কেন শুধু ব্যবহার করবেন না:

for i in l:
  print i
print "done"

হালনাগাদ:

সুতরাং আপনার কি লাইনের একটি তালিকা আছে? এবং আপনি এটির মাধ্যমে পুনরাবৃত্তি চালিয়ে যেতে চান? কেমন:

for s in l: 
  while True: 
    stuff() 
    # use a "break" instead of s = i.next()

এটি কি আপনি চান কি কাছাকাছি মত মনে হচ্ছে? আপনার কোড উদাহরণ সহ, এটি হবে:

for s in some_list:
  while True:
    if state is STATE_CODE:
      if "//" in s:
        tokens.add( TOKEN_COMMENT, s.split( "//" )[1] )
        state = STATE_COMMENT
      else :
        tokens.add( TOKEN_CODE, s )
    if state is STATE_COMMENT:
      if "//" in s:
        tokens.append( TOKEN_COMMENT, s.split( "//" )[1] )
        break # get next s
      else:
        state = STATE_CODE
        # re-evaluate same line
        # continues automatically

1
আমার একটি রাষ্ট্রীয় মেশিন তৈরি করা দরকার। রাষ্ট্রীয় মেশিনে বর্তমান বিবৃতিটির পুনরায় মূল্যায়ন করার জন্য এটি একটি সাধারণ ঘটনা, সুতরাং পরবর্তী আইটেমটি না ঘটিয়ে আমার 'চালিয়ে যাওয়া' দরকার। 'ফর এস ইন এল' এর পুনরাবৃত্তি :( এ কীভাবে করবেন তা আমি জানি না do
ডু

আপনি কি চান যে তালিকায় আপনার স্থানটি ট্র্যাক করা দরকার? আপনি যখন একই রাজ্যে ফিরে আসবেন, আপনি যেখানে ছেড়ে গিয়েছিলেন সেখানেই তুলতে পারবেন? আরও কিছু প্রসঙ্গ দিন। দেখে মনে হচ্ছে আপনি তালিকার কোনও সূচক ব্যবহার করা থেকে ভাল।
টম

ধন্যবাদ, আমি আপনার সিউডোকোডে মন্তব্য করেছি ... আপনার উদাহরণটি এমনভাবে খারাপ বলে মনে হচ্ছে যেহেতু আপনি "//" কে একইভাবে পরিচালনা করছেন বলে মনে করেন আপনি যে অবস্থায় থাকুন না কেন Also এছাড়াও, আপনি কি মন্তব্যগুলি প্রক্রিয়া করছেন এই আসল কোডটি কি? আপনার যদি স্ট্রেস দিয়ে স্ট্রিং থাকে? অর্থাত: "ব্লাহ // <মুদ্রণ - তাতে কি আপনাকে গোলমেলে?"
টম

4
এটি লজ্জার বিষয় যে অজগরটির ডু-ওয়েল লুপ নেই। পাইথন DRY হয়, তাই না?
Kr0e

43
অফিসিয়াল স্ট্যান্ড / ন্যায্যতার জন্য পিইপি 315 দেখুন : "ভাষার ব্যবহারকারীদের যখন ডু-ওয়েল লুপটি যথাযথ হত তবে ইফ-ব্রেকের সাথে অন্তর্-সত্যের ফর্মটি ব্যবহার করার পরামর্শ দেওয়া হয়।"
dtk

309

ডু-ওয়েল লুপ অনুকরণ করার জন্য এখানে একটি খুব সহজ উপায়:

condition = True
while condition:
    # loop body here
    condition = test_loop_condition()
# end of loop

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


11
এটি সর্বদা একটি অতিরিক্ত বুলিয়ান পরিবর্তনশীল যুক্ত করে না। প্রায়শই এমন কিছু (গুলি) রয়েছে যা ইতিমধ্যে বিদ্যমান যার রাজ্য পরীক্ষা করা যেতে পারে।
মার্টিনো

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

4
দ্রষ্টব্য: যদিও এটি আসল প্রশ্নের সমাধান করে, এই পদ্ধতির ব্যবহারের চেয়ে কম নমনীয় break। বিশেষত, যদি এরপরে লজিকের প্রয়োজন test_loop_condition()হয়, এটি শেষ হয়ে গেলে আমাদের করা শেষ করা উচিত নয়, এটি আবৃত করতে হবে if condition:। বিটিডাব্লু, conditionঅস্পষ্ট। আরও বর্ণনামূলক: moreবা notDone
টুলমেকারস্টেভ

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

1
আদর্শভাবে, has_no_errorsend_reachedwhile not end_reached
শর্তটিকে

74

নীচের আমার কোডটি একটি কার্যকর বাস্তবায়ন হতে পারে, এর মধ্যে মূল পার্থক্যটি হাইলাইট করে বনাম আমি এটি বুঝতে হিসাবে।

সুতরাং এই এক ক্ষেত্রে, আপনি সর্বদা লুপটি অন্তত একবার একবার যান।

first_pass = True
while first_pass or condition:
    first_pass = False
    do_stuff()

2
সঠিক উত্তর, আমি তর্ক করছি। এছাড়াও এটি বিরতি এড়ানো , চেষ্টা করুন / ব্লক ব্যতীত নিরাপদ ব্যবহারের জন্য।
জেডভি_ওডিডি

জিট / অপ্টিমাইজার কি প্রথম পাসের পরে প্রথম_পাস পুনরায় পরীক্ষা করা এড়াতে পারে? অন্যথায়, এটি বিরক্তিকর হবে, যদিও সামান্য, পারফরম্যান্স ইস্যু
মার্কহন

2
@markhahn এই সত্যিই নাবালক কিন্তু যদি আপনি এই ধরনের বিবরণ যত্ন, আপনি লুপের 2 Booleans intervert পারেন: while condition or first_pass:। তারপরে conditionসর্বদা প্রথম মূল্যায়ন করা হয় এবং সামগ্রিকভাবে first_passকেবলমাত্র দুবার (প্রথম এবং শেষ পুনরাবৃত্তি) মূল্যায়ন করা হয়। conditionআপনি যা চান লুপ করার আগে আরম্ভ করতে ভুলবেন না।
পিএলওপিজি

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

33

ব্যতিক্রম লুপটি ভেঙে দেবে, সুতরাং আপনি সম্ভবত এটি লুপের বাইরেও পরিচালনা করতে পারেন।

try:
  while True:
    if s:
      print s
    s = i.next()
except StopIteration:   
  pass

আমি অনুমান করি যে আপনার কোডের সাথে সমস্যাটি হ'ল breakঅভ্যন্তরের আচরণexcept সংজ্ঞায়িত নয়। সাধারণত breakমাত্র এক স্তর উপরে যায়, সুতরাং উদাহরণস্বরূপ breakঅভ্যন্তরটি tryসরাসরি finally(যদি এটি উপস্থিত থাকে) বাইরে চলে যায় tryতবে লুপের বাইরে না।

সম্পর্কিত পিইপি: http://www.python.org/dev/peps/pep-3136
সম্পর্কিত প্রশ্ন: নেস্টেড লুপগুলি ভাঙ্গা


8
এটি আপনার অভ্যাসটি ছড়িয়ে দেওয়ার প্রত্যাশা কেবল চেষ্টা করার স্টেটমেন্টের ভিতরে থাকলেও এটি ভাল অনুশীলন, যাতে আপনি অযাচিত ব্যতিক্রমগুলি ধরেন না।
প্যাগাগাস

7
@ পিআইপিপ: আরটিএফএম, ইএএফপি অনুসন্ধান করুন।
ভের্টেক

2
@ পিপিপ: কোনও সমস্যা নেই, কেবল মনে রাখবেন, কিছু ভাষার ক্ষেত্রে যা সত্য, তা অন্যের ক্ষেত্রেও সত্য নাও হতে পারে। পাইথন ব্যতিক্রমগুলির নিবিড় ব্যবহারের জন্য অনুকূলিত।
ভের্টেক

5
বিরতি এবং অবিরত একটি চেষ্টা / বাদে / অবশেষে বিবৃতি যে কোনও ধারাতে নিখুঁতভাবে সংজ্ঞায়িত করা হয়। এগুলি কেবল এগুলিকে উপেক্ষা করে এবং তা ভেঙে যায় বা যথাযথ হিসাবে লুপের জন্য থাকাটির পরবর্তী পুনরাবৃত্তিতে চলে যায়। লুপিং নির্মাণের উপাদান হিসাবে, তারা কেবল যখন এবং বিবৃতিগুলির জন্য কেবল তখনই প্রাসঙ্গিক হয় এবং আন্তঃতম লুপে পৌঁছানোর আগে কোনও শ্রেণি বা ডিএফ বিবৃতিতে চালিত হলে সিনট্যাক্স ত্রুটিটি ট্রিগার করে। বিবৃতি সহ, চেষ্টা করে থাকলে তারা এড়িয়ে চলে।
ncoghlan

1
.. যা একটি গুরুত্বপূর্ণ কেস
জাভাদবা

33
do {
  stuff()
} while (condition())

->

while True:
  stuff()
  if not condition():
    break

আপনি একটি ফাংশন করতে পারেন:

def do_while(stuff, condition):
  while condition(stuff()):
    pass

তবে 1) এটি কুরুচিপূর্ণ। 2) শর্তটি একটি পরামিতি সহ একটি ফাংশন হওয়া উচিত, এটি স্টাফ দ্বারা পূরণ করা উচিত বলে মনে করা ( লুপ করার সময় ক্লাসিকটি ব্যবহার না করার একমাত্র কারণ ))


5
লেখা while True: stuff(); if not condition(): breakখুব ভাল ধারণা। ধন্যবাদ!
নোকটিস স্কাইটিওয়ার

2
@ জেড, কেন 1) কুরুচিপূর্ণ? এটি বেশ ঠিক আছে, আইএমএইচও
সের্গেই লসসেভ

@ সের্গেওলসেভ প্রোগ্রামটির যুক্তি বোঝা মুশকিল হতে চলেছে কারণ প্রথমে এটি অসীম লুপ হিসাবে উপস্থিত হয় যদি আপনার মাঝে 'স্টাফ' কোড থাকে '
প্রাক্তন

16

এখানে আলাদা প্যাটার্নের একটি ক্রেজিয়ার সমাধান রয়েছে - কর্টাইন ব্যবহার করে। কোডটি এখনও খুব মিল, তবে একটি গুরুত্বপূর্ণ পার্থক্য সহ; কোনও প্রস্থান শর্ত নেই! আপনি যখন এটিকে ডেটা দিয়ে খাওয়ানো বন্ধ করেন তখন কর্টিন (সত্যিই কর্টিনগুলির চেইন) বন্ধ হয়ে যায়।

def coroutine(func):
    """Coroutine decorator

    Coroutines must be started, advanced to their first "yield" point,
    and this decorator does this automatically.
    """
    def startcr(*ar, **kw):
        cr = func(*ar, **kw)
        cr.next()
        return cr
    return startcr

@coroutine
def collector(storage):
    """Act as "sink" and collect all sent in @storage"""
    while True:
        storage.append((yield))

@coroutine      
def state_machine(sink):
    """ .send() new parts to be tokenized by the state machine,
    tokens are passed on to @sink
    """ 
    s = ""
    state = STATE_CODE
    while True: 
        if state is STATE_CODE :
            if "//" in s :
                sink.send((TOKEN_COMMENT, s.split( "//" )[1] ))
                state = STATE_COMMENT
            else :
                sink.send(( TOKEN_CODE, s ))
        if state is STATE_COMMENT :
            if "//" in s :
                sink.send(( TOKEN_COMMENT, s.split( "//" )[1] ))
            else
                state = STATE_CODE
                # re-evaluate same line
                continue
        s = (yield)

tokens = []
sm = state_machine(collector(tokens))
for piece in i:
    sm.send(piece)

উপরের কোডটি সমস্ত টোকেনকে tuples হিসাবে সংগ্রহ করে tokensএবং আমি ধরে নিই যে মূল কোড .append()এবং এর .add()মধ্যে কোনও পার্থক্য নেই ।


4
আপনি আজ পাইথন 3.x এ কীভাবে লিখবেন?
নোকটিস স্কাইটওয়ার

13

আমি যেভাবে এটি করেছি তা নীচে ...

condition = True
while condition:
     do_stuff()
     condition = (<something that evaluates to True or False>)

এটি আমার কাছে সহজ সমাধান বলে মনে হচ্ছে, আমি অবাক হয়েছি আমি ইতিমধ্যে এটি এখানে দেখিনি। এটি অবশ্যই উল্টানো যেতে পারে

while not condition:

প্রভৃতি


আপনি বলছেন "আমি অবাক হয়েছি আমি ইতিমধ্যে এটি এখানে দেখিনি" - তবে আমি 2010 থেকে পাউডারফ্লাস্কের সমাধান থেকে কোনও পার্থক্য দেখতে পাচ্ছি না। এটি ঠিক একই রকম। ("শর্ত = সত্য অবস্থায় শর্ত: # লুপের শরীরে এখানে শর্ত = পরীক্ষা_লুপ_কন্ডিশন () # লুপের শেষ")
cslotty

10

একটি করণীয় - যখন লুপের চেষ্টা বিবৃতি রয়েছে

loop = True
while loop:
    generic_stuff()
    try:
        questionable_stuff()
#       to break from successful completion
#       loop = False  
    except:
        optional_stuff()
#       to break from unsuccessful completion - 
#       the case referenced in the OP's question
        loop = False
   finally:
        more_generic_stuff()

বিকল্পভাবে, যখন 'অবশেষে' ধারাটির প্রয়োজন হয় না

while True:
    generic_stuff()
    try:
        questionable_stuff()
#       to break from successful completion
#       break  
    except:
        optional_stuff()
#       to break from unsuccessful completion - 
#       the case referenced in the OP's question
        break

7
while condition is True: 
  stuff()
else:
  stuff()

8
ইডব্ল্যু। এটি বিরতি ব্যবহারের চেয়ে উল্লেখযোগ্যভাবে খারাপ বলে মনে হচ্ছে।
ম্যাটডেম

5
এটি চতুর, তবে এটির stuffএকটি ক্রিয়া হওয়া বা কোড বডিটির পুনরাবৃত্তি হওয়া প্রয়োজন।
নোকটিস স্কাইটিভার

12
যা প্রয়োজন তা হ'ল while condition:কারণ is Trueনিহিত।
মার্টিনো

2
conditionকিছু অভ্যন্তরীণ ভেরিয়েবলের উপর নির্ভর করে যদি এটি ব্যর্থ হয় stuff(), কারণ সেই পরিবর্তনশীলটি সেই মুহুর্তে সংজ্ঞায়িত হয় না।
yo

5
একই যুক্তি নয়, কারণ শেষ পুনরাবৃত্তির সময় যখন শর্ত! = সত্য: এটি কোডটিকে একটি চূড়ান্ত সময় বলে। যেখানে করার সময় , কোডটি একবার কল করে, তারপরে পুনরায় চলার আগে শর্তটি পরীক্ষা করে। করার সময়: একবার ব্লক কার্যকর করুন; তারপরে চেক করুন এবং পুনরায় রান করুন , এই উত্তর: চেক করুন এবং পুনরায় রান করুন; তারপরে একবার কোড ব্লক কার্যকর করুন । বড় পার্থক্য!
জেডভি_ওডিডি

7

দ্রুত হ্যাক:

def dowhile(func = None, condition = None):
    if not func or not condition:
        return
    else:
        func()
        while condition():
            func()

এর মতো ব্যবহার করুন:

>>> x = 10
>>> def f():
...     global x
...     x = x - 1
>>> def c():
        global x
        return x > 0
>>> dowhile(f, c)
>>> print x
0

3

কেন আপনি শুধু না

for s in l :
    print s
print "done"

?


1
আমার একটি রাষ্ট্রীয় মেশিন তৈরি করা দরকার। রাষ্ট্রীয় মেশিনে বর্তমান বিবৃতিটির পুনরায় মূল্যায়ন করার জন্য এটি একটি সাধারণ ঘটনা, সুতরাং পরবর্তী আইটেমটি না ঘটিয়ে আমার 'চালিয়ে যাওয়া' দরকার। আমি কিভাবে এই ধরনের জিনিস করতে জানি না 'L মধ্যে s এর জন্য:'।। পুনরাবৃত্তির :( না সময় লুপ, 'অবিরত' পুনরায় মূল্যায়নের শেষে বর্তমান আইটেম, পুনরাবৃত্তির হবে
grigoryvp

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

লুপের জন্য যেমন কাজ করে না: এ = মজা () যখন a == 'জেডএক্সসি': ঘুম (10) এ = মজা ()
হ্যারি

এটি সম্পূর্ণরূপে কোনও বুলিয়ান শর্তটি পরীক্ষা করে দেখুন
জাভাদ্বা

1

এটি সাহায্য করে কিনা দেখুন:

ব্যতিক্রম হ্যান্ডলারের অভ্যন্তরে একটি পতাকা সেট করুন এবং এর উপর কাজ করার আগে এটি পরীক্ষা করুন।

flagBreak = false;
while True :

    if flagBreak : break

    if s :
        print s
    try :
        s = i.next()
    except StopIteration :
        flagBreak = true

print "done"

3
ব্যবহার করে সরলীকৃত করা যায়নি while not flagBreak:এবং সরিয়েছে if (flagBreak) : break
মার্টিনো 18

1
আমি নামের ভেরিয়েবলগুলি এড়াতে flagপারি - সত্যিকারের মান বা মিথ্যা মানের অর্থ কী তা বোঝাতে আমি অক্ষম। পরিবর্তে, ব্যবহার করুন doneবা endOfIteration। কোডটি পরিণত হয় while not done: ...
আইসআর্ডার

1

যদি আপনি এমন কোনও দৃশ্যে থাকেন যেখানে আপনি যখন কোনও সংস্থান অপ্রত্যাশিত বা এমন কিছু ব্যতিক্রম ছুঁড়ে মারার সময় লুপিং করছেন তবে আপনি এর মতো কিছু ব্যবহার করতে পারেন

import time

while True:
    try:
       f = open('some/path', 'r')
    except IOError:
       print('File could not be read. Retrying in 5 seconds')   
       time.sleep(5)
    else:
       break

0

আমার জন্য একটি সাধারণ যখন লুপটি এমন হবে:

xBool = True
# A counter to force a condition (eg. yCount = some integer value)

while xBool:
    # set up the condition (eg. if yCount > 0):
        (Do something)
        yCount = yCount - 1
    else:
        # (condition is not met, set xBool False)
        xBool = False

শর্তের অন্য সেটটি লুপিংয়ের জন্য আমি যখন লুপটির মধ্যে একটি লুপও অন্তর্ভুক্ত করতে পারি , পরিস্থিতি যদি তাই পরোয়ানা থাকে।

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