Python编程_Lesson003_字符串

来源:互联网 发布:linux shell 打印变量 编辑:程序博客网 时间:2024/05/17 23:34

编码格式

计算机是由美国人发明的,所以一开始只能显示英文字符串,是ASCII格式编码。后来由于全球各国都在使用计算机,又新出了Unicode编码格式。但是Unicode非常庞大,在本地运行还好,但是对于网络传输简直是太浪费空间了,所以又出现了utf(包括utf-8、utf-16、utf-32)编码格式。
现在一般是使用utf-8编码格式进行网络传输,然后到本机后再解析成Unicode编码,这样就完美的解决了编码带来的问题。
在Python中我们可以:
使用ord函数来获取一个字符的Unicode值;
使用chr函数来获一个Unicode值对应的字符;
这里写图片描述

在Python3.0以上版本中,会默认以Unicode编码,但是有的时候我们需要使用其他的编码格式,这有该如何做呢?请看下面的例子(注意不能是汉字,因为ASCII存放不下一个汉字)
这里写图片描述
我们看到前面有一个b,代表是byte的意思,里面的每一个字符只占一个字节。

我们在进行ASCII和Unicode编码间进行转换的时候,会出现下面的问题
这里写图片描述
这是因为一个byte存放不下一个汉字。

decode和encode之间的转换
这里写图片描述
虽然以上我们都称为字符串,但是存储的意义不一样,带b的字符串和不带b的字符串其实是两个不同的字符串。带b的字符串我们一般认为是bytes的字符串,它是以字节为单位,强调的是一个一个的字节;而不带b的字符串就是一个Unicode的字符串。
由于Python现在越来越接近底层的开发,所以就加上了b开头的字符串。
这里写图片描述
通过上面的例子可以更好的说明这两者的关系。

len函数用来统计字符串中字符的个数
这里写图片描述

下面的现象说奇怪也不奇怪,因为len函数可以根据存储类型来计算字符的格式。
这里写图片描述

bool类型
用于判断

比如下面的任务:
完成一个登陆系统,超过三次登陆失败,程序退出

count = 0;while (count < 3) :    name = input("Please Input UserName:")    pwd = input("Please Input PassWord:")    if (name == "root") and (pwd == "root"):        print("Login Success!")        break    else :        if (count < 2) :         print("Login Failed! And You Have ",2-count ,"times, Please Reload!")        else :            print("Login Failed! And You Have No Chance To Reload!")    count = count+1

这里写图片描述

原创粉丝点击