2021-10-10 Python-3

数据类型和变量

Python可以处理的数据包括:整数,浮点数,字符串,逻辑判断值/布尔值
(1)整数
python不仅可以处理十进制的数据,还可以处理二进制,以ox前缀表示16进制。
对于很大的数,可以用_表示位数,比如100_000
(2)浮点数
对于很小或者很大的浮点数,用e代表10,例如0.00005=5e-5
(3)字符串
用双引号或者单引号表示字符串,这里比较特殊的是转义字符。
转义字符是用\可以代替一些特殊用法。
比如\t为制表符
\代表在字符串中使用""
\n为换行符
如果字符串中单双引号均存在,可以用'表示字符串中的单引号或者"表示字符串中的双引号
如果想取消字符串中的转义符,可以使用r"xxx"(或者将双引号换成单引号均可)。
'''xxx'''表示在多行显示字符串

print('name\t age\t nation\t height\t weight\t')
print('name\n age\n nation\n height\n weight\n')
print('name\\age\\nation')
print("that's \''good\"")
print("\\\n\\")
print(r"\\\n\\")
print('''xxx
xxx
xxx"')

(4)逻辑值
逻辑值包括True,False两种,并且还可以进行运算(and or not 逻辑运算 )

In : 3>2
Out : True
In : True and True
Out : True
In :False or True
Out : True
In : not 1>2
Out : True

if age > 18:
    print('adult')
else :
    print('teenager')

(5)空值
NONE表示空值,但是并不等于0

字符和编码问题

计算机只能处理数字,无法处理文本。因此需要将文本转化问数字处理。8个bit作为1个bytes,因此编码的最大的数就是11111111=255,数量超过了这个范围就需要更多的字节来存储。
最初存储所用的是ASCII码,只能编码127个字符,如果想编码其他语言的文字,就需要参照另外的编码体系。为了统一不同国家的语言,Unicode应运而生,解决了不同语言的文字可能会产生的乱码的问题。现在大多数的语言和软件都是支持Unicode编码的。
Unicode通常是用2个字节去编码,ASCII转换为Unicode只需要在前面加上1个字节的0即可。但是不管是一些简单的字符还是复杂的字符,都会占用2个bytes的空间,为了节约,把Unicode编码转化为了UTF-8编码。UTF-8使用2-6个字节去存储文本,大小根据文本的复杂程度调整。因此ASCII码也被包含在了UTF-8中。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。而Python在内存中是以Unicode存储,当读取到硬盘或者传输的时候,需要转化为bytes形式。如果string对应的bytes能以ASCII码显示,则输出原字符,否则以16进制表示。相反如果从网络上传输的bytes数据转成string形式,需要decode。
python是以Unicode编码的,支持多语言的文本。
了解几个函数ord(),chr(),string.encode()和string.decode()

In : "ABC".encode('ascii') 
Out : b'ABC' #b表示bytes格式,如果结果是ASCII码中对应的字符,则输出该字符,否则输出对应形式编码的16进制bytes
In : "你好".encode('utf-8')
Out : b'\xe4\xbd\xa0\xe5\xa5\xbd' #用utf-8编码的bytes形式,表示占用了6个字节
In : b'ABC'.decode('ascii')
Out : ABC
In : ord('a')  #将字符转换为编码的十进制整数
Out : 97 
In : type(ord('a'))
Out :int 
In : chr('65') #将整数转换为字符
Out : A

len()函数统计string的字符数/字节数(如果是bytes数据的话)。

len('ABC')
len(b'\xe4\xbd\xa0\xe5\xa5\xbd')

为了避免乱码的问题,在编写和保存Python脚本的时候需要用UTF-8格式,在脚本的开头需要写上:

# -*- coding:utf-8 -*-

表示以UTF-8的形式编码,不要包含BOM,因为BOM一般对微软有效,在其他系统上可能造成问题。标准的格式是UTF-8 without BOM。

参考资料:
字符串和编码 - 廖雪峰的官方网站 (liaoxuefeng.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容