আমি সম্মত হই, এটি আরও বেশি 'এলিফের মতো নয় (শর্তে) উত্থাপন]' like
আমি জানি এটি একটি পুরানো থ্রেড, তবে আমি এখনই একই প্রশ্নের সন্ধান করছি এবং আমি নিশ্চিত নই যে এই প্রশ্নের উত্তরটি যেভাবে আমি বুঝতে পেরেছি কেউ তা গ্রহণ করেছে।
আমার জন্য, else
ইন For... else
বা While... else
স্টেটমেন্টগুলিতে "পড়ার" তিনটি উপায় রয়েছে , যেগুলির সমস্ত সমতুল্য:
else
==
if the loop completes normally (without a break or error)
else
==
if the loop does not encounter a break
else
==
else not (condition raising break)
(সম্ভবতঃ এরকম একটি অবস্থা রয়েছে, বা আপনার কোনও লুপ নেই)
সুতরাং, মূলত, একটি লুপের "অন্য" আসলেই একটি "এলিফ ..." যেখানে '...' (1) কোন বিরতি নয়, যা (2) নয় [শর্ত (গুলি) বাড়ানোর ব্রেক] এর সমান।
আমি মনে করি কীটি হ'ল else
'বিরতি' ব্যতীত অর্থহীন, সুতরাং এর মধ্যে একটি for...else
রয়েছে:
for:
do stuff
conditional break # implied by else
else not break:
do more stuff
সুতরাং, একটি for...else
লুপের প্রয়োজনীয় উপাদানগুলি নিম্নরূপ: এবং আপনি এগুলি সরল ইংরেজীতে পড়বেন:
for:
do stuff
condition:
break
else: # read as "else not break" or "else not condition"
do more stuff
অন্য পোস্টারগুলি যেমন বলেছে, আপনার লুপটি কী সন্ধান করছে তা সনাক্ত করতে সক্ষম হয়ে সাধারণত একটি বিরতি উত্থাপিত হয়, তাই else:
"লক্ষ্য আইটেমটি না থাকলে কী করতে হবে" তা হয়ে যায়।
উদাহরণ
আপনি ব্যতিক্রম হ্যান্ডলিং, ব্রেক এবং সমস্ত একসাথে লুপগুলির জন্যও ব্যবহার করতে পারেন।
for x in range(0,3):
print("x: {}".format(x))
if x == 2:
try:
raise AssertionError("ASSERTION ERROR: x is {}".format(x))
except:
print(AssertionError("ASSERTION ERROR: x is {}".format(x)))
break
else:
print("X loop complete without error")
ফলাফল
x: 0
x: 1
x: 2
ASSERTION ERROR: x is 2
----------
# loop not completed (hit break), so else didn't run
উদাহরণ
বিরতিতে আঘাত হানার সাথে সাধারণ উদাহরণ।
for y in range(0,3):
print("y: {}".format(y))
if y == 2: # will be executed
print("BREAK: y is {}\n----------".format(y))
break
else: # not executed because break is hit
print("y_loop completed without break----------\n")
ফলাফল
y: 0
y: 1
y: 2
BREAK: y is 2
----------
# loop not completed (hit break), so else didn't run
উদাহরণ
সাধারণ উদাহরণ যেখানে বিরতি নেই, কোনও শর্ত বিরতি উত্থাপন করে না এবং কোনও ত্রুটির মুখোমুখি হয় না।
for z in range(0,3):
print("z: {}".format(z))
if z == 4: # will not be executed
print("BREAK: z is {}\n".format(y))
break
if z == 4: # will not be executed
raise AssertionError("ASSERTION ERROR: x is {}".format(x))
else:
print("z_loop complete without break or error\n----------\n")
ফলাফল
z: 0
z: 1
z: 2
z_loop complete without break or error
----------