zoukankan      html  css  js  c++  java
  • Python之路,day3Python基础

    三级菜单

     1 menu = {
     2     '北京':{
     3         '海淀':{
     4             '五道口':{
     5                 'soho':{},
     6                 '网易':{},
     7                 'google':{}
     8             },
     9             '中关村':{
    10                 '爱奇艺':{},
    11                 '汽车之家':{},
    12                 'youku':{},
    13             },
    14             '上地':{
    15                 '百度':{},
    16             },
    17         },
    18         '昌平':{
    19             '沙河':{
    20                 '老男孩':{},
    21                 '北航':{},
    22             },
    23             '天通苑':{},
    24             '回龙观':{},
    25         },
    26         '朝阳':{},
    27         '东城':{},
    28     },
    29     '上海':{
    30         '闵行':{
    31             "人民广场":{
    32                 '炸鸡店':{}
    33             }
    34         },
    35         '闸北':{
    36             '火车战':{
    37                 '携程':{}
    38             }
    39         },
    40         '浦东':{},
    41     },
    42     '山东':{},
    43 }
    44 
    45 current_level = menu
    46 last_levels = []
    47 
    48 
    49 while True:
    50     for key in current_level:
    51         print(key)
    52     city = input('').strip()
    53     if len(city) == 0:continue
    54     if city == 'b':
    55         if len(last_levels) == 0:break
    56         current_level = last_levels[-1]
    57         last_levels.pop()
    58     if city == 'q':
    59         break
    60 
    61     if city not in current_level:continue
    62     last_levels.append(current_level)
    63     current_level = current_level[city]



    1.字典

    字典 key:value

    #元组,元素不可变
    l = ()
    #定义符号(),与列表完全一致,唯一不同的是元组内元素不可变
    #





    dic = {'name':'alex','age':18}

    #查询
    #取值两种方法
    print(dic['name'])
    print(dic.get('name'))

    #增加
    dic['ggg']='x' #k:v
    print(dic)
    #元素是
    #无序的

    #修改
    dic['name']='hjhjj'


    #删除
    del dic['name']
    print(dic)

    #字典的key不可变,value可变
    #key类型
    #key的定义规则:1.不可变,定义一个数据,然后改变数据,id是否改变,id改变为不可变类型,id不改变为可变类型。#数字,字符串,元组不可变,(列表,字典可变)。
    # 2.只要能哈希hash,就能当key,hash有数就表明可以定义为key
    #3.字典中key是唯一的
    #value类型
    #value定义规则:任意类型

    #dic={}---->dict()---->_init_()
    dic3=dict() #dic={}
    print(dic3)
    dic4=dict(name='alex',age=18)#dic = {'name':'alex','age':18}
    print(dic4)
    dic5=dict({'name':'alex','age':18})
    dic6=dict((('name','alex'),('age',18)))


    dic = {'name':'alex','age':18}
    #dic.clear()
    #print(dic)

    dic1=dic.copy()
    print(dic1)

    import copy
    #等于
    #copy 浅copy
    copy.deepcopy


    dic2=dict.fromkeys('hello',1)
    print(dic2)

    dic.get('name')#dic['name']
    print(dic.items())

    print(dic.keys())
    print(dic)
    dic.pop('name')#删除

    dic.popitem()#随机删除

    dic.setdefault('gender',[])#增加

    dic1={'gender':'male'}
    dic.update(dic1)#更新

    dic.values()#取字典的value

    data = dict.fromkeys([1,2,3],'alex')
    print(data)

    2.集合
    #关系运算
    #集合中都是不同的元素,不可重复
    s1 = {'a',1,2,3,3,3,3}
    s2 = {2,3}
    print(s1)

    a = {1,2,3,4,6,9}
    b = {2,4,9,8,7,5}
    #求和,交集
    print(a&b)
    print(a.intersection(b))
    #并集
    print(a|b)
    print(a.union(b))

    #差集 ,去掉b中与a相同的元素
    print(a-b)
    print(a.difference(b))

    #对称差集,不同的部分
    print(a^b)
    print(a.symmetric_difference(b))

    #子集
    print(s1<=s2)
    print(s2<=s1)
    print(s1.issubset(s2))
    print(s2.issubset(s1))

    #父集
    print(s1>=s2)
    print(s1.issuperset(s2))

    ####集合取值
    s3 = {1,2,3,'a'}
    print('a' in s3)
    for i in s3:
    print(i)
    ####元组用途
    t1= (1,2,3)

    集合的其他内置方法
    s1 = {1,2,3}
    s1.update('e')
    s1.update((1,2,3,4))
    s2= {'h','e'}


    s1.update(s2)
    s1.update('hello')
    print(s1)

    #增加
    s1.add('hello')
    print(s1)

    #删除
    s1.pop()#随机删除
    print(s1)

    #指定删除
    s1.remove('l')
    print(s1)

    #删除,返回值为空,元素不存在,不报错
    print(s1.discard('w'))
    print(s1)


    s1 = {1,2,3,'a','e'}
    s2={1,2,3}
    s1.difference_update(s2)
    print(s1)

    s1.isdisjoint()
    3.文件处理
    #-*- coding:utf-8 -*-
    print(open('test.txt').read())

    #read,r:读模式
    #w:创建写模式
    f = open('myfile','w')

    #a:增加模式

    #删除模式

    #r+;读写模式,追加到最后
    #w+:写读,清空创建,再写入
    #a+:追加读,追加到最后

    f.closed #检查文件是否关闭
    f.encoding#打印文件编码格式
    f.fileno()#文件在操作系统中的索引值
    f.flush()#实时强制刷新文件(保存)
    f.isatty()#判断是不是终端文件
    f.name#打印文件名
    f.newlines#
    f.readable()#是否为不可读文件
    f.seek()#寻找,移动光标到指定位置
    f.seek(10)#从第十个字段开始读
    f.tell()#告诉你光标在文件中的位置
    f.truncate()#截断,从光标的位置截断
    data = ['alex\n','jack\n']
    f.writelines(data)#将列表按行插入文件
    #eval(data)将字符串转为字典


    4.字符编码

    高电压:1
    低电压:0

    计算机只认识数字

    字符 ------翻译------》 数字
    a------11

    1.内存固定使用unicode编码,硬盘的编码(即你可以修改的软件编码)
    2.使用什么编码往硬盘存,就用什么编码读
    3。程序运行分两河阶段:1.从硬盘读到内存2.python解释器运行已读到内存的代码
    4.针对一个test.py文件来说python与nodpad++\vimde区别是多了第二步骤
    5.头部编码类型,决定内存从硬盘怎么读

    分享

    《消费者行为学》
    5分钟商学院 app:得到

    lib兄弟连 php
    戏说php

    《林达看美国》



     
     
  • 相关阅读:
    NIO单一长连接——dubbo通信模型实现
    小谈网络游戏同步
    网络游戏同步问题综述
    TortoiseSVN客户端重新设置用户名和密码
    SVN服务器搭建和使用(三)
    SVN服务器搭建和使用(二)
    SVN服务器搭建和使用(一)
    Firefly 流程架构
    unity3d 手机震动
    Unity AssetBundle爬坑手记
  • 原文地址:https://www.cnblogs.com/heshaochuan/p/6009644.html
Copyright © 2011-2022 走看看