python

03 python基础二--字符串与编码

2018-01-09  本文已影响0人  祐吢房_2c9a

1 字符串和编码

捋一捋ASCII编码和Unicode编码的区别
A 用ASCII编码是十进制的 65,二进制的01000001
O 用ASCII编码是十进制的48,二进制的00110000


image.png
image.png
image.png

2 python的字符串

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(65)
A
x = b'ABC'

# 区分'ABC' 与 b'ABC'的区别
# 'ABC' 是一个 str,b'ABC'虽然显示和前者一样,但事实上bytes的每个字符都只占用一个字节,而python中str每个字符占用3个字节,3*8比特(bit)。
# 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 -*-
>>> '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
上一篇下一篇

猜你喜欢

热点阅读