#-----三次登录实验-----
 memu = {
"陕西":{
"西安市":{
"新城区":["大明宫遗址","含元殿遗址","八路军办事处"],
"碑林区":["安碑林博物馆","明城墙","小雁塔" ],
"莲湖区":["钟鼓楼","明城墙","西安都城隍庙""西安清真大寺"],
"雁塔区":["秦二世胡亥墓","大兴善寺","大雁塔","曲江池","陕西历史博物馆"],
"未央区":["秦阿房宫","汉未央宫","唐大明宫"],
"蓝田":["华胥故里","水陆庵","王顺山","汤峪","蓝田人遗址"]
},
"汉中市":{
"南郑":["红寺湖风景区","黎平国家森林公园","汉山广场"],
"城固":["张骞纪念馆","南沙湖风景区","桔园景区"],
"洋县":["开元舍利塔"],
"佛坪":["大坪屿风景区","佛坪县自然保护区"]
}
},
"重庆市":{
"渝中区":["解放碑","朝天门","洪崖洞","若瑟堂"],
"万州区":["万州大瀑布","青龙瀑布","天生城","铁峰山国家森林公园"],
"涪陵区":["白鹤梁","大木花谷","武陵山大裂谷","816核军工洞"],
"大渡口":["小南海温泉","中华美德公园","金色蛋糕梦幻王国"],
"江北区":["观音桥","铁山坪森林公园","金源方特科幻公园"]
}
}
 current_layer = memu
parent_layer = []
while True:
for key in current_layer:
print(key)
choice = input(">>>:").strip()
if len(choice) == 0 : continue
if choice in current_layer:
parent_layer.append(current_layer)
try:
if current_layer[choice]:
current_layer = current_layer[choice]
except Exception:
print("输入错误,请重新输入!".center(50,'-'))
continue
elif choice == 'b':
try:
if current_layer:
current_layer = parent_layer.pop()
except Exception:
print("已返回首页目录".center(50,'-')) else:
print("无此项目")
#-----字符编码-----

#-----中国字符编码发展-----
ASCII :只能存英文和拉丁字符,一个字符占一个字符,8位
GB2312:GB 2312 标准共收录 6763 个汉字
GBK:GBK 共收入 21886 个汉字和图形符号
GB18030:GB 18030 与 GB 2312-1980 和 GBK 兼容,共收录汉字70244个 unicode:utf-32:一个字符占4个字节
unicode:utf-16:一个字符占2个字节或2个以上
unicode:utf-8:一个英文用ASCII码来存储,一个中文占3个字节
#-----in python2-----
UTF-8 --decode-->Unicode--encode-->GBK
GBK--decode-->Unicode--encode-->UTF-8 #测试环境为python2,在Windows 客户端(GBK编码)运行
 a = "棒极了"
gbk_to_unicode = a.decode("utf-8")
print(a) #妫掓瀬浜
utf8_to_unicode = gbk_to_unicode.encode("gbk")
print(gbk_to_unicode) #棒极了
print(utf8_to_unicode)#棒极了
#-----in python3 -----
字符默认编码Unicode ,文件默认编码UTF-8
encode 在编码同时,会把数据转成bytes 类型
decode 在解码同时,会把数据转成字符串
b = byte = 字符类型= [0-255]
												

第一部分day4-三次登录实验、字符编码的更多相关文章

  1. 第三篇:Python字符编码

    一 .了解字符编码的知识储备 1计算机基础知识 1.2文本编辑器存取文件的原理(nodepat++,Pycharm,word) #.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...

  2. python第三天基础之字符编码

    一 了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...

  3. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  4. JAVA字符编码三:Java应用中的编码问题

    第三篇:JAVA字符编码系列三:Java应用中的编码问题 这部分采用重用机制,引用一篇文章来完整本部分目标. 来源:  Eceel东西在线 问题研究--字符集编码  地址:http://china.e ...

  5. 不想再被鄙视?那就看进来! 一文搞懂Python2字符编码

    程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广,作为一个Python程序员,自然最关心的是下面这幅图啦 我们项目组一值使用 ...

  6. Python2字符编码问题汇总

    目录 从字符编码说起 unicode与utf-8 当编解码遇上Python2.x unicode 与 str 区别 __str__ __repr__的区别 unicode str utf-8关系 un ...

  7. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  8. 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...

  9. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

随机推荐

  1. 高效Redis工具类

    一.引言 本篇博客以redis缓存为主.至于什么是redis缓存?还有没有其它的缓存?哪个缓存的性能会更好?这里就不一一做介绍了!(有兴趣的可以自己去百度一下) 在日常的开发中,我们或多或少(必须)的 ...

  2. testcontainers 方便的db测试框架

    testcontainers是一个强大,简单,基于容器的db测试解决方案 目前已经支持了主流的开发语言 参考资料 https://github.com/testcontainers/testconta ...

  3. linux pkgsrc 学习(一) 安装pkgsrc

    使用pkgsrc.joyent.com 提供的linux 包 下载包 # # Copy and paste the lines below to install the 64-bit EL 7.x s ...

  4. 6.Go-错误,defer,panic和recover

    6.1.错误 Go语言中使用builtin包下error接口作为错误类型 Go语言中错误都作为方法/函数的返回值 自定义错误类型 //Learn_Go/main.go package main imp ...

  5. Xamarin.Forms移动开发系列1:介绍和安装

    摘要 Xamarin成立于2011年5月16日.Xamarin 是一套基于C#语言的跨平台移动应用开发工具,2016年2月24日被微软正式收购. 前言 很早就已经听说强大的.NET生态中有一个移动开发 ...

  6. 清北学堂(2019 5 2) part 5

    今天讲图论,顺便搞一搞之前没弄完的前向星dij 1.图的基本概念(课件原话): G (图)= (V(点); E(边)) 一般来说,图的存储难度主要在记录边的信息 无向图的存储中,只需要将一条无向边拆成 ...

  7. Python-lambda使用

    什么是lambda 匿名函数,不需要命名的函数: 语法 lambda 参数 : 返回值 g = lambda x: 2*x+1 g(2) >5

  8. EFCore代码实践

    参考:https://www.cnblogs.com/Wddpct/p/6835574.html 控制台程序依赖注入参考:https://www.cnblogs.com/Wddpct/p/721920 ...

  9. 基于Kafka的实时计算引擎如何选择?Flink or Spark?

    1.前言 目前实时计算的业务场景越来越多,实时计算引擎技术及生态也越来越成熟.以Flink和Spark为首的实时计算引擎,成为实时计算场景的重点考虑对象.那么,今天就来聊一聊基于Kafka的实时计算引 ...

  10. Qt Quick 组件与动态对象

    博客24## 一.Components(组件) Component 是由 Qt 框架或开发者封装好的.只暴露了必要接口的 QML 类型,可以重复利用.一个 QML 组件就像一个黑盒子,它通过属性.信号 ...