从零开始学Python - 01.基本类型

目标

  • 了解基本类型
  • 了解如何声明变量与赋值
  • 了解数值计算方法
  • 了解字符串操作方法

数据类型

Python 内置四种数据类型:

  • 布尔型
  • 整型
  • 浮点型
  • 字符串型

注意 数字0不能作为前缀放在其他数字前面。

基数

在 Python 中,整数默认使用十进制数,除非你在数字前加前缀,显示地指定使用其他“基数”,例如:

  • 0b 或 0B 代表二进制数
  • 0o 或 0O 代表八进制数
  • 0x 或 0X 代表十六进制数

变量声明与赋值

可以使用的字符

  • 小写字母
  • 大写字母
  • 数字
  • 下划线

名字不允许以数字开头。此外,Python 中以下划线开头的名字有特殊的含义,之后的文章会介绍。

声明与赋值

无需指明变量类型,直接为变量赋值即可。

a = 10
print(a)

数值计算

Python 支持以下运算符:

  • + (加)
  • - (减)
  • * (乘)
  • / (除)
  • % (模)
  • // (除法计算后取整数部分)
  • ** (幂)

类型转换

转换成布尔型

  • 整数转布尔:0转换成False;0以外转成True。
  • 浮点转布尔:0.0转换成False;0.0以外转成True。
  • 字符转布尔:’’(空)转换成False;非空字符串转换成True。

转换成整数型

  • 布尔转整数:True转换成1;False转换成0。
  • 浮点转整数:舍掉小数点以后的部分。
  • 字符转整数:由数字组成的字符串转换成对应的整数;其他类型字符串转换时会抛出异常。

转换成浮点数型

  • 布尔转浮点:True转换成1.0;False转换成0.0。
  • 整数转浮点:转换成小数部分是0的浮点数。
  • 字符转浮点:整数或者浮点数形式的字符串转换成对应的浮点数;其他类型字符串转换时会抛出异常。

转换成字符串型

  • 一句话,数据长什么样,就转换成什么样的字符串。

int型有多大

在 Python 2 里,一个 int 是32位整数,一个 long 是 64 位整数。到了 Python 3,long 型已经不存在了,int 型可以存储任意大小的整数,甚至可以超过 64 位,这也意味着使用 Python 进行大数计算时,不会发生整数溢出的问题。

str型的常用操作

创建

  • 将一系列字符包含在一对单引号或者双引号中即可创建字符串。
  • 也可以使用连续三个引号来创建,这种写法主要用来创建多行字符串。
  • 使用 \ 作为转义符。
  • 使用 + 作为拼接符。
  • 使用 * 复制,例如:s = 'A' * 4 + 'B' 会输出 'AAAAB'

使用 [] 提取字符

在字符串后面添加 [],并在中括号内指定偏移量,就可以提取指定位置的单个字符。 最左侧字符的偏移量是从 0 开始的。在 Python 中,偏移量也可以从最右侧字符开始计算,最右侧字符的偏移量是 -1,以此类推。

使用 [start:end:step] 切片

  • [:] 提取从开头到结尾的整个字符串。
  • [start:] 从 start 提取到结尾。
  • [:end] 从开头提取到 end - 1。
  • [start:end] 从 start 提取到 end - 1。
  • [start:end:step] 从 start 提取到 end - 1,每 step 个字符提取一个。

常用函数

  • 使用 len() 获得长度:len('ABC'),会返回 3
  • 使用 split() 分割:'A,B,C'.split(','),会返回 ['A', 'B', 'C'];如果不指定分隔符,默认使用空白字符分隔:'A B\tC\nD'.split(),会返回 ['A', 'B', 'C', 'D']
  • 使用 join() 合并:', '.join(['A', 'B', 'C']),会返回 'A, B, C'
  • 使用 startwith() 判断是否以指定字符串开头:'ABCDEF'.startwith('ABC'),会返回 True
  • 使用 endwith() 判断是否以指定字符串结尾:'ABCDEFG'.endwith('DEF'),会返回 False
  • 使用 find() 查找指定字符串第一次出现的偏移量:'ABCABC'.find('A'),会返回 0
  • 使用 rfind() 查找指定字符串最后一次出现的偏移量:'ABCABC'.rfind('A'),会返回 3
  • 使用 count() 查找指定字符串一共出现了几次:'ABCABC'.count('C'),会返回 2
  • 使用 upper() 让字符串所有字母变成大写:'abcabc'.upper(),会返回 ABCABC
  • 使用 lower() 让字符串所有字母变成小写:'ABCABC'.lower(),会返回 abcabc
  • 使用 replace() 替换:'ABCABC'.replace('A', 'XX'),会返回 XXBCXXBC;我们也可以指定替换字符串中的前几处:'ABCABC'.replace('A', 'XX', 1),会返回 XXBCABC