python基础数据类型
基础数据类型
基础数据类型的分类:
python3中有六个标准的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Python3的六个标准数据类型中:
- 不可变数据类型(四个):Number、String、Tuple、Sets
- 可变数据类型(两个):List、Dictionary
number数据类型
概念::
Python3支持int、float、bool、complex(复数)
在Python3里,只有一种整数类型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'>
注意:
- 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
- Python可以同时为多个变量赋值,如a,b = 1,2
- 一个变量可以通过赋值指向不通类型的对象
- 数值的除法(/)总是返回一个浮点数,要获取证书使用//操作符。
- 在混合计算时,Python会把整型转换成浮点数
- Python还支持复数,复数可以用a+bj,或者complex(a,b)表示,a和b都是浮点数
string数据类型
概念:
Python中的字符串是以单引号(’)或者双引号(“)引起来的
1,截取字符串格式为:变量[头下标:尾下标]
#!/usr/bin/python3 str = 'Yehewudi' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串
Python使用反斜杠()转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符
>>> print('Yehe') Ye he >>> print(r'Yehe') Yehe >>>
另外,反斜杠()可以作为续行符,表示下一行是上一行的延续。也可以使用"""..."""或者'''...'''跨越多行
字符串常用用法
count 通即字符串里某个字符出现的次数,支持切片
语法:str.count(sub, start=0, end=len(string))
a="awawaw aaa ijoa" print(a.count("a" 3 -1)) 4
encode 指定编码格式字符串
语法:str.encode(encodeing='UTF-8',errors = 'strict')
-
encoding 要使用的编码
-
errors 设置不通错误的处理方案
find 判断字符串中是否包含自字符串,如果在返回索引值,如果不再返回-1支持切片
a="awawaw aaa ijoa" print(a.find("aaa")) 7
format 格式化输出
print("姓名:{name}, 年龄:{age}".format(name = "yehe", age = 17)) 姓名:耶喝,年龄:17
index 查找字符串是否包含子字符串,如果存在返回索引,不存在报错
a="asdf" print(a.index("s")) 1
isdigit 判断字符串是否只由数字组成,是返回True,否返回Flase
a="11" print(a.isdigit()) True True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
返回值为False: 汉字数字
返回值为Error: 无
isidentifier 判断字符串是否由字母开头,是返回True,否返回Flase
a="asd11" print(a.isidentifier()) True
islower 判断字符串是否由小写字母组成,是返回True,否返回Flase
a="asd" print(a.islower()) True
isupper 判断字符串中所有的字母是否都为大写,是返回True,否则返回Flase
a="ASDF" print(a.isupper()) True
isspace 判断字符串是否只由空格组成,是返回True,否则返回Flase
a=" " print(a.isspace()) True
isalpha 判断字符串是否只由字母组成,是返回True,否则返回Flase
a="asdqweq" print(a.isalpha()) True
isalnum 判断字符串是否由字母和数字组成,是返回True,否则返回Flase
a="asdqweq1234" print(a.isalnum()) True
join 将序列中的元素以指定的字符连接生成一个新的字符串
a="-" print(a.join("asd")) a-s-d
lower 将字符串中所有大写字符转为小写
a="AAA" print(a.lower()) aaa
replace 将字符串中的字旧符替换成新字符,替换不超过max次
a="My name is yehe" print(a.replace("yehe", "daige")) My name is daige
split 通过指定分隔符对字符串进行分隔,已分割后的字符串为元素组成列表
语法:str.split(str="", num=string.count(str)).
-
str 分隔符,默认为空格
-
num 分隔次数
a="asd qwe zxc" print(a.split()) ['asd', 'qwe', 'zxc']
upper 将字符串中的小写字母转为大写字母
a="aaa" print(a.upper()) AAA
字符串不常用的用法
capitalize 将字符串的第一个字母变成大写,其他字母变小写
a="awawaw AAA ijoa" print(a.capitalize()) Awawaw aaa ijoa
casefold与lower相似
两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法
center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格
语法:str.center(width[, fillchar])
-
width 字符串的总宽度
- fillchar 填充字符
a="yehe" a.center(20, '*') ********yehe********
expandtabs 将字符串中的tab符号(' ')转为空格,tab为8个空格
endswith 判断字符串自否以指定字符结尾,是返回True,否则返回False,支持切片
a="yehe" a.endswith("he") True
format_map(不清楚)
isnumeric 判断字符串是否只由数字组成,是返回True,否返回Flase
a="123" print(a.isnumeric()) True True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
返回值为False: 无
返回值为Error: byte数字(单字节)
isdecimal 判断字符串是否只包含十进制字符返回True,否则返回False
a="123" print(a.isdecimal()) True True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isprintable 判断字符串中所有字符是否都属于可打印字符
a="123 " print(a.isprintable()) False
istitle 判断字符串中所有的单词首字母为大写,其他字母为小写,是返回True,否则返回Flase
a="This Is A Yehe!" print(a.istitle()) True
ljust 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串
lstrip 截掉字符串左边的空格或指定字符
maketrans ????
partition 根据指定的分隔符讲字符串进行分隔
a="yeheayehe!" print(a.partition("a")) ("yehe", "a", "yehe!")
rsplit 通过指定分隔符对字符串进行切片,类似于 split() 方法,只不过是从字符串最后面开始分割。
rfind 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1
rindex 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数
rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
rpartition 与partition类似,从后往前。
rstrip 删除 string 字符串末尾的指定字符(默认为空格).
startswith 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False,支持切片
splitlines 按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表
swapcase 对字符串的大小写字母进行转换
title 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
translate 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中
zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
注意:
- Python没有单独的字符类型,一个字符就是长度为1的字符串
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义
- 字符串可以用+运算符进行字符串的拼接操作
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始
- Python中的字符串不能改变
list列表
概念:
List是Python中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型不相同,它支持数字,字符串甚至可以包含列表(嵌套)。
列表是写在方括号“[]”之间、用逗号分隔的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表的截取格式为:变量[头下标:尾下标]
#!/usr/bin/python3 list = [ 'abcd', 786 , 2.23, 'yehe', 70.2 ] tinylist = [123, 'yehe'] print (list) # 输出完整列表 print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表
常用用法:
append 在列表末尾添加新的元素
a = ["yehe", "test", 123] a.append("qweqwe") print(a) ["yehe", "test", 123, "qweqwe"]
count 用于统计某个元素在列表中出现的次数。
a = ["yehe", "test", 123, 123] print(a.count(123)) 2
clear 清空列表
extend 用于在列表末尾一次性追加另一个序列中的多个值
a = ["yehe", "test", 123] b = ["qwe", "asd"] a.extend(b) print(a) ["yehe", "test", 123, "qwe", "asd"]
index 从列表中找出某个值第一个匹配项的索引位置
a = ["yehe", "test", 123] print(a.index("test")) 1
insert 将指定对象插入列表的指定位置
a = ["yehe", "test", 123] a.insert(1, "asd") print(a) ["yehe", "asd", "test", 123]
pop 删除列表中的一个元素(默认为最后一个),并且返回值为该元素,没有则会报错
a = ["yehe", "test", 123] a.pop(1) print(a) ["yehe", 123]
remove 删除列表中某个元素的第一个匹配项,没有则会报错
a = ["yehe", 123, "test", 123] a.remove(123) print(a) ["yehe", 123]
sort 对列表进行排序
a = [3, 2, 4, 1] a.sort() print(a) [1, 2, 3, 4]
不常用用法:
reverse 用于反向列表中元素
a = ["yehe", "test", 123] a.reverse() print(a) [123, "test", "yehe"]
注意:
- List卸载方括号之间,元素用逗号分隔
- 和字符串一样,list可以被索引和切片
- List可以用+操作符进行拼接
- List中的元素是可以改变的
tuple元组
概念:
元组与列表类似,不用之处在于元组不能修改。元组卸载小括号里“()”,元素之间用逗号分隔
用法:
与列表类似,只是不能修改
只有count与index函数
注意:
- 和字符串一样,元组可以被索引和切片
- 元组也可以被索引和切片,方法一样
- 注意构造包含0或1个元素的元组的特殊语法规则
- 元组也可以使用+操作符进行拼接
dictionary字典
概念:
字典是Python中另一个非常游泳的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取。
字典是一种映射类型,字典用大括号“{}”表示,它是一个无序的键(key):值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
#!/usr/bin/python3 dict = {} dict['one'] = "1" dict[2] = "2" testdict = {'name': 'yehe','code':1, 'site': 'www.qqq.com'} print (dict['one']) # 输出键为 'one' 的值 print (dict[2]) # 输出键为 2 的值 print (testdict) # 输出完整的字典 print (testdict.keys()) # 输出所有键 print (testdict.values()) # 输出所有值
用法:
clear 删除字典内所有元素
a = {"name": "yehe", "age": 18} a.clear print(a)
fromkeys 创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
a = {} b = ["name", "age", "test"] print(a.fromkeys(b, 10)) {'name': 10, 'age': 10, 'test': 10}
get 函数返回指定键的值,如果值不在字典中返回默认值
a = {"name": "yehe", "age": 18} print(a.get("name")) yehe
items 以列表返回可遍历的(键, 值) 元组数组(列表转元组)
a = {"name": "yehe", "age": 18} b = a.items() print(b) dict_items([('name', 'yehe'), ('age', 18)])
keys 已列表的形式返回一个字典所有的键
pop 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
a = {"name": "yehe", "age": 18} a.pop("name") print(a) {'age': 18}
popitem 随机返回并删除字典中的一对键和值(一般删除末尾对),如果字典为空则报错
setdefault 和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
a = {"name": "yehe", "age": 18} print(a.setdefault("test")) print(a) {'name': 'yehe', 'age': 18, 'test': None}
update 把字典dict2的键/值对更新到dict里
a1 = {"name": "yehe", "age": 18} a2 = {"hobby":"women"} a1.update(a2) print(a1) {'name': 'yehe', 'age': 18, 'hobby': 'women'}
例子
values 已列表的形式返回字典中的所有值
注意:
- 字典是一种映射类型,它的元素是键值对。
- 字典的关键字必须为不可变类型,且不能重复。
- 创建空字典使用{}。
sets集合(不重要)
概念:
集合是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{ }或者set()函数创建集合,但是创建一个空集合必须用set()
创建格式
parame = {value01,value02,...}
或者
set(value)
用法:
a = set('abracadabra')
b = set('alacazam')
1,差集
print(a - b)
2,并集
print(a | b)
3,交集
print(a & b)
4,反交集
print(a ^ b)
5,增
a.add('666') 增加一个元素
a.update('abc') 迭代增加
6,删
a.remove 删除一个元素
a.pop 随机删除一个元素
a.clear 清空集合
del a 删除集合
基础数据类型的补充
1,python数据类型的转换
函数 | 描述 |
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列s转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个序列 (key,value)元组 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
编码: