Python小复习

#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,4
c=a+b
print(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
方法
----------------------------------------------------------------------
aaaa
bbb
----------------------------------------------------------------------
0.000123
0.00123
0.0123
0.123
1.23
12.3
123
----------------------------------------------------------------------
[4]
----------------------------------------------------------------------
网三的上级是:网络
计算机学院的子级是:['软件', '网络', '数据']
网三的祖先是['学校', '计算机学院', '网络']
学校的子孙是['网一', '网二', '网三', '软件', '网络', '数据', '商学院', '法学院', '电子学院', '外语学院', '计算机学院']
法学院的兄弟是['商学院', '电子学院', '外语学院', '计算机学院']


进程已结束,退出代码0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值