第三章 数据类型 — int、bool 和 str
数据的基本类型:
Python3 中有六个标准的数据类型:
- int(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dict(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):int(数字)、String(字符串)、Tuple(元组)
- 可变数据(3 个):List(列表)、Dict(字典)、Set(集合)
一、int类型
- Python3 支持 int、float、bool、complex(复数)。
- 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- 像大多数语言一样,数值类型的赋值和计算都是很直观的。
- 内置的 type() 函数可以用来查询变量所指的对象类型。
>>> a, b, c, d = 20, 5.5, True, 4+3j >>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
此外还可以用 isinstance() 来判断:
实例
>>>a = 111
>>> isinstance(a, int)
True
bit_length() : 返回一个数的二进制长度。
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 4、在混合计算时,Python会把整型转换成为浮点数
二、bool类型
类型转换:
str:空字符串是False
int: 0 是 False 1 是True
—— 可以得到所有的“空”是False,非“空”的东西是True,如空的列表、元组和字典为False。s = None也是空。
三、字符串类型
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
- 字符串是不可变的数据类型,不论执行任何操作,源字符串是不会变的,每次操作都会返回新的字符串。
1 索引
变量[头下标:尾下标]
- 索引从”0“开始,使用 [下标] 可以获得取到每一个字符
- 索引不能超过边界
str = 'TheBest' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串
2 切片
-语法:
[起始位置:结束位置:步长]
- 顾头不顾尾,永远取不到结束标号位置的内容
- 结束位置的标号可以超过边界
- 默认只能从左往右切。
错误例: s[-1:-3]
- 给出第三个参数—“步长”来控制方向
例 如:s[-1:-3:-1]
3 操作
3.1 转来转去
- capitalize() : 首字母大写
- lower() : 全部转换为小写
- upper() : 全部转换为大写
- swapcase() : 大小写互相转换
- casefold() : 全部转换为小写,和lower的区别:lower()对某些字符支持不够好
- title() : 每个单词的首字母大写,以特殊符号、数字、汉字等都可以当做分割符
3.2 切来切去
- center() : 将字符串拉长,并将字符串居中
center(10,"*")
- strip() : 1.默认去掉左右两边的空格、空白、\t、 \n
2.可以指定去掉两边的某些东西
例:strip("abc")
- replace(old,new) : 字符串的替换 将old替换为new
例: replace("123","456") 将字符串中的123替换为456
replace("123","456",2) 替换只执行两次
- split() : 字符串的切割 得到的是列表,列表中存放得到的字符串,用什么切,就损失什么
例: split("/n")
坑:s = "123"
lst = s.split("123")
=> ['',''] # 得到两个空列表 如果"刀"的长度超过原字符串,输出得到原字符串,不能执行
3.3 格式化输出
- format() : 默认按照顺序输出,但是可以也指定位置和内容
3.4 查找
- startswith(pass) : 判断是否以pass开头 返回bool类型
- endswith(pass) : 判断是否以pass结尾
- count(pass) : 查找pass出现的次数
- find(pass) : 查找pass第一次出现的位置,返回索引,如果没有则返回"-1"
- index : 同find(),但是没有返回的话会报错
count、find和index都可以进行切片指定查找范围
- isdigit() : 判断字符串是不是数字
- isalpha() : 判断字符串是不是字母
- isalnum() : 判断字符串是不是由数字和字母组成
- isnumeric() : 能够判断出汉字内的数字
3.5 长度
-len() : 字符串的长度,是python的内置函数
3.6 迭代
- "一个一个的往外拿"
# 字符串的遍历 s = "01234" i = 0 while i<len(s): print(s[i]) i += 1
for循环:
for 变量 in 可迭代对象:
循环体(也存在break和continue )
else:
当循环结束时会执行
4 转义字符
Python 使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串。
>>> print('Ru\noob') Ru oob >>> print(r'Ru\noob') Ru\noob >>>
另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。
注意:
1. 反斜杠可以用来转义,也可以使用在r使其不转义
2. 字符串可以用+运算符连接在一起,运算符*便是重复
3. Python中的字符串有两种索引方式,从左往右—0开始,从右往左— -1开始
4. 字符串属于不可变量