উত্তর:
এখানে একটি সাধারণ উদাহরণ:
for letter in 'Django':
if letter == 'D':
continue
print("Current Letter: " + letter)
আউটপুট হবে:
Current Letter: j
Current Letter: a
Current Letter: n
Current Letter: g
Current Letter: o
এটি লুপের পরবর্তী পুনরাবৃত্তিতে অবিরত থাকে।
continue
তা চিত্রিত করে তবে এটি অতিরিক্ত কার্যকর নয়, যখন আপনি করতে পারতেনif letter != 'D': print 'Current Letter:', letter
আমি লুপগুলিতে চালিয়ে যাওয়া ব্যবহার করতে পছন্দ করি যেখানে আপনি "ব্যবসায়ের দিকে নামার আগে" প্রচুর চুক্তি পূরণ করতে হবে। পরিবর্তে এই কোড এর পরিবর্তে:
for x, y in zip(a, b):
if x > y:
z = calculate_z(x, y)
if y - z < x:
y = min(y, z)
if x ** 2 - y ** 2 > 0:
lots()
of()
code()
here()
আমি এই জাতীয় কোড পেয়েছি:
for x, y in zip(a, b):
if x <= y:
continue
z = calculate_z(x, y)
if y - z >= x:
continue
y = min(y, z)
if x ** 2 - y ** 2 <= 0:
continue
lots()
of()
code()
here()
এইভাবে করে আমি খুব গভীরভাবে নেস্টেড কোড এড়িয়ে চলেছি। এছাড়াও, প্রথমে সর্বাধিক ঘন ঘন ঘটে যাওয়া কেসগুলি মুছে ফেলার মাধ্যমে লুপটি অপ্টিমাইজ করা সহজ, যাতে অন্য কোনও শোস্টোপার না থাকাকালীন আমাকে কেবল বিরল তবে গুরুত্বপূর্ণ ক্ষেত্রে (যেমন বিভাজক 0 হয়) মোকাবেলা করতে হয়।
continue
এই ফ্যাশন ব্যবহার করা অনুরূপ GOTO
। তবে এটি ব্যবহারের সঠিক উপায় GOTO
।
আপনি যখন লুপের মধ্যে বাকি কোডটি এড়িয়ে যেতে চান এবং পুনরাবৃত্তিটি চালিয়ে যেতে চান তখন পরিস্থিতিটি অবিরত প্রয়োজনীয় / দরকারী is
আমি এটি সত্যই বিশ্বাস করি না, যেহেতু আপনি সর্বদা একই যুক্তি সরবরাহ করতে যদি বিবৃতি ব্যবহার করতে পারেন তবে কোডের পঠনযোগ্যতা বাড়াতে এটি কার্যকর হতে পারে।
if <condition>: continue
পরিবর্তে ব্যবহার করে এমন if not <condition>: ...
স্তরকে এড়িয়ে যায় যা অন্যথায় এটি লেখা না থাকলে প্রয়োজন হত।
continue
বিবৃতি ব্যবহার করি তখনই আমরা শর্তসাপেক্ষ পরীক্ষার বিভাগটি থেকে মূলত ঝাঁপিয়ে পড়ে এবং লুপটির পুনরাবৃত্তিকে এগিয়ে যেতে দিয়েছি allowing পরবর্তী পুনরাবৃত্তি? এটি ব্যবহারের চেয়ে কীভাবে ভাল হবে তা আমার কাছে স্পষ্ট নয় else
। এটি কি কেবলমাত্র উন্নত পাঠযোগ্যতা এবং রান-টাইম পারফরম্যান্স সম্পর্কে?
import random
for i in range(20):
x = random.randint(-5,5)
if x == 0: continue
print 1/x
চালিয়ে যাওয়া একটি অত্যন্ত গুরুত্বপূর্ণ নিয়ন্ত্রণ বিবৃতি। উপরের কোডটি একটি সাধারণ অ্যাপ্লিকেশন নির্দেশ করে, যেখানে শূন্য দ্বারা বিভাজনের ফলাফল এড়ানো যায়। প্রোগ্রামগুলি থেকে আউটপুট সংরক্ষণ করার সময় আমি এটি প্রায়শই ব্যবহার করি, তবে প্রোগ্রাম ক্র্যাশ হয়ে থাকলে আউটপুট সংরক্ষণ করতে চাই না। দ্রষ্টব্য, উপরের উদাহরণটি পরীক্ষা করার জন্য, প্রবন্ধটি 1 / ফ্লোট (এক্স) দিয়ে শেষের বিবৃতিটি প্রতিস্থাপন করুন বা যখনই কোনও ভগ্নাংশ থাকবে তখনই আপনি শূন্য পাবেন, যেহেতু র্যান্ডেন্টটি পূর্ণসংখ্যা দেয় returns আমি স্বচ্ছতার জন্য এটি বাদ দিয়েছি।
কিছু লোক পঠনযোগ্যতা সম্পর্কে মন্তব্য করে বলেছে যে "ওহ এটি পাঠের পক্ষে এতটা সাহায্য করে না, কে চিন্তা করে?"
ধরুন আপনার মূল কোডের আগে একটি চেক প্রয়োজন:
if precondition_fails(message): continue
''' main code here '''
নোট আপনি যেভাবেই কোনও কোড পরিবর্তন না করে মূল কোডটি লেখার পরে এটি করতে পারেন । আপনি যদি কোডটি পৃথক করেন তবে মূল কোডটিতে কোনও ব্যবধান পরিবর্তন না হওয়ায় কেবল "চালিয়ে যাও" যুক্ত যুক্ত লাইনটি হাইলাইট করা হবে।
ভাবুন আপনার যদি প্রডাকশন কোডের একটি ব্রেকফিক্স করতে হয়, যা কেবল চালিয়ে যাওয়ার সাথে একটি লাইন যুক্ত করে। আপনি কোডটি পর্যালোচনা করার সময় এটিই একমাত্র পরিবর্তন এটি দেখতে সহজ। যদি আপনি / অন্য কোনও ক্ষেত্রে মুখ্য কোডটি মোড়তে শুরু করেন তবে ডিফ নতুন নতুন ইনডেন্ট কোডটি হাইলাইট করবে, যদি না আপনি স্পেসিং পরিবর্তনগুলিকে অগ্রাহ্য করেন, যা বিশেষত পাইথনের ক্ষেত্রে বিপজ্জনক। আমি মনে করি আপনি যদি সংক্ষিপ্ত বিজ্ঞপ্তিতে কোডটি রোল আউট করতে না চান তবে আপনি এটির পুরোপুরি প্রশংসা করতে পারবেন না।
def filter_out_colors(elements):
colors = ['red', 'green']
result = []
for element in elements:
if element in colors:
continue # skip the element
# You can do whatever here
result.append(element)
return result
>>> filter_out_colors(['lemon', 'orange', 'red', 'pear'])
['lemon', 'orange', 'pear']
continue
বিবৃতিটি এখানে কী যুক্ত করে ? এটি ব্যবহার করে নির্মূল করা যেতে পারে element not in colors
এবং কোডটি ততটাই পাঠযোগ্য।
ধরা যাক আমরা সমস্ত সংখ্যা মুদ্রণ করতে চাই যা 3 এবং 5 এর গুণক নয়
for x in range(0, 101):
if x % 3 ==0 or x % 5 == 0:
continue
#no more code is executed, we go to the next number
print x
if x %3 == 0 or x % 5 == 0:
, pass
, else:
,print x
continue
। আমার উপসংহারটি হল যে কখনই প্রয়োজন হয় না , তবে কিছু ক্ষেত্রে (এইগুলির মতো) কোডটি ব্যবহার করে আরও পঠনযোগ্য continue
। এটি একটি খুব ভাল উদাহরণ।
এটি একেবারে প্রয়োজনীয় নয় যেহেতু এটি আইএফএস দিয়ে করা যায় তবে এটি আরও পাঠযোগ্য এবং রান সময়কালেও কম ব্যয়বহুল।
ডেটা কিছু প্রয়োজনীয়তা পূরণ না করে একটি লুপে একটি পুনরাবৃত্তি এড়ানোর জন্য আমি এটি ব্যবহার করি:
# List of times at which git commits were done.
# Formatted in hour, minutes in tuples.
# Note the last one has some fantasy.
commit_times = [(8,20), (9,30), (11, 45), (15, 50), (17, 45), (27, 132)]
for time in commit_times:
hour = time[0]
minutes = time[1]
# If the hour is not between 0 and 24
# and the minutes not between 0 and 59 then we know something is wrong.
# Then we don't want to use this value,
# we skip directly to the next iteration in the loop.
if not (0 <= hour <= 24 and 0 <= minutes <= 59):
continue
# From here you know the time format in the tuples is reliable.
# Apply some logic based on time.
print("Someone commited at {h}:{m}".format(h=hour, m=minutes))
আউটপুট:
Someone commited at 8:20
Someone commited at 9:30
Someone commited at 11:45
Someone commited at 15:50
Someone commited at 17:45
আপনি দেখতে পাচ্ছেন যে, ভুল মান continue
বিবৃতি দেওয়ার পরে এটি তৈরি করে নি ।
if
continue
সমস্ত কোড কোনও ব্লকে থাকা থাকলে কেবল সেগুলি করতে পারে । continue
এমনকি if
ব্লকের বাইরে থাকা কোডগুলিও এড়িয়ে যায় ।
উদাহরণস্বরূপ, যদি আপনি কোনও ভেরিয়েবলের মানের উপর নির্ভর করে ডিফেরেন্ট জিনিসগুলি করতে চান:
my_var = 1
for items in range(0,100):
if my_var < 10:
continue
elif my_var == 10:
print("hit")
elif my_var > 10:
print("passed")
my_var = my_var + 1
উপরের উদাহরণে আমি যদি break
দোভাষী ব্যবহার করি তবে লুপটি এড়িয়ে যাবে। তবে continue
এটির সাথে কেবল if-elif বিবৃতি এড়িয়ে যায় এবং সরাসরি লুপের পরবর্তী আইটেমে যায়।
my_var
এর 0
।
continue
।
elif
একটি হওয়া উচিত if
। কোডটি কেবল এমন চেহারা দেয় না যা আপনি জানেন যে আপনি কী করছেন।
continue
পরবর্তী পুনরাবৃত্তি হওয়া পর্যন্ত লুপের মধ্যে বাকী কোডটি কেবল এড়িয়ে যায়