写在前面
本博客是基于廖雪峰Python教程基础上的自我整理和消化,欢迎大家批评指正。第一节内容将介绍:
- Python的数据类型
- 常用编码方式
- Python编码
- 格式化输出
Python的数据类型
整数
十进制的表示方法与数学上相同
二进制表示加入前缀0b,如0b111表示7
八进制表示加入前缀0,如0o111表示9
p.s.值得注意的是,在Python2.x中表示八进制的方式有两种:以’0’开头和以’0o’(字母o)开头,而在Python3.x中则废弃了以’0’开头的表示方式,只支持’0o’开头的表示形式
浮点数
Python里定义了两种除法:完全除法‘/’和地板除‘//’
在Python中,有两种除法,一种除法是/:
>>>10 / 3
3.3333333333333335
/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
>>>9 / 3
3.0
还有一种除法是//,称为地板除,两个整数的除法仍然是整数:
>>>10 // 3
3
//除法只取结果的整数部分
字符串
字符串是以单引号’或双引号”括起来的任意文本
\转义字符
e.g. \n表示回车
>>>'I\'m \"OK\"!
表示的字符串内容是:
>I'm "OK"!
r” ‘ ’里的内容不转义
>>>print('\\\t\\')
\ \
>>>print(r'\\\t\\')
\\\t\\
如果有多行内容,可以用三引号将其包裹起来
print('''line1
line2
line3''')
布尔值
True和False
空值
none
常量
通常用全部大写的变量名表示常量,PI=3.141592654
这只是习惯写法,可以被更改
变量
Python是一种动态语言,不同于Java这类静态语言定义变量时必须指定变量类型,Python的变量类型不固定
常见的字符编码
- ASCII
计算机是美国人发明的,最早只有127个字符被编码到计算机里,即大小写英文字母、数字和一些符号 - GB2312
中国制定了GB2312编码,用来把中文编进去 - 日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里
- Unicode
把所有语言都统一到一套编码里,现代操作系统和大多数编程语言都直接支持Unicode。 - UTF-8
应对Unicode编码比ASCII编码需要多一倍的存储空间(针对英文字母),在存储和传输上就十分不划算的问题。
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
Python编码
在最新的Python 3版本中,字符串是以Unicode编码的
下面整理下,pyhton中有关编码的函数
- 单个字符的编码
ord()函数获取字符的整数表示
chr()函数把编码转换为对应的字符
>>> ord('A')
65
>>> ord('夏')
22799
>>> chr(97)
'a'
>>> chr(38738)
'青'
-多个字符的编码
>>> '\u4e2d\u6587'
'中文'
-转换编码方式
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
纯英文字符可以转化为ASCII码,但含有中文的字符只能转化为UTF-8,转换为ASII码时会报错
格式化输出
在Python中,采用的格式化方式和C语言是一致的,用%实现,如:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
常见的占位符有:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
当对格式化整数和浮点数有补0和整数与小数的位数要求时
>>> '%2d-%02d' % (4, 3)
' 4-03'
>>> '%.4f' % 3.1415926
'3.1416'
若要输出一个%,此处用另一个%表示转义
>>> '%d %%' % 7
'7 %'