Skip to content

Instantly share code, notes, and snippets.

@simplesasha
Created March 28, 2018 23:43
Show Gist options
  • Save simplesasha/66ed289d8d0b75128f21ee7bc5288e0d to your computer and use it in GitHub Desktop.
Save simplesasha/66ed289d8d0b75128f21ee7bc5288e0d to your computer and use it in GitHub Desktop.
Some work with functions
#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