python-第一块,笔记整理和学习内容复习(day4 - day5 - day6)

DAY4

学习内容

  今天主要还是学习字典和集合的操作。根据这几天的学习写了第一次的作业--三级菜单

city_info = {
    '湖北':{'武汉':['武昌','汉口','汉阳'],'黄冈':['蕲春','罗田','英山','黄梅'],'荆州':['公安','石首','沙市']},
    '安徽':{'合肥':['肥西','庐阳','蜀山'],'芜湖':['三山','鸠江','镜湖','弋江'],'安庆':['桐城','潜山','太湖']},
    '江苏':{'南京':['建邺','雨花台','秦淮'],'苏州':['吴中','相城','平江','沧浪'],'无锡':['梁溪','滨湖','锡山']}
}

def open_meau:
exit_flag = False
while not exit_flag:
    for i in city_info:
        print(i)
    choose1 = input("please input your choosen1>>> ")
    if choose1 in city_info:
        while not exit_flag:
            for j in city_info[choose1]:
                print("\t",j)
            choose2 = input("please input your choosen2>>> ")
            if choose2 in city_info[choose1]:
                #while True:
                for k in city_info[choose1][choose2]:
                    print("\t\t",k)
                choose_exit = input("This is the bottom,b to return to a layer>>>")
                if choose_exit == "b":
                    pass
                elif choose_exit =="q":
                    exit_flag = True
            elif choose2 == "b":
                break
            elif choose2 == "q":
                exit_flag = True
            else:
                print("your input was wrong,please input again")
    elif choose1 == "q":
        exit_flag = True
    else:
        print("your input was wrong,please input again")

 

  随后更新了最新版

import yaml                         #导入yaml模块
f = open('city_info',"rb")
dict_city = yaml.load(f)            #利用yaml模块将城市信息文件转为多级字典
f.close()

exit_flag = False                   #定义程序退出信息
while not exit_flag:
    for i in dict_city:             #打印第一级城市信息
        print(i)
    choose1 = input("please input your choosen1>>> ")           #输入第二层城市选择
    if choose1 in dict_city:
        while not exit_flag:
            for j in dict_city[choose1]:                          #打印第二层城市信息
                print("\t",j)
            choose2 = input("please input your choosen2>>> ")   #输入第三层城市选择
            if choose2 in dict_city[choose1]:
                while not exit_flag:
                    for k in dict_city[choose1][choose2]:         #打印第三层城市信息
                        print("\t\t",k)
                    choose3 =input("please input your choosen3>>> ")    #输入第四层城市信息选择
                    if choose3 in dict_city[choose1][choose2]:
                        for m in dict_city[choose1][choose2][choose3]:     #打印第四层城市信息
                            print("\t\t\t",m)
                        choose_exit = input("This is the bottom,b to return to a layer>>>")  #打印菜单最底层信息
                        if choose_exit == "b":                             #返回上一层
                            pass
                        elif choose_exit =="q":                            #退出程序
                            exit_flag = True
                    elif choose3 =="b":                                    #返回上一层
                        break
                    elif choose3 =="q":                                    #退出程序
                        exit_flag = True
                    else:
                        print("your input was wrong,please input again")
            elif choose2 == "b":                                           #返回上一层
                break
            elif choose2 == "q":                                           #退出程序
                exit_flag = True
            else:
                print("your input was wrong,please input again")
    elif choose1 == "q":                                                   #退出程序
        exit_flag = True
    else:
        print("your input was wrong,please input again")                #输入信息有误

笔记

  集合

    1、    .isdisjoint()    #判断有无交集

    2、    .add()   #添加一项

           .updata[]   #添加多项

    3、    .remove("  ")    #删除

       .discard("  ")     #如果删除值不在,返回none 不会报错

       .pop(  )             #随机删除

list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])
print(list_1,list_2,type(list_1))

#交集
list_1.intersection(list_2)
print(list_1.intersection(list_2))
print(list_1 & list_2)
print("---------------------")
#并集
print(list_1.union(list_2))
print(list_1 | list_2)
print("---------------------")
#差集
print(list_1.difference(list_2))
print(list_1 - list_2)
print(list_2.difference(list_1))
print(list_2 - list_1)
print("---------------------")
#对称差集
print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)
print("---------------------")
#子集
print(list_1.issubset(list_2))
print(list_1.issuperset(list_2)) 

 

DAY5

学习内容

  今天学习的主要是函数,写了一系列代码

def func1():
     print("This is the func1")
     return 0

def func2():
     print("This is the func2")

def func3():
     print("This is the func3")
     return 1,"hubei",["wa","jionu"],{"name":"zd"}
x=func1()
y=func2()
z=func3()
print(x)
print(y)
print(z)

全局变量和局部变量
 school = "武汉轻工大学"

 def change_name(name):
     global school
     school = "湖北大学"
     print(name,school)

change_name('董政宽')

递归
def clu(number):
    if int(number/2)>0:
        print(number)
        return clu(int(number/2))

clu(10)

 

DAY6

学习内容

  今天学习了文件的一系列操作,有文件的读、写、追加等,详见代码

  文件的读

f = open("today1","r+",encoding="utf-8")
#list_f = f.readlines()
#print(list_f)

print(f.readline())
print(f.readline())
f.write("\n我爱北京天安门")
f.write("\n北京天安门最伟大")
f.flush()
f.write("\n你好")


for line in f.readlines():
    print(line.strip())
for index,line in enumerate(f.readlines()):  #不好的写法,只适于小文件,大文件不适用
    if index == 1:
        print("----------------")
    print(line.strip())

count = 0
for line in f:
    if count == 2:
        print("--------------")
        count +=1
    print(line.strip()) #高逼格写法,读一行,存一行
    count += 1

 

  文件的修改

f = open("today1","r",encoding="utf-8")
f_new = open("today1_new","w",encoding="utf-8")

for line in f:
    if "你好"in line:
        line = line.replace("你好","hello world")
    f_new.write(line)

f.close()
f_new.close()              #修改文件代码

笔记

  1、读  f = open("文件名","r")

     f.read

  2、写 f = open("文件名","w")

     f.write("内容,\n")

  3、关闭 f.close()

  4、读一行 f.readline()

  5、读出列表 f.readlines()

  6、r+:读写模式

    a:追加模式

    a+:追加读

    w+:写读,先创建文件再写

  7、f.tell()    #改变光标的位子

  8、f.seek()    #光标回到某个位子,默认是0

  9、f.flush()   #实时刷新

  10、f.truncate()    #不写,文件清空;写,从写的位子截断

  11、with open("文件名") as f:    #打开不用关闭,自动随程序关闭保存,可同时打开多个文件。

 

编码

  python2.7 默认解码是bytes

  python3.0 默认解码是unicode

  unciode 万国编码,包含utf-8和gbk等

    utf-8 可变长的编码扩展集,所以英文按ASCII存储占一个字节;所以中文占3个字节

 

posted @ 2017-05-09 21:17  清霜半落沙痕浅  阅读(142)  评论(0编辑  收藏  举报