def sign(x):
"""
Вернуть знак числа
"""
if x > 0:
y = 1
elif x < 0:
y = -1
else:
y = 0
return y
help(sign)
sign?
print(sign(-10), sign(0), sign(100))
sign() #
def list_max(L):
maxim = -99999
for i in range(len(L)):
if L[i-1]>maxim:
maxim = L[i-1]
return maxim
L = [1,2,9,5,2,19,5,7]
print(list_max(L))
max(3,8,-3,12,9)
a = [8,-11,4,2,-5]
max(a,key=abs)
def dict_getitem(d, key, default=None):
"""
Вернуть из словаря 'd' элемент с заданным ключем 'key'
Если элемента с таким ключом нет в словаре, то вернуть 'default'.
"""
if key in d:
return d[key]
else:
return default
d = {'a':1, 'b':2, 'c':3}
print(dict_getitem(d, 'e'))
print(dict_getitem(d, 'e', 'no'))
print(dict_getitem(d, 'e', default='no'))
def max_negative(L):
minim = -99999
for i in range(len(L)):
if L[i-1]>minim:
if L[i-1]<0:
minim = L[i-1]
if minim == -99999:
return "none"
else:
return minim
print (list_max(L))
print (max_negative(L))
L = [1,2,9,5,2,-19,5,7]
print(max_negative(L))
class Node: #(object):
#
def __init__(self, label, value):
self.label = label
self.value = value
#
def __repr__(self):
return "Node(%r,%r)" % (self.label, self.value)
#
def update_value(self, val):
self.value = val
#
#
#
repr(Node)
nd1 = Node('a', 1.0)
print (nd1)
nd2 = eval(repr(nd1))
print (nd2)
nd1.update_value(-1.0)
print (nd1)
vars(nd1)
Задача. Расширить класс Node, добавив в него дочерние узлы. Для этого используем атрибут 'children'. Определить метод 'append'для добавления в список дочерних узлов заданного узла. Определить метод 'delete' для удаления дочернего узла с индексом 'i'.
class NestedNode: #(object):
#
def __init__(self, label, value, children):
self.label = label
self.value = value
self.children = children
children = []
#
def __repr__(self):
return "NestedNode(%r,%r,%r)" % (self.label, self.value, self.children)
#
def update_value(self, val):
self.value = val
#
def append (self, child):
self.children.append(child)
#
def delete (self, i):
self.children.pop(i)
#
#
#
repr(NestedNode)
nd1 = NestedNode ('a', 1.0, [])
print (nd1)
nd2 = NestedNode('a', 2.0, [])
print (nd2)
nd3 = NestedNode('a', 3.0, [])
print (nd3)
nd3.append (nd2)
print (nd3)
nd3.delete (0)
print (nd3)