Python හි අවයවයක් සමඟ අසාමාන්ය අවස්ථාව
කොන්දේසි භාවිතයෙන් ශ්රිතයක ඒවා ඇතුල් කිරීමෙන්, අසාමාන්ය අවස්ථා විසි කිරීම ඉතා පහසුය.
අපි ශ්රිතයක් සාදමු get_sum,
එය ලැයිස්තුවක මූලද්රව්යවල එකතුව ප්රතිදානය කරන්නේ
ලැයිස්තුවේ දිග අඩු හෝ සමාන නම් පමණි
3. එසේ නොවේ නම්,
අපගේ අසාමාන්ය අවස්ථාව ToBigLength විසි කිරීමට ඉඩ දෙමු:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
දැන් ශ්රිතයට get_sum ලැයිස්තුව පවරමු
සහ ශ්රිතය කොන්සෝලයට ප්රතිදානය කරමු:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6 ප්රතිදානය කරයි
ශ්රිතවලදී, අසාමාන්ය අවස්ථා වර්ග කිහිපයක්
හසු කිරීම ද නියම කළ හැකිය. අපි
තවත් අසාමාන්ය අවස්ථා පන්තියක් සාදමු ToSmallLength:
class ToSmallLength(Exception):
pass
දැන් ශ්රිතයේ කොන්දේසියක් ලියන්න, ලැයිස්තුවේ
දිග ශුන්යයට සමාන නම්, ToSmallLength
විසි කිරීමට ඉඩ දෙන්න. කිසිදු අසාමාන්ය අවස්ථාවක්
හසු නොවන්නේ නම්, ලැයිස්තුවේ සියලුම
මූලද්රව්යවල එකතුව ප්රතිදානය වීමට ඉඩ දෙන්න:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
පහසුව සඳහා, ශ්රිතයේ පරාමිතියට
පවරනු ලබන ලැයිස්තුව,
ශ්රිතය සහ එහි කැඳවීම try බ්ලොක් එකකට
ඇතුළත් කළ හැකිය.
අපගේ අසාමාන්ය අවස්ථා දෙක හසු කිරීම
except බ්ලොක් වල තබමු:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
සංඛ්යාවක් පරාමිතියක් ලෙස පිළිගන්නා ශ්රිතයක් සාදන්න.
එහි කොන්දේසි ලියන්න,
සංඛ්යාව ඍණ සහ ශුන්යයට සමාන නම්,
අදාළ අසාමාන්ය අවස්ථා විසි කිරීමට ඉඩ දෙන්න.
එසේ නොවේ නම්, සංඛ්යාව
3 න් ගුණ කිරීමට ඉඩ දෙන්න.
try-except ව්යුහය භාවිතයෙන් ඔබ විසින් සාදන ලද ශ්රිතයේ ක්රියාකාරිත්වය
පරීක්ෂා කරන්න. මෙහිදී
ඔබගේ අසාමාන්ය අවස්ථා ද හසු කරන්න.