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

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 բլոկներ, որքան անհրաժեշտ է՝ տարբեր տեսակի բացառություններ կարգավորելու համար: Այս կերպ մենք կարող ենք ապահովել, որ ծրագիրը սխալների պատճառով կտրուկ չդադարի և օգտատիրոջը տրամադրի օգտակար հաղորդագրություններ:

Մեկ տողում կարող եք գրել բազմաթիվ բացառություններ.

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