Python之路,day3-Python基础
三级菜单
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
《林达看美国》