美文网首页
【10.24】Python语法练习4/17

【10.24】Python语法练习4/17

作者: 零壹問答 | 来源:发表于2019-10-24 21:12 被阅读0次

今日任务:字符串与编码

一、字符串
字符串是一种数据类型,但是字符串存在编码问题,因为计算机处理文本必须把文本转化为数字才能处理。
最早只有127个字符被编码到计算机,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。

中国制定了GB2312把中文编进去

Unicode编码把所有语言都统一到一套编码里。

ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。为了解决Unicode编码在英文中存在的浪费问题,出现了把Unicode编码转化为“可变长编码”的UTF-8编码,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字符被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节,如果要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:


中英文字符串的三种编码

从上面表格中可以发现,UTF-8编码有个好处是,ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

总结一下现在计算机系统通用的字符编码工作方式:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或需要传输的时候,转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:


编辑文件时Unicode编码与UTF-8编码转换

浏览网页时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:


浏览网页时编码转换

二、Python的字符串
最新的Python 3 版本中,字符串是以Unicode编码的,意味着Python字符串支持多语言,对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
由于python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节。如果在网络传输或保存到磁盘上,需要把srt变为以字节为单位的bytes。
以Unicode表示的str通过encode()方法可以编码为制定的bytes,需要把bytes变为str,需要用decode()方法。
计算str包含多少个字符,可以用len()函数。
在操作字符串时,为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。
由于python源代码也是一个文本文件,所以,当源代码中包含中文的时候,在保存源代码时,务必指定保存为UTF-8编码。当python解释器读取源代码时,为了让它按照UTF-8编码读取,我们通常在文件开头写上这两行:

!/usr/bin/env python3

-- coding: utf-8 --

第一行注释是为了告诉Linux/OS X系统,这是一个python可执行程序,windows系统灰灰列这个注释;
第二行注释是为了告诉python解释器,按照UTF-8编码读取源代码,否则,源代码中写的中文输出可能会有乱码。
同时,必须确保文本编辑器正是用UTF-8 without BOM编码,才能确保.py文件是UTF-8编码的。

三、格式化
如何输出格式化的字符串,经常会输出类似‘亲爱的XXX你好!你XX月的花费是XX,余额是XX’之类的字符串,XXX内容都是根据变量变化的,所以需要一种简便的格式化字符串的方式。

python中,采用的格式化方式和C语言是一致的,用%运算符格式化字符串,%s表示用字符串替换,%d表示用证书替换,有几个%?占位符,后面就跟几个变量或值,顺序要对应好,如果只有一个%?,括号可以省略。
常见的占位符有:


常见占位符

%s会把任何数据类型转化为字符串,如果字符串里%是一个普通字符,需要用%%来转义%。

相关文章

  • 【10.24】Python语法练习4/17

    今日任务:字符串与编码 一、字符串字符串是一种数据类型,但是字符串存在编码问题,因为计算机处理文本必须把文本转化为...

  • python django开发教程 & 机器学习

    title: python语法练习 参考阮一峰等多个文件用来练习python基本语法 [TOC] import文件...

  • 【10.29】Python语法练习7/17

    任务:掌握文件与文件系统 open()将会返回一个file对象,基本语法格式如下:open(filename, m...

  • 【10.25】Python语法练习5/17

    学习任务:函数与 Lambda 表达式 一、函数Python中,定义函数要使用def语句,依次写出函数名、括号、括...

  • 【10.20】Python语法练习1/17

    今日任务:掌握变量、运算符与数据类型 python语法采用缩进的形式,按照约定俗成的管理,python应该坚持使用...

  • 【10.22】Python语法练习3/17

    列表和元组是Python内置的有序集合,列表可变,元组不可变,可以根据需要选择使用它们。 一、列表列表是Pytho...

  • 【11.1】Python语法练习8/17

    学习任务:异常处理 Python有两种错误容易辨认:语法错误和异常。 一、异常1.Python的语法错误或称之为解...

  • 【10.27】Python语法练习6/17

    学习任务:字典和集合 一、字典python中内置里字典,使用键-值(key-value)存储,具有极快的查找速度。...

  • 【10.21】Python语法练习2/17

    一、条件判断python中,条件判断用if语句实现,如果if语句判断为True,则把缩进的两行print语句执行了...

  • Python-Basic Info

    python上手 python语法入门 python数据分析练习 Conda环境配置:上手实践是王道 c...

网友评论

      本文标题:【10.24】Python语法练习4/17

      本文链接:https://www.haomeiwen.com/subject/ccndvctx.html