Python学习随笔一:数据类型和字符编码

来源:互联网 发布:ubuntu英文改中文 编辑:程序博客网 时间:2024/06/06 07:41

写在前面

本博客是基于廖雪峰Python教程基础上的自我整理和消化,欢迎大家批评指正。第一节内容将介绍:

  • Python的数据类型
  • 常用编码方式
  • Python编码
  • 格式化输出

Python的数据类型

整数

十进制的表示方法与数学上相同
二进制表示加入前缀0b,如0b111表示7
八进制表示加入前缀0,如0o111表示9
p.s.值得注意的是,在Python2.x中表示八进制的方式有两种:以’0’开头和以’0o’(字母o)开头,而在Python3.x中则废弃了以’0’开头的表示方式,只支持’0o’开头的表示形式

浮点数

Python里定义了两种除法:完全除法‘/’和地板除‘//’
在Python中,有两种除法,一种除法是/:

>>>10 / 33.3333333333333335

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>>9 / 33.0

还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

>>>10 // 33

//除法只取结果的整数部分

字符串

字符串是以单引号’或双引号”括起来的任意文本

\转义字符

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 %'