zoukankan      html  css  js  c++  java
  • day3学python 字典+列表集合+文件读取

    字典+列表集合+文件读取

    字典示例

    ************************ 各地食品的三级菜单*************************

    1.使用字典嵌套字典

    2.采用死循环思路

    3.对字典 循环打印 只可得第一级的key

    4.for i in <范围>     //python的for循环实在与其他不同。  i 可为任意类型 不给参数限定 即会遍历范围

    place={
        "华北":{
            "北京市":"北京烤鸭",
            "天津市":"锅巴",
            "河北省":"驴肉火烧",
        },
        "中南":{
            "广东省":"早茶",
            "河南省":"胡辣汤",
            "湖北省":"热干面",
        },
        "华东":{
            "上海市":"小笼包",
            "江苏省":"锅盖面",
            "浙江省":"西湖醋鱼"
        },
        "西南":{
            "四川省":"担担面",
            "云南省":"汽锅鸡",
            "贵州省":"茅台酒"
        }
    }
    while True:
        for i in place:
            print(i)
        choice1=input("choose area or press B for back")
        if choice1 in place:
            while True:
                for j in place[choice1]:
                  print('	',j)
                choice2=input("choose province or press B for back")
                if choice2 in place[choice1]:
                    print('		',place[choice1][choice2])
                elif choice2=='B'or choice2=='b':
                    break
                else:
                    print("put in wrong!")
                while True:
                     choice3 = input("press B for back or Q for exit")
                     if choice3=='B'or choice3=='b':
                        break
                     elif choice3=='q'or choice3=='Q':
                         exit(0)
        elif choice1 == 'B' or choice1 == 'b':
            break
        else:
            print("put in wrong!")


    ======================================================================================
    集合
    #交集 A∩B
    print(list_3.intersection(list_4))
    print(list_3&list_4)
    
    #并集 A∪B
    print(list_3.union(list_4))
    print(list_3|list_4)
    
    #差集 A-B
    print(list_3.difference(list_4))
    print(list_3-list_4)
    
    #对称查缉A⊕B=A∪B-A∩B
    print(list_3.symmetric_difference(list_4))
    print(list_3^list_4)
    
    #A是否是B的子集
    list_5=set([1,2,4])
    print(list_5.issubset(list_3))
    
    #
    list_3.add("x")
    list_4.update([33,3,2])
    print(list_3)
    #
    list_3.remove(2)    #只能删除集合中存在的东西 不存在会报错
    list_3.discard(44)  #不存在不会报错
    
    
    #查 (列表 集合 字符串都用这种方法)
    "x"in list_3

    ==============================================================================
    文件
    w只读是新创一个文件覆盖
    
    
    # 文件句柄   
    # open("打开文件目录",'w(只写)r(只读)a(add在后增加不能读)r+(读写-可读再追加)w+(写读)',encoding="utf-8")
    f=open("actor",'r+',encoding="utf-8")
    
    
    # 不用最后close()文件
    with open("actor",'r+',encoding="utf-8") as f:
        #函数体 无需写f.close()
    
    
    
    #二进制文件的读rb 写wb
    f=open("actor",'wb')
    f.write("hello binary".encode("utf-8"))
    
    
    #读文件
    f.read()    #全部读出
    f.readline()    #按行读出
    
    
    #低级读文件(将文件放于全内存中 只适用于小文件没用)
    
    for index,readline in enumerate(f.readlines()):
        if index % 9==0:
            print("=================")
        print(readline)
    
    
    #高级读文件(效率最高 优先运用 有用)
    
    count=0
    for line in f:
        if count%9==0:
            print("===========")
            count+=1
            continue
        print(line)
        count+=1
    
    # read后 光标位置置于最后 再read时将无法读到东西
    f.tell()  #输出光标位置
    
    f.seek(0)   #改变光标位置到0
    
    #truncate()文件清空 
    f.truncate(10)  #只读保留前10位的内容 其他清空
    
    
    import sys,time
    for i in range(20):      #flush()刷新内存区
        sys.stdout.write("#")
        sys.stdout.flush()
        time.sleep(0.3)
    
    
    #文件修改
    f=open("actor",'r',encoding="utf-8")
    f_new=open("actor_1",'w',encoding="utf-8")
    
    for line in f:
        if "薛之谦" in line:
            line=line.replace("薛之谦","cf")
        f_new.write(line)
    f.close()
    f_new.close()



  • 相关阅读:
    面向对象三大特性:封装,继承,多态(三、多态的进一步讲解)
    面向对象三大特性:封装,继承,多态(二、多态)
    面向对象三大特性:封装,继承,多态(一,封装和继承)
    zookeeper+dubbo+demo
    Eclipse常见版本和JDK常用版本对应关系
    Navicat 连接MySQL 8.0.11 出现2059错误
    Neo4j elk Elasticsearch kibana kettle
    jvm垃圾回收机制GC
    jvm 这我就能会了 擦
    spring的4种事务特性,4种隔离级别,7种传播行为
  • 原文地址:https://www.cnblogs.com/cc123nice/p/10459347.html
Copyright © 2011-2022 走看看