Python හි අවයවයක් සමඟ අසාමාන්ය අවස්ථාව

කොන්දේසි භාවිතයෙන් ශ්‍රිතයක ඒවා ඇතුල් කිරීමෙන්, අසාමාන්ය අවස්ථා විසි කිරීම ඉතා පහසුය.

අපි ශ්‍රිතයක් සාදමු get_sum, එය ලැයිස්තුවක මූලද්‍රව්‍යවල එකතුව ප්‍රතිදානය කරන්නේ ලැයිස්තුවේ දිග අඩු හෝ සමාන නම් පමණි 3. එසේ නොවේ නම්, අපගේ අසාමාන්ය අවස්ථාව ToBigLength විසි කිරීමට ඉඩ දෙමු:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

දැන් ශ්‍රිතයට get_sum ලැයිස්තුව පවරමු සහ ශ්‍රිතය කොන්සෝලයට ප්‍රතිදානය කරමු:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # 6 ප්‍රතිදානය කරයි

ශ්‍රිතවලදී, අසාමාන්ය අවස්ථා වර්ග කිහිපයක් හසු කිරීම ද නියම කළ හැකිය. අපි තවත් අසාමාන්ය අවස්ථා පන්තියක් සාදමු ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

දැන් ශ්‍රිතයේ කොන්දේසියක් ලියන්න, ලැයිස්තුවේ දිග ශුන්‍යයට සමාන නම්, ToSmallLength විසි කිරීමට ඉඩ දෙන්න. කිසිදු අසාමාන්ය අවස්ථාවක් හසු නොවන්නේ නම්, ලැයිස්තුවේ සියලුම මූලද්‍රව්‍යවල එකතුව ප්‍රතිදානය වීමට ඉඩ දෙන්න:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

පහසුව සඳහා, ශ්‍රිතයේ පරාමිතියට පවරනු ලබන ලැයිස්තුව, ශ්‍රිතය සහ එහි කැඳවීම try බ්ලොක් එකකට ඇතුළත් කළ හැකිය. අපගේ අසාමාන්ය අවස්ථා දෙක හසු කිරීම except බ්ලොක් වල තබමු:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

සංඛ්‍යාවක් පරාමිතියක් ලෙස පිළිගන්නා ශ්‍රිතයක් සාදන්න. එහි කොන්දේසි ලියන්න, සංඛ්‍යාව ඍණ සහ ශුන්‍යයට සමාන නම්, අදාළ අසාමාන්ය අවස්ථා විසි කිරීමට ඉඩ දෙන්න. එසේ නොවේ නම්, සංඛ්‍යාව 3 න් ගුණ කිරීමට ඉඩ දෙන්න.

Задание 2

try-except ව්‍යුහය භාවිතයෙන් ඔබ විසින් සාදන ලද ශ්‍රිතයේ ක්‍රියාකාරිත්වය පරීක්ෂා කරන්න. මෙහිදී ඔබගේ අසාමාන්ය අවස්ථා ද හසු කරන්න.