03 python基础二--字符串与编码
2018-01-09 本文已影响0人
祐吢房_2c9a
1 字符串和编码
image.png捋一捋ASCII编码和Unicode编码的区别
A 用ASCII编码是十进制的 65,二进制的01000001
O 用ASCII编码是十进制的48,二进制的00110000
image.png
image.png
2 python的字符串
- python的字符串是以Unicode编码的,所以支持多语言
- 单字符与编码之间的转换函数
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(65)
A
- 字符串用于网络传输或者保存到硬盘,需转换为字节bytes,python对字节类型的数据用
b
加引号表示
x = b'ABC'
# 区分'ABC' 与 b'ABC'的区别
# 'ABC' 是一个 str,b'ABC'虽然显示和前者一样,但事实上bytes的每个字符都只占用一个字节,而python中str每个字符占用3个字节,3*8比特(bit)。
- encode( ) 与 decode( )
# decode()用于将bytes转换为str,errors='ignore'可以忽略错误的字节
>>>b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
# 计算字符串长度 len()
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encoding('utf-8'))
6
# encode()恰好相反,将str进行编码
##注意:由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
- python 字符串格式化 ,%与format()
在Python中,采用的格式化方式和c语言是一致的,用%实现,例:
>>> 'Hello, %s' % 'world'
'Hello world'
>>> 'Hi , %s , you should eating %s' % ('girl', 'food') #多个变量必须用小括号
'Hi , girl , you should eating food'
- %d 整数
- %f 浮点数
- %s 字符串, %s永远起作用,可把任何数据类型转换为字符串
- %x 十六进制整数
# 格式化整数和浮点数可以指定是否补0和整数与小数的位数
# -*- coding: utf-8 -*-
print('%2d-%2d' % (3,1))
print('%.2f' % 3.141592653)
#打印结果
3 - 1
3.14
另一种格式化的方法是format(),它会用传入的参数依次替换字符串内的占位符{0}、{1}......,不过比较麻烦
>>>'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明',17.124)
'Hello, 小明, 成绩提升了 17.1%'
ps: 今日问题
解决终端 pyhton 不能输入中文的问题
原来是终端配置搞的鬼,打开偏好设置,然后按图设置即可解决~
image.png