浅谈python学习之字符编码与字符串

本篇文章给大家带来的内容是浅谈python学习之字符编码字符串。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

字符编码是什么?

例如汉字“中”,可以用以下表示

十进制:20013

二进制:01001110 00101101(unicode)/11100100 10111000 10101101(utf-8)

立即学习“Python免费学习笔记(深入)”;

十六进制:u4e2d

ascii编码

ASCII编码是1个字节

只能编码纯英文

节省空间

unicode编码

Unicode编码通常是2个字节。(比如字母A用ASCII编码是十进制的65,二进制的01000001;A的Unicode编码是00000000 01000001。)

uicode统一编码,解决编码冲突,乱码问题消失

比ascii多一倍的存储空间,存储和传送时不划算(UTF-8解决)

utf-8编码(可变长的unicode编码)

UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。

字符ASCIIUnicodeUTF-8A0100000100000000 0100000101000001中x01001110 0010110111100100 10111000 10101101

1)如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间;

2)ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

计算机系统通用的字符编码工作方式:

内存:统一unicode编码

硬盘、传输:转换为utf-8

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

Python的字符串

相关函数

ord()函数获取字符的整数表示(单个字符)参数为要操作的单个字符,返回一个整数。

chr()函数把编码转换为对应的字符(单个字符)

encode()函数,将str字符串以指定的编码方式(参数)变为bytes

‘str’.encode(ascii/utf-8)返回bytes字符串

中文以ascii编码会报错

decode()函数把从网络或磁盘上读取的bytes以指定的编码方式(参数)变为str

‘bytes’.decode(ascii/utf-8)返回str字符串

bytes无法解码会报错,如果bytes中只有一小部分无效的字节,可以传入errors=’ignore’忽略错误的字节

>>> b’中�’.decode(‘utf-8′, errors=’ignore’) ‘中’

len()函数,计算字符串包含字符个数

>>> len(b’ABC’) 3 >>> len(b’中文’) 6 >>> len(‘中文’.encode(‘utf-8’)) 6

在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

Python的字符串类型是str,如果要在网络上传输,或者保存到磁盘上,就需要把str变为bytes。

>>为了避免乱码问题,应当始终坚持使用UTF-8编码对strbytes进行转换

str和bytes的区别

1)str一个字符对应若干个字节,但bytes的每个字符都只占用一个字节。(将多字节的字符分解为单字节的多字符)

>>> ‘ABC’.encode(‘ascii’) b’ABC’ >>> ‘中文’.encode(‘utf-8′) b’中文’

在bytes中,无法显示为ASCII字符的字节,用x##显示。

2)bytes字符带前缀,带引号

.py文件中含中文要用utf-8编码

#!/usr/bin/env python3 # -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

>>编辑器用UTF-8 without BOM

字符串格式化问题

>>> ‘Hello, %s’ % ‘world’ ‘Hello, world’ >>> ‘Hi, %s, you have $%d.’ % (‘Michael’, 1000000) ‘Hi, Michael, you have $1000000.’

%运算符

就是用来格式化字符串的。在字符串内部有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

转义,用%%来表示一个%

>>> ‘growth rate: %d %%’ % 7 ‘growth rate: 7 %’

占位符替换内容%d整数%f浮点数%s字符串%x十六进制整数

format()

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:

>>> ‘Hello, {0}, 成绩提升了 {1:.1f}%’.format(‘小明’, 17.125) ‘Hello, 小明, 成绩提升了 17.1%’

以上就是浅谈python学习之字符编码与字符串的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2260142.html

(0)
上一篇 2025年2月27日 05:26:04
下一篇 2025年2月19日 23:52:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python中numpy的array数据类型有哪些?(代码详解)

    本篇文章给大家带来的内容是介绍python中numpy的array数据类型有哪些?(代码详解)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 import numpy as np#创建# 创建一维数组a = np.arr…

    编程技术 2025年2月27日
    200
  • python数据竖着怎么变横的?

    python数据竖着变横的的方法:使用zip()函数,类似矩阵转置的过程,将竖状数据变为横状数据;语法“zip([iterable, …])”。该函数将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 pytho…

    2025年2月27日
    200
  • python tuple有什么用

    Python中tuple(元组)的作用:作为参数传递给函数调用、或是从函数调用那里获得参数时,保护其内容不被外部接口修改。通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。 Python是一种计算机程序语…

    2025年2月27日 编程技术
    200
  • 初学python看什么书?

    初学python可以看:《Python编程:入门到实践》、《Python基础教程》、《笨办法学Python》、《Python语言及其应用》、《Python编程入门》、《父与子的编程之旅:与小卡特一起学Python 》等等。 Python入门…

    2025年2月27日 编程技术
    200
  • python能做回归么

    Python可以实现线性回归,实现方法:1、在scikit-learn库中调用linear_model来拟合数据;2、使用Scipy.polyfit()或者numpy.polyfit();3、使用高度专业化的线性回归函数Stats.linr…

    2025年2月27日
    200
  • python 的& 表示什么

    python代码里经常会需要用到各种各样的运算符,这里我将要和大家介绍的是python中的&,想知道他是什么意思吗?那就和小编一起来了解一下吧。 &是位运算符-与,类似的还有|(或),!(非)。 整数在计算机中用二进制的位来…

    2025年2月27日
    200
  • python怎么念

    python的英式发音为“[ˈpaɪθən]”;美式发音为“[ˈpaɪθɑːn]”;中文音译为“派森”比较接近。 相信很多人都不知道Python这个词怎么念,它似乎分为了好几种读法。有的读“派森”,有的读“拍范”,还有的读“牌神”。。。五花…

    2025年2月27日
    200
  • python是什么类型的编程语言?

    Python是一种计算机程序设计语言,是一种面向对象的动态、强类型脚本语言(解释型语言)。 强类型:不允许不同类型相加 动态类型:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候 脚本语言:一般也是解释型语言。在程序运行…

    2025年2月27日
    200
  • 怎么保存python代码?

    随着python的火热程度日渐飙升,越来越多的人开始学习python。在学习的过程中,随之而来的问题也越来越多。下面我将带大家了解一下如何保存python代码,得注意一下自己的使用的编程环境哦。 一、Windows系统下,如果是你是用命令行…

    2025年2月27日
    200
  • 学python用什么解释器?

    Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器: 1、CPython 当我们从Pyt…

    2025年2月27日
    200

发表回复

登录后才能评论