-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnumber_radix.py
28 lines (25 loc) · 1.63 KB
/
number_radix.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""
Дано положительное число как строка и основание системы счисления для него.
Ваша функция должна конвертировать это число в десятичную систему счисления.
Основание системы счисления меньше 37 и больше 1. В задаче используются цифры
и буквы A-Z внутри строчного представления числа.
Будьте осторожны со случаями, когда число нельзя сконвертировать.
Для примера: "1A" не может быть сконвертировано при основании системы
счисления 9. В этих случаях ваша функция должна возвращать -1.
Вх. данные: Два аргумента. Число как строка (str) и основание системы
счисления как целочисленное (int).
Вых. данные: Сконвертированное число как целочисленное (int).
"""
def checkio(str_number, radix=10):
try:
return int(str_number, base=radix)
except ValueError:
return -1
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("AF", 16) == 175, "Hex"
assert checkio("101", 2) == 5, "Bin"
assert checkio("101", 5) == 26, "5 base"
assert checkio("Z", 36) == 35, "Z base"
assert checkio("AB", 10) == -1, "B > A > 10"