三级菜单
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
《林达看美国》