Created
March 28, 2018 23:43
-
-
Save simplesasha/66ed289d8d0b75128f21ee7bc5288e0d to your computer and use it in GitHub Desktop.
Some work with functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#1 Написать функцию, кторая выбрасывает одно из трех исключений: ValueError, TypeError, RuntimeError случайным образом. В месте вызова функции обрабатывается все 3 исключения. | |
import random | |
def osome_error(): | |
x = random.randint(1, 3) | |
if x == 1: | |
raise ValueError('ValueError') | |
elif x == 2: | |
raise TypeError('TypeError') | |
else: | |
raise RuntimeError('RuntimeError') | |
return | |
try: | |
osome_error() | |
except (ValueError, TypeError, RuntimeError) as err: | |
print('Поймана ошибка: ', err) | |
#2 Написать функцию, которая принимает на вход список, если в списке все объекты int сортирует его. Иначе выбрасывают ValueError. | |
def test(*num): | |
a = list() | |
for x in num: | |
if type(x) is int: | |
a.append(x) | |
else: | |
raise ValueError('Неверный тип данных') | |
break | |
print(sorted(a)) | |
#компактное решение без raise | |
def test(*num): | |
print(sorted([a for a in [*num] if isinstance(a, int)])) | |
#3 Написать функцию, которая принимает словарь, преобразует все значения словаря к строкам и возвращает новый словарь | |
def tostring(**kwargs): | |
a = dict() | |
for key, val in kwargs.items(): | |
a.update({key:str(val)}) | |
print(a) | |
#4 Написать функцию, которая принимает список чисел и возвращает их произведение | |
def multi(*num): | |
a = 1 | |
for x in num: | |
if type(x) is int: | |
a = a * x | |
else: | |
raise ValueError('Неверный тип данных, допускаются только целые числа') | |
break | |
print(a) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment