#usr/bin/python
#-*-coding:utf-8-*-
ss
='''
a,b=3,4
c=a+b
print(c)
'''
print(ss
)#执行存储在字符串中的Python代码
exec(ss
)#exec语句不会返回任何对象。而eval会返回表达式的值
print('----------------------------------------------------------------------')
date
=[i
for i
in range(1,
21)]
print(date
)
#list 分片处理 list[开始:结束:步长] list[开始:结束]=list
print(date
[14:8:-1])
date
[7:12]=99,
999,
9999
print(date
)
print('----------------------------------------------------------------------')
d1
={1,
2,
3,
4,
5,
6,
7}
d2
={2,
4,
7,
8,
-2}
print(d1
^d2
)
# & | - ^ 交 并 差 对称差集
print('----------------------------------------------------------------------')
kv
={'en':'勒戒',
'cn':'快乐'}
print(kv.values
())
print(kv.keys
())
print(kv.items
())
print(kv.get
('cn-00',
'无此说法'))
print('----------------------------------------------------------------------')
# f=lambda x,y,z:str(x)+str(y)+str(z)
def f(x,y,z
):
key
=x
v
=(y,z
)
return {key
:v
}
d
=('a',
'b',
'c')
z
=(4,
3,
7)
m
=('M',
'N',
'H')
# rs=zip(f,d,z)
rs
=map(f,d,z,m
)
print(list(rs
))
print('----------------------------------------------------------------------')
#函数 独立定义和调用
#方法 依赖定义和调用
def h():
print('函数')
class A:
def h(self):
print('方法')
h
()
# A().h()
a
=A
()
print(id(a
))
a.h
()
print('----------------------------------------------------------------------')
#变量的作用域 内置 全局 嵌套 局部
def a():
print('aaaa')
def b():
print('bbb')
return b
a
()()
print('----------------------------------------------------------------------')
#面向对象
class BTree:
root
=None
class Node:
data
=None
left
=None
right
=None
def zhongxu(self):
if self.left
is not None:
self.left.zhongxu
()
print(self.data
)
if self.right
is not None:
self.right.zhongxu
()
def add(self,node
):
if self.data
>node.data
:
if self.left
is None:
self.left
=node
else:
self.left.add
(node
)
if self.data
<node.data
:
if self.right
is None:
self.right
=node
else:
self.right.add
(node
)
def add(self, data
):
node
=self.Node
()
node.data
=data
if self.root
is None:
self.root
=node
else:
self.root.add
(node
)
def zhongxu(self):
self.root.zhongxu
()
if __name__
=='__main__':
btree
=BTree
()
btree.add
(123)
btree.add
(12.3)
btree.add
(1.23)
btree.add
(0.123)
btree.add
(0.0123)
btree.add
(0.00123)
btree.add
(0.000123)
btree.zhongxu
()
print('----------------------------------------------------------------------')
if __name__
=='__main__':
xiaohai
=[i
for i
in range(1,
11)]
count
=0
while True:
if len(xiaohai
)==1:
break
count
+=1
if count
%3==0:
xiaohai.pop
(0)
else:
xiaohai.append
(xiaohai.pop
(0))
print(xiaohai
)
print('----------------------------------------------------------------------')
'''
根据当前节点获取父节点
根据当前节点获取所有子节点
根据当前节点获取所有祖先节点
根据当前节点获取所有子孙节点
根据当前节点获取所有兄弟节点
js javascript
{
var n=10
var m=10;
function foo(a,b)
return a+b
}
'''
class Tree:
childToParent
=None
parentToChildren
=None
def add(self,parent,child
):
if self.childToParent
is None:
self.childToParent
={child
:parent
}
else:
self.childToParent
[child
]=parent
if self.parentToChildren
is None:
self.parentToChildren
={parent
:[]}
children
=self.parentToChildren.get
(parent,
[])
if len(children
)==0:
self.parentToChildren
[parent
]=children
children.append
(child
)
def getParent(self,child
):
return self.childToParent.get
(child,
'没有父亲的节点')
def getChildren(self,parent
):
return self.parentToChildren.get
(parent,
'没下级')
def getZuXian(self,zisun
):
'''
思想就是递归问爹
1.获取上一级getParent
2.让上一级返回的数据执行 getParent 一次执行直到没有上一级 终止
:param zisun:
:return:
'''
parent
=self.getParent
(zisun
)
if parent
is None:
return []
zupu
=self.getZuXian
(parent
)
zupu.append
(parent
)
return zupu
def zisun(self,zs,zu
):
'''
1. 得到当前节点的孩子
2.遍历当前节点的孩子,每一个孩子得到他们的孩子
:param zs:
:param zu:
:return:
'''
children
=self.getChildren
(zu
)
if children
== '没下级':
return
for c
in children
:
self.zisun
(zs,c
)
zs.extend
(children
)
def getSibiling(self,s
):
parent
=self.getParent
(s
)
children
=self.getChildren
(parent
)
children.remove
(s
)
return children
if __name__
=='__main__':
tree
=Tree
()
tree.add
(None,
'学校')
tree.add
('学校',
'商学院')
tree.add
('学校',
'法学院')
tree.add
('学校',
'电子学院')
tree.add
('学校',
'外语学院')
tree.add
('学校',
'计算机学院')
tree.add
('计算机学院',
'软件')
tree.add
('计算机学院',
'网络')
tree.add
('计算机学院',
'数据')
tree.add
('网络',
'网一')
tree.add
('网络',
'网二')
tree.add
('网络',
'网三')
child
='网三'
parent
=tree.getParent
(child
)
print('{1}的上级是:{0}'.format
(parent,child
))
parent
= "计算机学院"
children
= tree.getChildren
(parent
)
print("{0}的子级是:{1}".format
(parent,children
))
zisun
='网三'
zuxian
=tree.getZuXian
(zisun
)
print('{0}的祖先是{1}'.format
(zisun,zuxian
))
zu
='学校'
zs
=[]
tree.zisun
(zs,zu
)
print('{0}的子孙是{1}'.format
(zu, zs
))
sibling
='法学院'
rs
=tree.getSibiling
(sibling
)
print('{0}的兄弟是{1}'.format
(sibling,rs
))
a,b=3,4c=a+bprint(c)7----------------------------------------------------------------------[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][15, 14, 13, 12, 11, 10][1, 2, 3, 4, 5, 6, 7, 99, 999, 9999, 13, 14, 15, 16, 17, 18, 19, 20]----------------------------------------------------------------------{1, 3, 5, 6, 8, -2}----------------------------------------------------------------------dict_values(['勒戒', '快乐'])dict_keys(['en', 'cn'])dict_items([('en', '勒戒'), ('cn', '快乐')])无此说法----------------------------------------------------------------------[{'a': (4, 'M')}, {'b': (3, 'N')}, {'c': (7, 'H')}]----------------------------------------------------------------------函数42020048方法----------------------------------------------------------------------aaaabbb----------------------------------------------------------------------0.0001230.001230.01230.1231.2312.3123----------------------------------------------------------------------[4]----------------------------------------------------------------------网三的上级是:网络计算机学院的子级是:['软件', '网络', '数据']网三的祖先是['学校', '计算机学院', '网络']学校的子孙是['网一', '网二', '网三', '软件', '网络', '数据', '商学院', '法学院', '电子学院', '外语学院', '计算机学院']法学院的兄弟是['商学院', '电子学院', '外语学院', '计算机学院']进程已结束,退出代码0