Բացառություններ

Python-ում շատ հեշտ է կատարել այնպիսի գործողություններ, ինչպիսիք են բաժանումը և ֆայլերի մշակումը: Սակայն երբեմն կարող են սխալներ առաջանալ, ինչը հանգեցնում է ծրագրի կտրուկ դադարեցման: Այստեղ է, որ մեզ օգնության են հասնում բացառությունները: Python-ն օգտագործում է try, except բլոկները՝ բացառությունները կարգավորելու համար: Գործողությունները, որոնք կարող են բացառություններ առաջացնել, տեղադրվում են try բլոկում, իսկ բացառությունները մշակելու կոդը տեղադրվում է except բլոկում:
Դիտարկենք բաժանման պարզ գործողություն.
a = int(input())
b = int(input())
print(a / b)
print('The program continues...')
10 և 2 մուտքերի դեպքում ծրագիրը կտպի 5.0 և The program continues... Սակայն եթե մուտքագրենք 10 և 0, ծրագիրը կդադարեցվի և կտպի սխալի մասին հաղորդագրություն՝ ZeroDivisionError: division by zero։
Այս սխալն ուղղելու համար մենք կարող ենք կիրառել բացառություններ.
try:                       # Try to perform the operations in the block
    a = int(input())
    b = int(input())
    print(a / b)
except ZeroDivisionError:  # What to do if a ZeroDivisionError occurs
    print('Error: Division by zero is not allowed.')

print('The program continues...')
Եթե այժմ աշխատեցնենք ծրագիրը 10 և 0 մուտքերով, այն կտպի Error: Division by zero is not allowed. և The program continues....
Նույն ձևով կարող ենք կարգավորել այլ բացառություններ, ինչպիսիք են ValueError-ը, որը տեղի է ունենում, երբ մուտքագրվածն ամբողջ թիվ չէ: Որպես լուծում՝ կարող ենք ավելացնել ևս մեկ բլոկ` except.
try:
    a = int(input())
    b = int(input())
    print(a / b)
except ZeroDivisionError:
    print('Error: Division by zero is not allowed.')
except ValueError:
    print('Error: Input is not a valid integer.')
Ընդ որում, հնարավոր է ավելացնել այնքան except բլոկներ, որքան անհրաժեշտ է՝ տարբեր տեսակի բացառություններ կարգավորելու համար: Այս կերպ մենք կարող ենք ապահովել, որ ծրագիրը սխալների պատճառով կտրուկ չդադարի և օգտատիրոջը տրամադրի օգտակար հաղորդագրություններ:
💡
Հիշե՛ք, որ except բլոկների հերթականությունը կարևոր է: Python-ը կկատարի առաջին except բլոկը, որը համապատասխանում է տեղի ունեցած սխալի տեսակին: Եթե except բլոկներից ոչ մեկի հետ համընկնում չկա, սխալը չի մշակվի:
Մեկ տողում կարող եք գրել բազմաթիվ բացառություններ.
try:
    a = int(input())
    b = int(input())
    print(a / b)
except (ZeroDivisionError, ValueError) as e:
    print('Error:', e)
Այստեղ e-ն բարձրացված բացառության օբյեկտն է:
Օգտագործելով բացառությունները՝ մենք կարող ենք մեր Python ծրագրերը դարձնել ավելի ապահով և հարմար:

Առաջադրանք․ ուղղանկյան մակերեսը

Դուք պետք է գրեք ծրագիր, որը մուտքից կարդում է երկու տասնորդական թվեր՝ h և w (ուղղանկյան բարձրությունը և լայնությունը): Ձեր խնդիրն է հաշվարկել և տպել ուղղանկյան մակերեսը:
Սակայն երաշխավորված չէ, որ մուտքում բոլոր թվերը վավեր են: Եթե h-ը կամ w-ն թվեր չեն, դուք պետք է կարգավորեք բացառությունը և տպեք The input is not a number։
Մուտքի առաջին տողը պարունակում է h բարձրությունը, իսկ երկրորդը՝ w լայնությունը:
Ծրագիրը պետք է տպի մեկ տող՝ ուղղանկյան մակերեսը, եթե մուտքերը վավեր թվեր են, կամ The input is not a number, եթե մուտքերից մեկը կամ երկուսն էլ վավեր թվեր չեն:
Մուտք
Ելք
5.2 7.8
40.56
3.7 abc
The input is not a number
abc 5.5
The input is not a number
abc def
The input is not a number
Նշում. եթե մուտքում նշված են թվեր, ապա դրանք դրական թվեր են։
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue