3.字符串和编码

1.计算机只认识数字,因此字符串被转换为数字进行表示。因此出现了编码,最早的编码是ASCII码

2.随着不同的语言接入计算机系统,出现了不同的编码。例如要将汉子输入计算机,出现了GB2312编码,要将俄语输入计算机出现了windows-1251编码等

3.随着编码越来越多,跨过跨地区的网上交流出现了混乱,在多语言的环境下不能正常显示所有的语言信息

4.于是统一的Unicode标准编码应运而生,多编码之间出现的混乱问题。计算机系统中默认使用的就是Unicode编码

5.但是Unicode编码占两个字节,对于像英语类的信息存储带来额外的存储开销,也不便于网络的传输

6.因此UTF-8这种可变长的编码应运而生。

7.计算机及服务器和浏览器之间字符编码转换如下图所示

8.python默认是以Unicode为编码的,因此Python支持多语言。python程序中输出中文不会有问题

print('我爱python')

我爱python

9.ord()函数获取字符的整数表示

print(ord(''))

25105 ​

10.chr()将对应的编码转换为字符

print(ord(''))

print(chr(25105))

25105

11.在存储或网络传输的时候,需要将字符串转换为字节。python中使用b前缀表示字节

print('hello')

print(b'hello')

hello

b'hello' ​

12.字符串可以通过encode()方法将字符串编译为指定的字节,汉字编译为ASCII编码的字节会出错

print('你好'.encode('UTF-8'))

print('你好'.encode('GB2312'))

print('你好'.encode('ASCII'))

b'\xe4\xbd\xa0\xe5\xa5\xbd'

b'\xc4\xe3\xba\xc3'

Traceback (most recent call last):

  File "D:/AI/001/Python/Python01.py", line 3, in <module>

    print('你好'.encode('ASCII'))

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

13.从磁盘存储或网络读取数据的时候,读到的数据是字节,我们需要根据该字节使用的编码集解码出字节对应的字符,使用decode()方法

print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('UTF-8'))

print(b'\xc4\xe3\xba\xc3'.decode('GB2312'))

你好

你好 ​

 

14.len()函数,用于计算字符串中有多少个字符,若是字节,则该方法计算字节的长度

print(len('你好'))

print(len('你好'.encode('UTF-8')))

print(len('你好'.encode('GB2312')))

2

6

4

15.在保存python的py文件的时候,通常在头部添加如下语句:第一句用于指定Unix环境下Python解释器,第二句指定后,当python解释器读取代码时按照utf-8编码格式读取,当然保存的时候,py文件必须保存为utf-8格式

#!/usr/bin/env python3

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

16.字符串的格式化:python中使用%实现字符的格式化,%d表示整数,%f表示浮点数,%s表示字符串,%x表示十六进制整数

name = 'liko'

age = '32'

print("hello %s,your age is %s" %(name,age))

hello liko,your age is 32 ​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值